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

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

最新文章

  1. sql alter表字段处理
  2. 如何访问Microsoft Azure Storage
  3. 基于FPGA的线阵CCD图像测量系统研究——笔记
  4. Visual Studio 2015开发Android App问题集锦
  5. 马昕璐 201771010118《面向对象程序设计(java)》第十五周学习总结
  6. PHP7.2中安装mcrypt扩展的问题
  7. linux 日常中会用到的命令(持续更新)
  8. HTML学习笔记Day15
  9. printf是在libc库中么?
  10. (转)Ubuntu无法找到add-apt-repository问题的解决方法
  11. css font-size=0的妙用
  12. luoguP3750 [六省联考2017]分手是祝愿 概率期望DP + 贪心
  13. (队列的应用5.3.1)ZOJ 3210 A Stack or A Queue?根据进入结构的序列和离开结构的序列确定是stack还是queue)
  14. 前端开发 - CSS - 上
  15. Tkinter Anchors(锚)
  16. MySql主从复制原理和环境配置搭建
  17. 存入azure table时忽略某个属性
  18. 使用Serializable接口进行JAVA的序列化和反序列化
  19. Pandas 数据结构Dataframe:基本概念及创建
  20. 【转】 从输入 URL 到页面加载完成的过程中都发生了什么事情?

热门文章

  1. css - rem和vw
  2. 工作多年后再来聊聊IO
  3. Spring Boot +Vue 项目实战笔记(二):前后端结合测试(登录页面开发)
  4. k8s笔记0528-基于KUBERNETES构建企业容器云手动部署集群记录-4
  5. Insights直播预告 | 多媒体管线服务,助您轻松进入“技术流”创新阵地
  6. rtsp->rtmp 推流直播 Plan B
  7. Spring事务管理回滚问题
  8. CSS导航菜单(二级菜单)
  9. 放码来战!HMS Core线上Codelabs挑战赛正式开始
  10. 5-7接口测试工具之jmeter的使用