• ES集群搭建及Kibana安装


    一、 准备条件

    机器(三台不同机器,IP瞎写的):
    192.168.1.1
    192.168.1.2
    192.168.1.3

    jdk: jdk-8u202-linux-x64.tar.gz

    es版本:elasticsearch-7.10.1-linux-x86_64.tar.gz
    下载地址: https://www.elastic.co/cn/downloads/past-releases#elasticsearch

    二、关闭防火墙

    关闭
    systemctl stop firewalld

    禁止开机启动防火墙
    systemctl disable firewalld

    查看是否关闭防火墙
    systemctl status firewalld

    三、创建es普通用户

    ES不能使用root用户来启动,必须使用普通用户来安装启动

    useradd es
    passwd es

    四、 ES配置

    解压

    tar xf elasticsearch-7.10.1-linux-x86_64.tar.gz -C /data/

    改名

    mv /data/elasticsearch-7.10.1/ /data/elasticsearch

    创建存放日志路径

    mkdir /data/elasticsearch/startlogs

    配置elasticsearch.yml文件内容

    备份elasticsearch.yml
    cp /data/elasticsearch/config/elasticsearch.yml /data/elasticsearch/config/elasticsearch.yml.bak

    elasticsearch.yml 内容

    cluster.name: escluster
    node.name: es1
    network.host: 192.168.1.1
    http.port: 9200
    discovery.seed_hosts: [“192.168.1.1:9300”,“192.168.1.2:9300”,“192.168.1.3:9300”]
    cluster.initial_master_nodes: [“es1”, “es2”,“es3”]
    gateway.recover_after_nodes: 2
    node.master: true
    node.data: true
    http.cors.enabled: true
    http.cors.allow-origin: “*”
    path.data: /data/elasticsearch/data
    path.logs: /data/elasticsearch/logs
    cluster.routing.allocation.same_shard.host: true
    http.max_content_length: 500mb

    配置解释

    cluster.name 集群名称,这个名字必须一致
    node.name: 节点名称,每台都不能相同,这个名字会在 谷歌的elasticsearch head插件中看到标记
    network.host: 当前机器的IP地址
    http.port: es的端口
    #发现和形成集群需要配置两个重要的参数 discovery.seed_hosts及cluster.initial_master_nodes 以便集群中的节点能发现彼此并选出一个主节点
    discovery.seed_hosts: 发现和集群形成设置,以便集群中的节点可以相互发现并选举一个主节点
    cluster.initial_master_nodes: 机器的node.name名称
    gateway.recover_after_nodes: 设置当指定数量的data或者master(node.master: true)节点加入集群后才开始进行恢复操作
    node.master:是否是主节点
    node.data: 是否为数据节点
    http.cors.enabled: 启动跨域
    path.data: 数据存放目录
    path.logs: 日志存放目录
    cluster.routing.allocation.same_shard.host: 默认值是false,如果设置为true,那么就不允许将一个primary shard和replica shard分配到同一个物理机上。
    http.max_content_length: 内容的最大容量

    五、JVM调优

    vi /data/elasticsearch/config/jvm.options
    设置为物理内存一半最佳,可根据服务器内存去选择调

    -Xms1g 修改为 ===> -Xms2g
    -Xmx1g 修改为 ===> -Xmx2g

    六、设置权限

    chown -R es:es /data/elasticsearch

    七、内存优化

    vi /etc/sysctl.conf

    fs.file-max=655360
    vm.max_map_count=655360
    执行
    sysctl -p 生效

    解释:
    (1)vm.max_map_count=655360
    系统最大打开文件描述符数
    (2)vm.max_map_count=655360
    限制一个进程拥有虚拟内存区域的大小

    vi /etc/security/limits.conf

    * soft nofile 65536
    
    * hard nofile 65536
    
    * soft nproc 65536
    
    * hard nproc 65536
    
    * soft memlock unlimited
    
    * hard memlock unlimited
    
    
    解释:
    (nofile)最大开打开文件描述符
    (nproc)最大用户进程数
    (memlock)最大锁定内存地址空间
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    修改用户进程数,普通用户默认是1024个
    vi /etc/security/limits.d/90-nproc.conf

    # 修改/etc/security/limits.d/90-nproc.conf1024修改为65536
    
    *          soft    nproc     1024     修改前
    .	
    *          soft    nproc     65536   修改后
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ctrl +d从进终端
    ulimit -a查看

    八、启动

    +d代表后台启动

    ./elasticsearch -d

    查看是否启动
    http://192.168.1.1:9200/

    九、配置es密码

    # 生成CA证书
    bin/elasticsearch-certutil ca
    
    # 生成p12密钥: 直接回车: 会多出两个文件
    bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
    
    # 在config目录下,新建 certs 文件夹
    
    # 将elastic-certificates.p12文件,复制到config/certs文件夹下。
    
    # 将主机es目录下生成的elastic-certificates.p12和elastic-stack-ca.p12复制到从机ES目录下,从机目录下config中创建certs文件夹,将elastic-certificates.p12复制到config/certs文件夹下。
    
    # 添加 elasticsearch.yml 配置,主机和从机上都要加
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.license.self_generated.type: basic
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
        
    #确保所有机器下的config/certs目录下的elastic-certificates.p12用户权限是es用户和es用户组
    
    # 初始化密码: 会有很多的密码要填,直接全写同一个密码,一路填下去
    bin/elasticsearch-setup-passwords interactive
    
    # 启动es,再网址中输入密码即可
    
    
    # 问题:如果密码忘记了,导致连不上
    # 1. 把三台机器下的logs都删了,密码配置会在这里面
    # 2. 删主节点的这个文件 elasticsearch.keystore
    # 3. 删掉nodes节点(可以不删,删掉指定的.security-7索引)
    # 4. 然后重新执行 bin/elasticsearch-setup-passwords interactive 重新生成密码
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    十、分词器

    分词器是es中一个组件,它会将一段文本按照一定的逻辑,分析成多个词语,同时对这些词语进行常规化的一种工具;ES会将text格式的字段按照分词器进行分词,并编排成倒排索引,正是因为如此,es的查询才如此之快

    # 1. 下载指定版本的分词,根据TAG选版本
    https://github.com/medcl/elasticsearch-analysis-ik/tree/v7.10.1
    或
    https://github.com/medcl/elasticsearch-analysis-ik
    
    # 2. 在/data/elasticsearch/plugins/ 目录下新建 ik 目录, 确保这个目录是es用户和用户组
    mkdir /data/elasticsearch/plugins/ik
    
    # 3. 将下载的文件放入ik文件夹下并解压,解压完后删掉压缩文件
    unzip elasticsearch-analysis-ik-7.10.1.zip
    
    # 4. 进入到解压后的elasticsearch-analysis-ik-7.10.1文件夹下
    yum install maven -y
    执行
    mvn clean install
    
    # 5.1 会在target目录下的release目录中有生成一个zip包,7.10.1版本生成的是一个后缀为ik-7.4.0.zip的压缩包
    # 5.2 将该zip包转移到ik目录下,并且将其它文件夹删掉,生成这个文件后就不需要其它文件了
    # 5.3 将改zip包解压, 使用unzip命令
    
    # 6. 更改 plugin-descriptor.properties 文件,将下面两个变量改成自己的es版本号即可
    version=7.10.1
    elasticsearch.version=7.10.1
    
    # 重启es即可,直接kill杀掉重启就行
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    十一、Kibana安装

    #下载对应版本的kibana
    https://www.elastic.co/cn/downloads/past-releases#kibana
    
    # 解压
    tar -zxvf kibana-7.10.1-linux-x86_64.tar.gz
    
    # 迁移
    mv kibana-7.10.1-linux-x86_64 /data/elasticsearch/kibana-7.10.1
    
    # 修改配置
    cd /config
    vi kibana.yml
    
    server.port: 5601                                    #对外端口
    server.host: "0.0.0.0"                               #绑定的IP,0.0.0.0支持外网所有主机访问
    elasticsearch.hosts: ["http://192.168.1.1:9200", "http://192.168.1.2:9200","http://192.168.1.3:9200"] #配置elasticsearch服务器地址,开启Xpack时用https
    i18n.locale: "zh-CN"                                 #使用中文展示
    
    # 因为kibana不能root启动,设置成es用户
    chown -R es:es /data/elasticsearch/kibana-7.10.1
        
    # 启动
    nohup ./kibana &
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
  • 相关阅读:
    本地搭建MQTT服务器(windows和树莓派)
    matlab和python做zscore结果不一样的问题
    Vue 过渡与动画
    8位微控制器上的轻量级SM2加密算法实现:C语言详细指南与完整代码解析
    科目一扣分
    房地产中介信息管理系统平台源码开发解决方案
    paddle 43 用onnxruntime实现ppyoloe模型的部署
    React学习(六)— 状态管理Redux
    流量5-----5
    sklearn 基础教程
  • 原文地址:https://blog.csdn.net/Gscsd_T/article/details/128172572