背景

目前项目查看日志的方式较为朴素,人工线上查看log的方式也较为麻烦. 一套能查看全链路日志的系统,对每位开发来说无疑是雪中送炭的

其次,目前的业务日志中的数据是可供二次利用和开发的,而非目前仅是排查问题使用

目标

  1. 打造全员可实时查看生产日志,并能提取调用链日志
  2. 应用到后续的业务发展中(BI)
  3. apm

价值

为BI业务(other/计算)做准备

夯实服务架构

便利开发查看日志,不仅是业务日志,filebeat提供了各种module以支持监控各种中间件的日志

初步设想架构图

改动点

  1. 服务
    1. 保持原有日志格式
    2. 各日志加字段['traceId','localIp','module']-以便有问题可以确定到某台机器上的某个服务
    3. 各模块traceId通过rest接口传递header(Rest插件改造)
    4. 由(网关生成traceid)orange向下传递traceId(uuid/snowflake)
  2. Elk(单点)
    1. filebeat和服务部署在同台机器上
    2. Es-index格式暂定: ${环境/(dev/prod/release)}-${区分开各业务字段(比如bi/gateway/biz)}-${日期(YYYYMM)}
    3. logstash分割message,add-field['traceId']
    4. elk部署在另外一台机器