Elasticsearch 集群搭建及认证

  |   0 评论   |   浏览

file

准备

  • 虚拟机或主机(最少3台);基于VirtualBox搭建Linux(CentOS 7)虚拟机环境(学习必备技能)https://lupf.cn/articles/2020/04/04/1586001434581.html 如果有独立主机的,也需要看一下这部分;将其中基础的,如 网络免密登录hostshostname等操作配置一下

  • 软件下载

    // 这里包含了es的各个版本,建议找到链接之后,拷贝到迅雷下载
    https://www.elastic.co/cn/downloads/past-releases#elasticsearch
    // 如:6.8.9的版本;把下面的地址拷贝到迅雷,下载速度会快很多
    https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.8.9.tar.gz
    
  • JDK下载

    // 可以直接去官网下载
    // 这里云盘包含了几个
    链接:https://pan.baidu.com/s/1svl3pgIQQdEcyRyvt14HGw 
    提取码:t0bn
    

软件安装

JDK配置(每台机器都做)
  • 将JDK上传到所有机器的 /usr/local/src目录下

  • 解压

    cd /usr/local/src
    tar -zxvf jdk-8u241-linux-x64.tar.gz
    mv jdk1.8.0_241/ /usr/local/
    
  • 修改环境变量

    vim ~/.bash_profile
    
    // 添加以下配置
    export JAVA_HOME=/usr/local/jdk1.8.0_241
    
    // PATH变量后面追加
    :$JAVA_HOME/bin
    
    // 刷新环境变量
    source ~/.bash_profile
    
    // 验证
    java -version
    
    // 如下图说明配置成功
    

    file

Elasticsearch部署
  • 解压

    cd /usr/local/src
    tar -zxvf elasticsearch-6.8.9.tar.gz
    mv elasticsearch-6.8.9 ../elasticsearch-6.8.9
    
  • 创建文件夹

    // 创建数据目录
    mkdir -p /var/elasticsearch/data
    // 创建日志目录
    mkdir -p /var/elasticsearch/logs
    // 用于保存配置相关文件
    mkdir -p /etc/elasticsearch
    
  • 创建用户

    // 添加用户
    adduser elasticsearch
    // 设置密码 密码自行记住即可
    passwd elasticsearch
    
  • 设置权限

    chown -R elasticsearch /usr/local/elasticsearch-6.8.9
    chown -R elasticsearch /var/elasticsearch/data
    chown -R elasticsearch /var/elasticsearch/logs
    
  • 修改最大的线程数

    vim /etc/security/limits.conf
    
    // 添加以下配置
    * soft nofile 65536
    * hard nofile 65536
    
    // 对应的错误如下
    

    file

  • 修改最大的虚拟连接数

    vim /etc/sysctl.conf
    
    // 添加以下配置
    vm.max_map_count=655360
    
    // 保存并查看
    sysctl -p
    

    file

  • 修改es配置

    vim /usr/local/elasticsearch-6.8.9/config/elasticsearch.yml
    
    // 1.集群名称
    cluster.name: lupf-elasticsearch
    
    //2.当前节点名称
    //   每个节点给一个他所在集群的唯一名称
    node.name: elasticsearch0000
    
    // 3.数据目录
    path.data: /var/elasticsearch/data
    
    // 4.日志目录
    path.logs: /var/elasticsearch/logs
    
    // 绑定的ip
    // 如果是多网卡,这里需要设置当前机器的具体IP,如果设置为0.0.0.0可能由于选择的网段导致集群构建失败
    network.host: 0.0.0.0
    
    //端口
    http.port: 9200
    
    //unicast的列表,通过这个节点,可以交换感知所有节点的列表信息
    // 后面会节点主机列表
    discovery.zen.ping.unicast.hosts: ["elasticsearch0000", "elasticsearch0001", "elasticsearch0002"]
    
    // 防止脑裂配置
    // 计算公式:  master-eligible nodes / 2 + 1    如3个master候选节点这个参数就是:3/2+1 = 2
    discovery.zen.minimum_master_nodes: 2
    
  • 启动服务

    // 切换到ES的用户
    su elasticsearch
    
    // 进入elastic的目录
    cd /usr/local/elasticsearch-6.8.9
    
    // 启动 默认会使用统计./config/elasticsearch.yml的配置文件
    // 前台执行
    ./bin/elasticsearch
    // 守护进程执行
    ./bin/elasticsearch -d
    

    file

  • 查看集群

    // 查看节点状态
    curl -XGET elasticsearch0000:9200/_cat/nodes?v
    // 查看集群健康状况
    curl -XGET elasticsearch0000:9200/_cat/health?v
    

    file

  • 设置TSL证书及密码

    • 生成ca证书

      cd /usr/local/elasticsearch-6.8.9
      bin/elasticsearch-certutil ca
      // 会提示你输入要输出的文件名: elastic-stack-ca.p12
      // 然后设置ca密码(记住密码)
      

      file

    • 生成x.509证书

      cd /usr/local/elasticsearch-6.8.9
      bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
      // 输入ca的密码
      // 设置x.509的密码
      

      file

    • 创建证书目录

      cd /usr/local/elasticsearch-6.8.9
      // 集群的每台机器都创建
      mkdir -p config/certs/
      // 将证书拷贝到对应的目录
      cp elastic-certificates.p12 config/certs/
      
    • 将证书拷贝到集群其他各台机器

      scp -r elastic-certificates.p12 root@elasticsearch0001:/usr/local/elasticsearch-6.8.9/config/certs/
      // 有多少拷贝多少
      
    • 配置elasticsearch.yml

      vi /usr/local/elasticsearch-6.8.9/config/elasticsearch.yml
      
      # 添加一下配置
      xpack.security.enabled: true
      xpack.security.transport.ssl.enabled: true
      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
      
    • 重启所有节点

    • 设置密码

      ./elasticsearch-setup-passwords interactive
      

      file

    • 测试

      http://elasticsearch0000:9200
      // 输入用户名: elastic  密码: 上面设置的密码
      

      file
      file

