window-docker-compose搭建elk:7.X(详细版,当前7.17版本)

目录

目录结构

安装步骤

1、docker-compose.yml编写

2、elasticsearch的config的es_master.yml配置

3、kibana的config的kibana.yml配置

4、elasticsearch创建安全验证用户

5、创建Kibana密钥库并添加配置(就是将es的用户和密码存储在密钥库中,用了进行Kibana访问带安全认证的ES)


版本信息,不一定按照我的版本

Docker version 23.0.5
Docker Desktop 4.19.0
Docker Compose version v2.17.3

docker images
elasticsearch:7.17.5
kibana:7.17.5
# es的视图化插件,需要的可以装
mobz/elasticsearch-head:5

目录结构

安装步骤

参考网站:docker-compose部署单台es和kibana

1、docker-compose.yml编写

version: "3.3"
services:
  es_master:
    image: elasticsearch:7.17.5

    #这里我尝试改成es_master,但是下面的kibana.elasticsearch.hosts=https://es_master:9200无法访问es,不知道为什么
    container_name: elasticsearch 
    hostname: es_master
    restart: always
    ports:
      - 9200:9200
      - 9300:9300
    expose:
      - "9200"
      - "9300"
    volumes:
      - D:/目录/elk/es/config/conf1/es-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - D:/目录/elk/es/data/data1:/usr/share/elasticsearch/data/
      - D:/目录/elk/es/logs:/usr/share/elasticsearch/logs/
      - D:/目录/elk/es/plugins:/usr/share/elasticsearch/plugins/
    environment:
      - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
      #下面注释了 # 不会生效
      #- 'cluster.name=elasticsearch' 设置集群名称为elasticsearch
      #- 'discovery.type=single-node' 以单一节点模式启动
    networks:
      elk: #使用networks创建网络
        ipv4_address: 192.168.20.10
  kibana:
    container_name: kibana
    hostname: kibana
    #kibana的版本要与es的版本对应(必须)
    image: kibana:7.17.5
    restart: always
    environment:
      - elasticsearch.hosts=https://elasticsearch:9200
    ports:
      - 5601:5601
    volumes:
      - D:/目录/elk/kibana/config/kibana.yml:/usr/share/elasticsearch/config/kibana.yml
    depends_on:
      - es_master
    networks:
      elk:
        ipv4_address: 192.168.20.20
  #es视图化工具插件
  es-head:
    container_name: es-head
    image: mobz/elasticsearch-head:5
    restart: always
    ports:
      - 9100:9100
    #依赖es-master
    depends_on:
      - es_master
networks:
  #使用已创建的网络
  #mynetwork:
  #  external: true
  #创建网络
  elk:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.20.0/24
          gateway: 192.168.20.1

es_master容器的container_name我尝试过定义为container_name: es_master
kibana容器的
environment: - elasticsearch.hosts=https://es_master:9200
的时候,kibana会报错,提示找不到es的节点,所以我直接用container_name: elasticsearch

如果es容器提示以下报错

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

查看这里的文章,针对window的,但是重启电脑后就会失效

windows docker 安装 ES vm.max_map_count [65530]_junoo0的博客-CSDN博客

2、elasticsearch的config的es_master.yml配置

# 集群名称
cluster.name: es-cluster
# 节点名称
node.name: es-node1
# 是否可以成为master节点
node.master: true
# 是否允许该节点存储数据,默认开启
node.data: true
# 网络绑定
network.host: 0.0.0.0
# 设置对外服务的http端口
http.port: 9200
# 设置节点间交互的tcp端口
transport.port: 9300
# 集群发现
discovery.seed_hosts: ["192.168.20.10"] #这里的ip是network自定义的网络
# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
cluster.initial_master_nodes: ["es-node1"]
# 支持跨域访问
http.cors.enabled: true
http.cors.allow-origin: "*"
# xpack安全认证,如果不需要验证账号密码,下面配置改为 false
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

discovery.seed_hosts: ["192.168.20.10"] 

上面的ip地址,是再docker-compose.yml下面创建的自定义网络

3、kibana的config的kibana.yml配置

# 汉化
i18n.locale: "zh-CN"
# 服务
server.port: 5601
server.host: "0.0.0.0"
server.shutdownTimeout: "5s"
# ES
elasticsearch.hosts: [ "https://elasticsearch:9200" ]
# 此处设置elastic的用户名和密码,es设置开启安全验证的时候必须要设置
#elasticsearch.username: "elastic"
#elasticsearch.password: "***"

这里有个坑,设置了es身份验证凭据,但是kibana起来之后会一直提示,原因我也不是很清除为什么,有大神可以解答下吗

missing authentication credentials for REST request

所以我换了另一种方法给kibana设置安全验证es账号

注意,需要完成 4、elasticsearch创建安全验证用户 操作

参考地址:Kibana访问带安全认证的ES

4、elasticsearch创建安全验证用户

es_master.yml配置设置了xpack安全验证时,进入es容器创建账号

docker exec -it elasticsearch bash

输入命令,

./bin/elasticsearch-setup-passwords auto   #系统分配密码,比较安全

./bin/elasticsearch-setup-passwords interactive #自己设置密码

5、创建Kibana密钥库并添加配置(就是将es的用户和密码存储在密钥库中,用了进行Kibana访问带安全认证的ES)

以root账号进入kibana容器中

./bin/kibana-keystore create
./bin/kibana-keystore add elasticsearch.username
【输入elastic,我用的es创建的elastic账号】
./bin/kibana-keystore add elasticsearch.password
【输入第一步中的关于elastic的密码】

 参考地址:Kibana访问带安全认证的ES

执行完成之后重启kibana容器

6、搭建完成

es服务

验证账号通过

kibana

登陆kibana(使用配置的验证账号登陆)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值