ICode9

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

docker efk(filebeat+logstash+es+kibana)

2021-10-08 14:00:26  阅读:191  来源: 互联网

标签:filebeat -- kibana efk elasticsearch docker logstash


 1.系统架构  

在这里插入图片描述

通常我们说的elastic stack,也就是elk,通过es 收集日志数据,存到elasticsearch,最后通过kibana进行统计分析,但是elastic公司后续又推出了新的日志收集产品beats,这里更推荐使用beats,性能更高

 2.搭建es

 2.1 创建docker 网络,用于不同容器间通信

之前常用--link container_name,因后面--link会被官方舍弃,故改用network方式

docker network creat efknetwork

 docker search elasticsearch

docker pull elasticsearch:7.13.0(这里需要加上版本号)

2.2 启动es

docker run -idt \

--restart=always \

--name elasticsearch \

-e ES_JAVA_POTS="-Xms512m -Xmx512m"

-p 9200:9200 \

--net efknetwork \

-e "discovery.type=single-node" \

elasticsearch:7.13.0

2.3 将配置文件copy出来,方便后续更改配置

docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.yml

2.4 重启es,映射配置文件

docker run -idt \

--restart=always \

--name elasticsearch \

-e ES_JAVA_POTS="-Xms512m -Xmx512m"

-p 9200:9200 \

--net efknetwork \

-v /home/workspace/elk/elasticsearch/conf/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \

-e "discovery.type=single-node" \

elasticsearch:7.13.0

2.5 查看es启动情况

http://192.168.0.101:9200/

 

3.搭建kibana

docker pull kibana:7.13.0

3.1 启动kibana

docker run -idt \
    --restart=always \
    --name kibana \
    --net efknetwork \
    -p 5601:5601 \
    -e "I18N_LOCALE=zh-CN" \
    kibana:7.13.0

3.2 将配置文件copy出来,方便后面更改

docker cp kibana:/usr/share/kibana/config/kibana.yml /home/workspace/elk/kibana/config

3.3 更改kibana.yml配置文件

server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"

这里直接使用容器名,默认的network只能使用ip地址,而新创建的network使用容器名,可以自动解析,默认是英文界面,zh-CN改为中文

3.4 重启kibana

docker run -idt \
    --restart=always \
    --name kibana \
    --net efknetwork \
    -v /home/workspace/elk/kibana/config:/config \
    -p 5601:5601 \
    -e "I18N_LOCALE=zh-CN" \
    kibana:7.13.0

3.5 查看kibana启动情况

http://192.168.0.101:5601

4.搭建logstash

docker pull logstash:7.13.0

4.1 创建需要映射的配置文件logstash.conf 和 logstash.yml

logstash.conf

 logstash.yml

 说明:

logstash.yml:用于挂载logstash相关配置

logstash.conf:用于挂载logstash日志处理配置文件

4.2 启动logstash

docker run  -idt \
    --restart=always \
    -p 5044:5044 \
    --name logstash \
    --net efknetwork \
    -v /home/workspace/elk/logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
    -v /home/workspace/elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml \
    logstash:7.13.0
4.3 查看日志收集情况

docker logs logstash

 

5.搭建filebeat

docker pull filebeat:7.13.0

5.1 创建需要映射的配置文件filebeat.docker.yml

大致结构

 

以mysql慢查询为例,简单配置以示效果

这里为什么不去容器内修改配置文件呢?因为filebeat容器内的配置文件是只读的不可更改,所以只能通过映射配置文件的方式修改

5.2 启动filebeat

docker run -idt \
    --restart=always \
    -v /home/workspace/elk/filebeat/conf/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro \
    -v /home/mysql/log:/var/log/filebeat:rw \
    --name filebeat \
    --net efknetwork \
    -e setup.kibana.host=192.168.0.101:5601 \
    elastic/filebeat:7.13.0

5.3 查看filebeat启动情况

docker logs filebeat

 5.4 检验是否收集所需日志

在收集日志的目录下面添加日志文件,或者更新日志,然后去kibana查看是否有filebeat的索引生成,我在这里生成一个mysql慢查询日志,mysql_slow.log

 

 

 可以通过搜索或者日期,字段进行筛选

 

 


标签:filebeat,--,kibana,efk,elasticsearch,docker,logstash
来源: https://www.cnblogs.com/zhangdapangzo/p/15379448.html

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

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

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

ICode9版权所有