当前位置:   article > 正文

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

docker elk 7

目录

目录结构

安装步骤

1、docker-compose.yml编写

2、elasticsearch的config的es_master.yml配置

3、kibana的config的kibana.yml配置

4、elasticsearch创建安全验证用户

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


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

  1. Docker version 23.0.5
  2. Docker Desktop 4.19.0
  3. Docker Compose version v2.17.3
  4. docker images
  5. elasticsearch:7.17.5
  6. kibana:7.17.5
  7. # es的视图化插件,需要的可以装
  8. mobz/elasticsearch-head:5

目录结构

安装步骤

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

1、docker-compose.yml编写

  1. version: "3.3"
  2. services:
  3. es_master:
  4. image: elasticsearch:7.17.5
  5. #这里我尝试改成es_master,但是下面的kibana.elasticsearch.hosts=https://es_master:9200无法访问es,不知道为什么
  6. container_name: elasticsearch
  7. hostname: es_master
  8. restart: always
  9. ports:
  10. - 9200:9200
  11. - 9300:9300
  12. expose:
  13. - "9200"
  14. - "9300"
  15. volumes:
  16. - D:/目录/elk/es/config/conf1/es-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml
  17. - D:/目录/elk/es/data/data1:/usr/share/elasticsearch/data/
  18. - D:/目录/elk/es/logs:/usr/share/elasticsearch/logs/
  19. - D:/目录/elk/es/plugins:/usr/share/elasticsearch/plugins/
  20. environment:
  21. - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
  22. #下面注释了 # 不会生效
  23. #- 'cluster.name=elasticsearch' 设置集群名称为elasticsearch
  24. #- 'discovery.type=single-node' 以单一节点模式启动
  25. networks:
  26. elk: #使用networks创建网络
  27. ipv4_address: 192.168.20.10
  28. kibana:
  29. container_name: kibana
  30. hostname: kibana
  31. #kibana的版本要与es的版本对应(必须)
  32. image: kibana:7.17.5
  33. restart: always
  34. environment:
  35. - elasticsearch.hosts=https://elasticsearch:9200
  36. ports:
  37. - 5601:5601
  38. volumes:
  39. - D:/目录/elk/kibana/config/kibana.yml:/usr/share/elasticsearch/config/kibana.yml
  40. depends_on:
  41. - es_master
  42. networks:
  43. elk:
  44. ipv4_address: 192.168.20.20
  45. #es视图化工具插件
  46. es-head:
  47. container_name: es-head
  48. image: mobz/elasticsearch-head:5
  49. restart: always
  50. ports:
  51. - 9100:9100
  52. #依赖es-master
  53. depends_on:
  54. - es_master
  55. networks:
  56. #使用已创建的网络
  57. #mynetwork:
  58. # external: true
  59. #创建网络
  60. elk:
  61. driver: bridge
  62. ipam:
  63. driver: default
  64. config:
  65. - subnet: 192.168.20.0/24
  66. 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配置

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

discovery.seed_hosts: ["192.168.20.10"] 

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

3、kibana的config的kibana.yml配置

  1. # 汉化
  2. i18n.locale: "zh-CN"
  3. # 服务
  4. server.port: 5601
  5. server.host: "0.0.0.0"
  6. server.shutdownTimeout: "5s"
  7. # ES
  8. elasticsearch.hosts: [ "https://elasticsearch:9200" ]
  9. # 此处设置elastic的用户名和密码,es设置开启安全验证的时候必须要设置
  10. #elasticsearch.username: "elastic"
  11. #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(使用配置的验证账号登陆)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/47508
推荐阅读
相关标签
  

闽ICP备14008679号