参考链接: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 时要保证挂载的目录是正确的;
效果:
镜像:
网络:自定义网络模式默认是bridge
head查看es数据:
kibana过滤requestId回溯生产消费数据:
此外还有个问题,自定义的requestId如何做到隐式和无侵入性,分布式调用下如何追踪,还待继续探索。
来源:oschina
链接:https://my.oschina.net/u/4352688/blog/4492234