docker-compose 部署es及kibana(配置密码、https)

1. es

  1. 目录结构

    1. 在/opt下创建es文件夹

    2. 在es文件夹下创建如下目录:data(映射数据)、logs(映射日志)、plugins(映射插件)、conf(映射配置文件及证书)

    3. 证书自己生成

  2. 在/opt/es/conf 目录下创建配置文件 elasticsearch.yml

#集群名称 所有节点名称一致 (集群/单机配置)
cluster.name: bin-es-clusters

#当前该节点的名称,每个节点不能重复scan-es-node-1,scan-es-node-2,scan-es-node-3...
# (集群/单机配置)
node.name: bin-es-node-1

#当前该节点是不是有资格竞选主节点 (集群配置,单机注释)
#node.master: true

#当前该节点是否存储数据 (集群配置,单机注释)
#node.data: true

#设置为公开访问 (集群/单机配置)
network.host: 0.0.0.0

#设置其它节点和该节点交互的本机器的ip地址 (集群/单机配置)
network.publish_host: 192.168.xxx.xxx

# 设置映射端口(集群/单机配置)
http.port: 9200

# 内部节点之间沟通端口 (集群配置,单机注释)
#transport.tcp.port: 9300

#支持跨域访问 (集群/单机配置)
http.cors.enabled: true
http.cors.allow-origin: "*"

#安全控制 (集群/单机配置)
#开启es密码配置及https访问
xpack.security.enabled: true
#es从8.x开始,如果要开启es密码配置,下面配置也必须设置为true,此时还需要配置证书
xpack.security.transport.ssl.enabled: true
#开启https访问
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.key: /usr/share/elasticsearch/config/certs/server.key
xpack.security.http.ssl.certificate: /usr/share/elasticsearch/config/certs/server.crt
xpack.security.http.ssl.certificate_authorities: [ "/usr/share/elasticsearch/config/certs/server.crt" ]
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/certs/server.key
xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/certs/server.crt
xpack.security.transport.ssl.certificate_authorities: [ "/usr/share/elasticsearch/config/certs/server.crt" ]

#若只需要配置密码,不需要https访问,则如下配置即可
#xpack.security.enabled: true
#xpack.security.transport.ssl.enabled: true
#xpack.security.transport.ssl.key: /usr/share/elasticsearch/config/certs/server.key  
#xpack.security.transport.ssl.certificate: /usr/share/elasticsearch/config/certs/server.crt

#配置集群的主机地址 (集群配置,单机注释)
#discovery.seed_hosts: ["192.168.xxx.xxx"]
#初始主节点,使用一组初始的符合主条件的节点引导集群 (集群/单机配置)
cluster.initial_master_nodes: ["bin-es-node-1"]
#节点等待响应的时间,默认值是30秒,增加这个值,从一定程度上会减少误判导致脑裂 (集群配置,单机注释)
#discovery.zen.ping_timeout: 30s

#配置集群最少主节点数目,通常为 (可成为主节点的主机数目 / 2) + 1 (集群配置,单机注释)
#discovery.zen.minimum_master_nodes: 1

#禁用交换内存,提升效率 (集群/单机配置)
bootstrap.memory_lock: true

# http传输内容的最大容量 (集群/单机配置)
http.max_content_length: 200mb

  1. 给/opt/es目录赋权限

    chmod -R 777 /opt/es
    
  2. 配置服务器硬件信息

    1. 修改/etc/security/limits.conf,添加如下,提高进程及资源使用限制上限

      * soft nofile 65536
      * hard nofile 65536
      * soft nproc 32000
      * hard nproc 32000
      * hard memlock unlimited
      * soft memlock unlimited
      
    2. 执行命令使其生效

      source /etc/profile
      
    3. 修改/etc/systemd/system.conf,添加如下

      DefaultLimitNOFILE=65536
      DefaultLimitNPROC=32000
      DefaultLimitMEMLOCK=infinity
      
    4. 重启服务器,或执行下面两个命令使其配置生效

      systemctl daemon-reload
      systemctl daemon-reexec
      
    5. 修改虚拟内存最大映射数
      系统虚拟内存默认最大映射数为65530,无法满足ES系统要求,需要调整为262144以上。

      vim /etc/sysctl.conf
      
      #添加参数
      vm.max_map_count = 262144
      
    6. 重新加载/etc/sysctl.conf配置

      sysctl -p
      
  3. docker-compose-es.yml

version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.15.0
    container_name: elasticsearch
    restart: always
    environment:
      - "ES_JAVA_OPTS=-Xms16g -Xmx16g"
    ports:
      - "9200:9200"
      - "9300:9300"
    network_mode: host
    volumes:
      - "/opt/es/data:/usr/share/elasticsearch/data"
      - "/opt/es/logs:/usr/share/elasticsearch/logs"
      - "/opt/es/plugins:/usr/share/elasticsearch/plugins"
      - "/opt/es/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml"
      - "/opt/es/conf/certs:/usr/share/elasticsearch/config/certs"
  1. 修改elastic密码
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic
  1. 设置kibana_system内置用户的密码
docker exec -it elasticsearch /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u kibana_system
  1. 访问验证

    https://ip:9200

    会弹窗输入用户名密码。用户名是elastic,密码是自己设置的。

2. kibana

  1. 目录结构

    1. 在/opt下创建kibana文件夹
    2. 在kibana文件夹下创建如下目录:conf(映射配置文件及证书)
    3. 证书使用和es一样的证书
  2. 在/opt/kibana/conf 目录下创建配置文件 kibana.yml

server.port: 5601
# 国际化
i18n.locale: "zh-CN"

# es连接地址,部署es时配了https就用https,没有配https就用http
elasticsearch.hosts: ["https://192.168.xxx.xxx:9200"]

# 访问ES服务器的账号 密码
elasticsearch.username: "kibana_system"
# 密码就是上面生成的kibana_system的密码
elasticsearch.password: "xxxxxxxx"

# 设置证书路径
elasticsearch.ssl.certificateAuthorities: ["/usr/share/kibana/config/certs/server.crt"]

# 禁用证书验证,因为这是自签名证书
elasticsearch.ssl.verificationMode: none

# 服务主机名
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
monitoring.ui.container.elasticsearch.enabled: true
  1. docker-compose-kibana.yml
version: '3'
services:
  kibana:
    image: docker.elastic.co/kibana/kibana:8.15.0
    container_name: kibana
    restart: always
    ports:
      - "5601:5601"
    network_mode: host
    volumes:
      - "/opt/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml"
      - "/opt/kibana/conf/certs:/usr/share/kibana/config/certs"
  1. 访问验证

    http://ip:5601

    需要输入用户名密码。用户名是elastic,密码是自己设置的。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值