当前位置: 首页 > article >正文

【ELK】ES单节点升级为集群并开启https【亲测可用】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 开始操作


前言

es版本8.14.3

这次ES部署到了正式生产环境,需要解决单节问题,顺便开启https解决安全问题一步到位,特此记录,没看过上集兄弟的可以看看上集

【ELK】保姆级教程docker部署Elasticsearch+Kibana,必成

开始操作

1)配置使用自签名证书

注意:如果已有单节点es,想要将其转换升级为集群,必须要删除/data下的node数据,即清空data中的信息;配置证书仅在集群的第一台服务器node-01执行即可,其他服务器直接复制;elasticsearch生成证书有两种方式,elasticsearch-certgen 方式和elasticsearch-certutil方式,其中,

  • 第一种方式如果以后新增节点导致证书得重新生成并放到es所有节点,
  • 一般我们使用第2种;
  1. docker ps 查看
    在这里插入图片描述

  2. 进入容器

    docker exec -it es01 bash
    
  3. 调用elasticsearch-certutil接口

    为 Elastic Stack 设置基本安全性 |Elasticsearch 指南 [8.17] |弹性的

    # 本处采用通过的elasticsearch-certutil方式
    cd /usr/share/elasticsearch
    
    # 签发ca证书:输入证书文件名、密码,一般我们直接回车就行,命令执行完后,会在~目录下生成一个ca证书:elastic-stack-ca.p12
    ./bin/elasticsearch-certutil ca
    
    # 生成第二个证书文件:elastic-certifacates.p12
    # 要求输入 CA 的密码,如果在上一步中未配置密码,直接按 Enter
    ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
    
    # 将这个elastic-certifacates.p12 文件复制到config目录下
    mkdir config/certs
    mv *.p12 config/certs
    
    
  4. 增加集群配置1:集群间通信TLS

    [root@seeone bigdata]# cat es/es01/config/elasticsearch.yml 
    # 新增集群名称
    cluster.name: es-cluster
    node.name: es01
    http.host: 0.0.0.0
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    xpack.security.enabled: true
    xpack.security.http.ssl:
      enabled: false
    # 增加以下几行
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate 
    xpack.security.transport.ssl.client_authentication: required
    # 前面生成的文件
    xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
    
  5. 增加集群配置2:加密es和浏览器的流量

    为 Elastic Stack 设置基本安全性以及受保护的 HTTPS 流量 |Elasticsearch 指南 [8.17] |弹性的

    # 按照官网流程
    ./bin/elasticsearch-certutil http
    

    在这里插入图片描述

    docker 部署的话需要在f.步骤增加宿主机IP地址

    # 最后会生成压缩文件,此压缩文件 包含 Elasticsearch 和 Kibana 的一个目录
    /elasticsearch
    |_ README.txt
    |_ http.p12
    |_ sample-elasticsearch.yml
    
    /kibana
    |_ README.txt
    |_ elasticsearch-ca.pem
    |_ sample-kibana.yml
    
    # 复制到对应目录
    mv elasticsearch/es01/http.p12 config/certs 
    # es增加配置
    xpack.security.http.ssl.enabled: true
    xpack.security.http.ssl.keystore.path: http.p12
    
    
    
    [root@seeone config]# cat elasticsearch.yml 
    cluster.name: es-cluster
    node.name: es01
    http.host: 0.0.0.0
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    xpack.security.enabled: true
    xpack.security.http.ssl:
      enabled: true
      keystore.path: certs/http.p12
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate 
    xpack.security.transport.ssl.client_authentication: required
    xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
    
    

    在这里插入图片描述

  6. 增加集群配置3:加密kibana和es之间的流量

    # 将前面生成的这个文件elasticsearch-ca.pem 复制出来,然后在kibana.yml里面加个配置
    elasticsearch.ssl.certificateAuthorities: $KBN_PATH_CONF/elasticsearch-ca.pem
    
    [root@seeone config]# cat kibana.yml 
    server.name: kibana
    server.host: "0.0.0.0"
    elasticsearch.hosts: [ "https://192.168.56.57:19200" ]
    elasticsearch.ssl.certificateAuthorities: /usr/share/kibana/config/certs/elasticsearch-ca.pem
    elasticsearch.username: 'kibana_system'
    elasticsearch.password: 'Qianyue@2024'
    xpack.monitoring.ui.container.elasticsearch.enabled: true
    i18n.locale: "zh-CN"
    

    打开网页验证一下

    在这里插入图片描述

    # 可能需要重新创建一下账号
    curl -k -X PUT -u elastic:Qianyue@2024 "https://192.168.56.57:19200/_security/user/kibana_system/_password" -H 'Content-Type: application/json' -d'{"password": "Qianyue@2024"}'
    
  7. 增加集群配置4:加密kibana到浏览器之间的流量

    # 为 Kibana 生成服务器证书和私钥。
    ./bin/elasticsearch-certutil csr -name kibana-server -dns qianyue-kibana.com,www.qianyue-kibana.com
    
    # 可能还是要输入一个文件名
    #-------------------------------------------------------------------------
    #    ...
    #    Please enter the desired output file [csr-bundle.zip]:   //直接回车
    #    ...
    #-------------------------------------------------------------------------
    
    # 会得到文件csr-bundle.zip
    # 解压
    elasticsearch@es01:~$ unzip csr-bundle.zip 
    Archive:  csr-bundle.zip
       creating: kibana-server/
      inflating: kibana-server/kibana-server.csr  
      inflating: kibana-server/kibana-server.key 
    
    # 复制到指定位置
    # 用命令创建CRT证书
    openssl x509 -req -in kibana-server.csr -signkey kibana-server.key -out kibana-server.crt
    
    # kibana增加配置
    [root@seeone config]# cat kibana.yml 
    server.name: kibana
    server.host: "0.0.0.0"
    elasticsearch.hosts: [ "https://192.168.56.57:19200" ]
    elasticsearch.ssl.certificateAuthorities: /usr/share/kibana/config/certs/elasticsearch-ca.pem
    elasticsearch.username: 'kibana_system'
    elasticsearch.password: 'Qianyue@2024'
    
    # 增加3行
    server.ssl.enabled: true
    server.ssl.certificate: /usr/share/kibana/config/certs/kibana-server.crt
    server.ssl.key: /usr/share/kibana/config/certs/kibana-server.key
    
    xpack.monitoring.ui.container.elasticsearch.enabled: true
    i18n.locale: "zh-CN"
    
    
  8. 浏览器验证

    在这里插入图片描述

  9. 部署完成!


http://www.kler.cn/a/452406.html

相关文章:

  • 探索 Samba 服务器:搭建跨平台文件共享的桥梁
  • Converseen:全能免费批量图像处理专家
  • uniapp下拉选择组件
  • 金融租赁系统的发展与全球化战略实施探讨
  • 直连交换机简单应用
  • Docker 部署 SpringBoot VUE项目
  • STL heap原理和用法
  • js数字处理的相关方法
  • 【UE5.3.2】生成vs工程并rider打开
  • 完全免费英语听力数字日期部分训练软件
  • vue3入门教程:ref能否完全替代reactive?
  • Spring Boot对访问密钥加密解密——RSA
  • vue3入门教程:计算属性
  • CentOS7 安装MySQL
  • STM32 -- USB虚拟串口通信
  • Kubernetes ConfigMap的创建与使用
  • 深入探讨 Rust 与 C 的对比及其在内存安全和跨语言调用中的应用
  • 每天五分钟机器学习:核函数
  • AJAX与Axios
  • 第四节、电机定角度转动【51单片机-L298N-步进电机教程】