NOTE

2.11 如何设计日志监控

1. 日志监控是什么 把代码中的日志收集在一个地方,用来统一查询处理 2. 为什么需要日志监控 如果没有日志监控,那么需要登录上每台机器进行查询,效率很低 3. 如何实现日志监控 3.1. 输出日志 - 由应用程序打印日志,输出到本地文件 - 日志打印策略 - 区分日志等级 - 关键路径和异常路径

Software Architecture & Engineering创建于 更新于 historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 日志监控是什么

把代码中的日志收集在一个地方,用来统一查询处理

2. 为什么需要日志监控

如果没有日志监控,那么需要登录上每台机器进行查询,效率很低

3. 如何实现日志监控

3.1. 输出日志

  • 由应用程序打印日志,输出到本地文件
  • 日志打印策略
    • 区分日志等级
    • 关键路径和异常路径
    • 打印完整信息
      • req、rsp、error等
    • 带上扩展信息
      • server #应用名 ServerRPCName
      • func #函数名 CalleeMethod
      • clientip #被调端ip
      • client_type #被调客户端类型
      • uid #用户uid/qbid
      • original_id #用户原始帐号id(uin/tinyid/guid)
      • msg #业务上报信息
      • obj1 #环境 env name
      • obj2 #IPv6 address
      • obj3 #版本号version
      • obj4 #天机阁链路 TraceID
      • obj5 #预留字段5
      • obj6 #预留字段6
      • obj7 #预留字段7
      • level_key #atta默认字段(日志级别)
      • caller_key #atta默认字段(文件行号)
    • 不要打印敏感信息

3.2. 收集日志

  • 将各个服务器的日志文件收集起来

3.3. 聚合、加工日志

  • 日志是非结构化数据,需要转换成结构化数据以便查询、分析

3.4. 索引、存储日志

3.5. 分析、查询日志

  • 查询日志,分析并输出统计图表

4. 日志监控组件

4.1. ELK

5. 参考