距离上一次更新该文章已经过了 715 天,文章所描述的內容可能已经发生变化,请留意。
背景
目前项目查看日志的方式较为朴素,人工线上查看log的方式也较为麻烦. 一套能查看全链路日志的系统,对每位开发来说无疑是雪中送炭的
其次,目前的业务日志中的数据是可供二次利用和开发的,而非目前仅是排查问题使用
目标
- 打造全员可实时查看生产日志,并能提取调用链日志
- 应用到后续的业务发展中(BI)
- apm
价值
为BI业务(other/计算)做准备
夯实服务架构
便利开发查看日志,不仅是业务日志,filebeat提供了各种module以支持监控各种中间件的日志
初步设想架构图

改动点
- 服务
- 保持原有日志格式
- 各日志加字段['traceId','localIp','module']-以便有问题可以确定到某台机器上的某个服务
- 各模块traceId通过rest接口传递header(Rest插件改造)
- 由(网关生成traceid)orange向下传递traceId(uuid/snowflake)
- Elk(单点)
- filebeat和服务部署在同台机器上
- Es-index格式暂定: ${环境/(dev/prod/release)}-${区分开各业务字段(比如bi/gateway/biz)}-${日期(YYYYMM)}
- logstash分割message,add-field['traceId']
- elk部署在另外一台机器
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!