ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

swarm部署efk监控docker集群

2022-06-14 11:02:00  阅读:186  来源: 互联网

标签:false kibana server swarm efk elasticsearch Kibana docker


前文提要,ES集群已经部署好了

不清楚的可以看下这里https://www.cnblogs.com/whitelittle/p/16358037.html

 

下面是部署filebeat和kibana

按照涉及思路,FILEBEAT需要部署在每一个节点上,收集日志,KIBana只需要在master上有一个进行展示即可,这样数据存储有ES集群,也保证了高可用

直接上YML

cat efk.yml

version: '3.7' services:   kibana:     image: docker.elastic.co/kibana/kibana:7.4.2     ports:       - "5601:5601"     networks:       - dms     volumes:          - /home/www/docker/efk/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml     deploy:       placement:         constraints:           - node.hostname == master
  filebeat:     image: docker.elastic.co/beats/filebeat:7.4.2     networks:       - dms     user: root     volumes:         - /home/www/docker/efk/filebeat/config/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro         - /home/docker/containers:/var/lib/docker/containers:ro         - /var/run/docker.sock:/var/run/docker.sock:ro     privileged: true     deploy:       replicas: 3             networks:   #定义服务网桥名称   dms:     #指定网桥驱动,有bridge/overlay,默认是bridge     driver: overlay     #false-统自动创建网桥名,格式为: 目录名_网桥名,默认为false; true-使用外部创建的网桥,需要自己手动创建     external: true     编写好配置文件后,需要编写filebeat的日志模板,以及Kibana的配置文件   ###############kibana配置############################   #####----------kibana服务相关----------#####   #提供服务的端口,监听端口 server.port: 5601     #主机地址,可以是ip,主机名 server.host: 0.0.0.0   #在代理后面运行,则可以指定安装Kibana的路径 #使用server.rewriteBasePath设置告诉Kibana是否应删除basePath #接收到的请求,并在启动时防止过时警告 #此设置不能以斜杠结尾 #server.basePath: ""   #指定Kibana是否应重写以server.basePath为前缀的请求,或者要求它们由反向代理重写,默认false server.rewriteBasePath: false   #传入服务器请求的最大有效负载大小,以字节为单位,默认1048576 server.maxPayloadBytes: 1048576   #该kibana服务的名称,默认your-hostname server.name: "kibana"   #服务的pid文件路径,默认/var/run/kibana.pid #pid.file: /var/run/kibana.pid     #####----------elasticsearch相关----------#####   #kibana访问es服务器的URL,就可以有多个,以逗号","隔开 elasticsearch.hosts: ["http://172.20.69.232:9200"]   #当此值为true时,Kibana使用server.host设定的主机名 #当此值为false时,Kibana使用连接Kibana实例的主机的主机名 #默认ture elasticsearch.preserveHost: true   #Kibana使用Elasticsearch中的索引来存储已保存的搜索,可视化和仪表板 #如果索引尚不存在,Kibana会创建一个新索引 #默认.kibana kibana.index: ".kibana"   #加载的默认应用程序 #默认home kibana.defaultAppId: "home"     #kibana访问Elasticsearch的账号与密码(如果ElasticSearch设置了的话) elasticsearch.username: "kibana_system" elasticsearch.password: "pass"   #从Kibana服务器到浏览器的传出请求是否启用SSL #设置为true时,需要server.ssl.certificate和server.ssl.key server.ssl.enabled: false #server.ssl.certificate: /path/to/your/server.crt #server.ssl.key: /path/to/your/server.key     #从Kibana到Elasticsearch启用SSL后,ssl.certificate和ssl.key的位置 #elasticsearch.ssl.certificate: /path/to/your/client.crt #elasticsearch.ssl.key: /path/to/your/client.key   #PEM文件的路径列表 #elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]     #控制Elasticsearch提供的证书验证 #有效值为none,certificate和full elasticsearch.ssl.verificationMode: none   #Elasticsearch服务器响应ping的时间,单位ms elasticsearch.pingTimeout: 1500   #Elasticsearch 的响应的时间,单位ms elasticsearch.requestTimeout: 30000     #Kibana客户端发送到Elasticsearch的标头列表 #如不发送客户端标头,请将此值设置为空 elasticsearch.requestHeadersWhitelist: []     #Kibana客户端发往Elasticsearch的标题名称和值 elasticsearch.customHeaders: {}   #Elasticsearch等待分片响应的时间 elasticsearch.shardTimeout: 30000   #Kibana刚启动时等待Elasticsearch的时间,单位ms,然后重试 elasticsearch.startupTimeout: 5000   #记录发送到Elasticsearch的查询 elasticsearch.logQueries: false       #####----------日志相关----------#####   #kibana日志文件存储路径,默认stdout logging.dest: stdout   #此值为true时,禁止所有日志记录输出 #默认false logging.silent: false   #此值为true时,禁止除错误消息之外的所有日志记录输出 #默认false logging.quiet: false   #此值为true时,记录所有事件,包括系统使用信息和所有请求 #默认false logging.verbose: false   #####----------其他----------#####   #系统和进程取样间隔,单位ms,最小值100ms #默认5000ms ops.interval: 5000   #kibana web语言 #默认en i18n.locale: "zh-CN"     中间很不少试错环节,这是我测试没问题的配置文件,ES填写一个节点就好,因为已经配置了集群,填写任意一个即可,如果填写三个节点,我测试后,配置文件GO模板不支持arry的数组数据类型报错     ##############################FILEBEAT模板###################   setup.ilm.enabled: false filebeat.inputs: - type: docker   containers.ids:     - "*"   containers.paths:     - "/var/lib/docker/containers/${data.docker.container.id}/*.log"   multiline.pattern: '^[[:space:]]+(at|\.{3})\b|^Caused by:'   multiline.negate: false   multiline.match: after

processors:   - add_docker_metadata:       host: "unix:///var/run/docker.sock"
setup.template.name: "docker" setup.template.pattern: "docker-*" setup.template.enabled: false # 如果是第一次则不需要, 如果 index-template 已经存在需要更新, 则需要 #setup.template.overwrite: false setup.template.settings:   index.number_of_shards: 2   index.number_of_replicas: 0 output.elasticsearch:   hosts: ["http://172.20.69.232:9200"]   worker: 12   # 单个elasticsearch批量API索引请求的最大事件数。默认是50。   bulk_max_size: 400   indices:     - index: "docker-%{[container.name]}-%{+yyyy.MM.dd}"   同样,也只能填写一个节点,填写多个就识别不了,只要我们ES集群保持没问题就可以了     docker stack deploy -c efk.yml efk

[root@master ~]# docker stack ps efk
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
bgido9zu320z efk_filebeat.1 docker.elastic.co/beats/filebeat:7.4.2 node2 Running Running 15 minutes ago
rsifytwe4iza efk_kibana.1 docker.elastic.co/kibana/kibana:7.4.2 master Running Running 15 minutes ago
v24w0wm0nem8 efk_filebeat.2 docker.elastic.co/beats/filebeat:7.4.2 node1 Running Running 15 minutes ago
shr81pa54r8f efk_filebeat.3 docker.elastic.co/beats/filebeat:7.4.2 master Running Running 15 minutes ago

 

验证访问

http://172.20.69.232:5601/,直接是中文界面

 

 

创建一个索引模式

 

 

 

 

设置默认即可  

标签:false,kibana,server,swarm,efk,elasticsearch,Kibana,docker
来源: https://www.cnblogs.com/whitelittle/p/16373800.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有