Kibana

  • 下载

    // 迅雷下载,保持和es相同版本
    https://artifacts.elastic.co/downloads/kibana/kibana-6.8.9-linux-x86_64.tar.gz
    
  • 上传解压

    // 上传到服务器 /usr/local/src
    tar -zxvf kibana-6.8.9-linux-x86_64.tar.gz
    mv kibana-6.8.9-linux-x86_64 /usr/local/kibana-6.8.9
    
  • 修改配置

    cd /usr/local/kibana-6.8.9
    
    vim config/kibana.yml
    
    // 修改以下配置,默认是localhost  除本机外其他机器无法访问
    server.host: "0.0.0.0"
    
    // 汉化配置
    i18n.locale: "zh-CN"
    
  • 如果es配置了认证,需添加一下配置

    elasticsearch.username: "kibana"
    elasticsearch.password: "上面es中配置的kibana的密码"
    
    // 如果不想显示的加在配置文件中,可以通过以下指令设置
    cd /usr/local/kibana-6.8.9/
    ./bin/kibana-keystore add elasticsearch.username
    ./bin/kibana-keystore add elasticsearch.password
    

    file

  • 启动或重启

    cd /usr/local/kibana-6.8.9
    ./bin/kibana  1>/dev/null 2>&1 &
    
  • 测试

    http://elasticsearch0000:5601
    
  • 查看kibana的进程

    ps aux | grep node
    

    file

汉化

kibana是日常使用比较多的管理平台;汉化后方便我们日常使用

  • 6.X之前版本汉化

    // 下载汉化工具
    wget https://mirrors.yangxingzhen.com/kibana/Kibana_Hanization.tar.gz
    // 解压
    tar -zxvf Kibana_Hanization.tar.gz
    // 进入目录
    cd Kibana_Hanization/old
    
    // 汉化;后面是kibana的目录
    python main.py /usr/local/kibana/
    

    file

  • 6.x版本汉化

    // 同样下载上面的汉化工具
    cd Kibana_Hanization
    // 将translations文件夹拷贝到src/legacy/core_plugins/kibana/目录下;如果没有对应目录就改用上面的方式汉化
    cp -rf translations /usr/local/kibana/src/legacy/core_plugins/kibana/
    
    // 找到kibana的配置文件
    vim /usr/local/kibana/config/kibana.yml
    
    // 修改: #i18n.locale: "en" 为以下
    i18n.locale: "zh-CN"
    

    file

  • 7.x版本配置中文

    // 找到kibana的配置文件
    vim /usr/local/kibana/config/kibana.yml
    
    // 修改: #i18n.locale: "en" 为以下
    i18n.locale: "zh-CN"
    

    file



标题:Elasticsearch 集群搭建及认证
作者:码霸霸
地址:https://lupf.cn/articles/2020/04/22/1587535463629.html