参考链接:https://www.cnblogs.com/fbtop/p/11005469.html

 

目的:

        线程请求生成对应的requestId,根据requestId追踪链路生产消费的数据,方便定位问题和回溯;基于一些XXX考虑,和阿巴阿巴阿巴的原因先拿FileBeat+ELK的方式进行实验,跑通日志收集和展示的功能。

为了避免重复造轮子,本篇只对上出链接博客做一些补充:

       1.单机/docker/版本7.1.1;

       2.docker四大网络的特点:https://www.cnblogs.com/zhuochong/p/10069293.html;本次采用net=bridge的网络模式,禁止出现localhost 和127.0.0.1,统一使用本机ip(重要);

      3.对docker -v挂载命令有所了解;

      4.确认fileBeat是否采集到了日志:进入容器 [docker exec -i -t  容器号 bash] ,查看/var/log/nginx/下的日志文件即可;另外docker启动时可以去掉 -d 参数,观看启动运行日志,方便查看状态;

      下载 curl -L -O https://raw.githubusercontent.com/elastic/beats/7.1/deploy/docker/filebeat.docker.yml时提示链接失败,需要本地hosts文件绑定(199.232.68.133)ip:raw.githubusercontent.com ,另外其实也不用下载,通过touch filebeat.docker.yml +copy内容也可。此外进入fileBeat容器/usr/share/filebeat/ 目录下也有该文件;

      5.logstash配置中config.d是目录,里面有配置文件test;

      6.es是否采集到了数据可以使用mobz/elasticsearch-head:5 来链接查看;然后再用kibana;也可以通过head操作es,然后验证kibana数据展示;

      7.如顶边参考文中所说,配置目录和本机上日志的目录一定要区分好,不要照抄,在docker run 时要保证挂载的目录是正确的;

效果:

镜像:

Docker单机:FileBeat+ELK 日志收集

 网络:自定义网络模式默认是bridge

Docker单机:FileBeat+ELK 日志收集

head查看es数据:

Docker单机:FileBeat+ELK 日志收集

kibana过滤requestId回溯生产消费数据:

Docker单机:FileBeat+ELK 日志收集

 

此外还有个问题,自定义的requestId如何做到隐式和无侵入性,分布式调用下如何追踪,还待继续探索。

相关文章:

  • 2021-11-18
  • 2021-09-10
  • 2021-09-10
  • 2021-07-06
  • 2021-09-29
  • 2021-07-30
  • 2021-06-24
猜你喜欢
  • 2018-11-19
  • 2020-01-19
  • 2022-01-01
  • 2021-11-29
  • 2021-09-06
  • 2019-08-23
  • 2018-12-08
相关资源
相似解决方案