赞
踩
目录
2、elasticsearch的config的es_master.yml配置
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
- 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博客
- # 集群名称
- 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下面创建的自定义网络
- # 汉化
- 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
es_master.yml配置设置了xpack安全验证时,进入es容器创建账号
docker exec -it elasticsearch bash
输入命令,
./bin/elasticsearch-setup-passwords auto #系统分配密码,比较安全
./bin/elasticsearch-setup-passwords interactive #自己设置密码
以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(使用配置的验证账号登陆)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。