• Linux上搭建ElasticSearch-8.x集群以及安装Kibana(保姆级安装教程)


    Linux版本下载地址:ES-8.1.0-linux

    1. 搭建ES集群

    1. 解压ES

    tar -zxvf elasticsearch-8.1.0-linux-x86_64.tar.gz -C 指定解压的目录

    2. 新增用户es,其数据文件和证书目录,修改为ES文件的拥有者

    useradd es
    passwd es
    # 创建数据文件目录
    mkdir /opt/module/es-8.1.0/data/
    # 创建证书目录
    mkdir /opt/module/es-8.1.0/config/certs
    # 修改文件拥有者
    chown -R es:es /opt/module/es-8.1.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3. 在第一台服务器节点es-node-1设置集群多节点的通信密钥

    su es
    # 签发ca证书 直接敲回车 不需要输入密码
    bin/elasticsearch-certutil ca
    # 用ca证书签发节点证书 敲三次回车
    bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
    # 将生成的证书文件移动到config/certs目录中
     mv elastic-certificates.p12 config/certs
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    4. 在第一台服务器节点上设置集群HTTP证书

    # 签发Https证书
    bin/elasticsearch-certutil http
    # 这里获取证书的步骤有点多,只需要注意下面的重要环节,其余可以直接回车跳过
    # (手动输入elastic-stack-ca.p12的路径,输入三个节点的hostname以及ip地址,过期时间设置为5y)
    # 命令执行成功在es主目录下生成elasticsearch-ssl-http.zip压缩文件
    # 解压生成的zip文件
    unzip elasticsearch-ssl-http.zip
    # 证书文件移动到指定目录下
    mv elasticsearch/http.p12 kibana/elasticsearch-ca.pem config/certs
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    这里获取证书的一些关键步骤如何操作,如下图:
    请添加图片描述
    请添加图片描述
    请添加图片描述

    5. 配置文件(其余节点的配置文件只需要修改node.name和network.host即可)

    # ES集群配置
    cluster.name: cluster-es
    node.name: es-node-1
    #设置数据
    path.data: /media/es-8.1.0/elasticsearch-8.1.0/data/
    path.logs: /media/es-8.1.0/elasticsearch-8.1.0/logs/
    # 网络访问节点名称
    network.host: linux1
    # Rest访问端口9200 ES集群内部端口为9300
    http.port: 9200
    # 初始节点
    discovery.seed_hosts: ["linux1"]
    # 安全认证
    xpack.security.enabled: true
    xpack.security.enrollment.enabled: true
    xpack.security.http.ssl:
      enabled: true
      keystore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/http.p12
      truststore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/http.p12
    xpack.security.transport.ssl:
      enabled: true
      verification_mode: certificate
      keystore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/elastic-certificates.p12
      truststore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/elastic-certificates.p12
    # 集群初始化的主节点
    cluster.initial_master_nodes: ["es-node-1"]
    http.host: [_local_, _site_]
    ingest.geoip.downloader.enabled: false
    xpack.security.http.ssl.client_authentication: none  
    
    • 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

    6. 启动ES

    bin/elasticsearch

    如果出现下面这种结果,表示已经启动成功了。
    ps: 这里有可能会报bootstrap checks filed,具体可以看下面的第九步

    最好是截图或者复制这里的登录密码,方便后面登录使用
    请添加图片描述

    7. 其他两个从节点的配置

    不需要再重新获取证书,使用es-node-1中的即可(http.p12elastic-certificates.p12的路径最好是和es-node-1保持一致,方便操作)
    在配置文件中只需要修改node.namenetwork.host

    8. 依次启动集群的三台服务器节点

    三台服务器依次bin/elasticsearch -d 后台启动
    这里如果不进行密码重置或者修改的话,三台机器登录的账号是共享密码的
    p06Yi689YAq1YekNLJjA 三台机器可共用该密码进行登录)

    请添加图片描述
    请添加图片描述

    9. 部分报错原因的解决方案

    1. vim config/jvm.options 修改配置文件中的-Xms和-Xmx参数,用于解决空间不足的问题
    2. bin/elasticsearch-reset-password -u elastic 重置登录es的密码
    3. bootstrap checks filed报错解决
      请添加图片描述
    • 修改系统配置文件/etc/security/limits.conf
    # 设置每个进程可以打开的文件数的限制
    es - nproc 4096        # 设置线程数为4096 
    es soft nofile 65536
    es hard nofile 65536
    
    • 1
    • 2
    • 3
    • 4
    • 修改/etc/security/limits.d/20-nproc.conf
    # 设置每个进程可以打开的文件数的限制
    es soft nofile 65536
    es hard nofile 65536
    
    • 1
    • 2
    • 3
    • 修改/etc/sysctl.conf
    一个进程可以拥有的VMA数量设置为655360(默认为65536)
    vm.max_map_count=655360
    
    • 1
    • 2

    最后使用sysctl -p重新加载,再去启动ES应该就没问题了。

    访问https://虚拟机IP地址(或主机名):9200,用户名为elastic和对应的密码(也就是第六步中图中的那一串数字字母),可以看到页面返回一串json数据反馈ES集群的信息
    请添加图片描述
    在这里插入图片描述
    在这里插入图片描述

    2. Kibana安装

    最好是下载和ES相同版本的Kibana,避免在启动过程中报稀奇古怪的错。。

    1. 解压(与ES解压一样)

    2. 在es中给kibana生成证书

    # 生成一个csr-bundle.zip文件
    bin/elasticsearch-certutil csr -name kibana -dns linux1
    # 解压
    unzip csr-bundle.zip
    #得到kibana文件,注意啊,是将该目录下的两个文件移动到kibana的config目录下,而不是ElasticSearch的config目录
    mv kibana.csr kibana.key /media/kibana-8.1.0/config//config/
    # 生成crt文件
    openssl x509 -req -in kibana.csr -signkey kibana.key -out kibana.crt
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    3. 修改kibana的配置文件

    vim kibana.yml

    # 服务端口
    server.port: 5601
    # 服务主机名
    server.host: "linux1"
    # 国际化
    i18n.locale: "zh-CN"
    # ES服务器主机地址
    elasticsearch.hosts: ["https://linux1:9200"]
    # 访问ES服务器的账号 密码
    elasticsearch.username: "kibana"
    elasticsearch.password: "AYcyG-icexpqNCnzPXty"
    
    elasticsearch.ssl.verificationMode: none
    elasticsearch.ssl.certificationAuthorities: ["/media/es-8.1.0/elasticsearch-8.1.0/config/certs/elasticsearch-ca.pem"]
    
    server.ssl.enabled: true
    server.ssl.certificate: /media/kibana-8.1.0/kibana-8.1.0/config/kibana.crt
    server.ssl.key: /media/kibana-8.1.0/kibana-8.1.0/config/kibana.key
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    4. 修改kibana的文件拥有者

    chown -R es:es kibana的解压目录

    5. 切换到es用户,启动kibana

    bin/kibana 前台启动
    请添加图片描述

    在启动kibana的时候,有可能会报下面的错误,无法授权给用户kibana

    kibana启动报错: unable to authenticate user [kibana] for REST request …

    那么这里就需要重置kibana的密码了,使用
    bin/elasticsearch-reset-password -u kibana
    可以在控制台看到重置后的密码,复制它替换到kibana.yml中的elasticsearch.password
    在这里插入图片描述

    6. 测试

    访问kibana的客户端,https://虚拟机ip地址:5601
    登录账户 elastic (注意啊,不是kibana用户登录)
    密码还是上面生成的elastic的密码
    请添加图片描述
    请添加图片描述

    请添加图片描述

  • 相关阅读:
    【PyTorch】深度学习实践 01 Overview
    STM32f767之通用定时器
    上位机图像处理和嵌入式模块部署(树莓派4b的一种固件部署方法)
    钟汉良日记:你相信神话吗?你会背《正气歌》吗
    课程:信任沟通的六个核心技巧
    详解设计模式:访问者模式
    Arduino框架下对ESP32 NVS非易失性存储解读以及应用示例
    力扣刷题 day56:10-26
    【JavaScript】Web API基础(六)
    生活中常见的嵌入式产品都有哪些?
  • 原文地址:https://blog.csdn.net/m0_45971439/article/details/126029877