NOTE
2.11 如何设计日志监控
1. 日志监控是什么 把代码中的日志收集在一个地方,用来统一查询处理 2. 为什么需要日志监控 如果没有日志监控,那么需要登录上每台机器进行查询,效率很低 3. 如何实现日志监控 3.1. 输出日志 - 由应用程序打印日志,输出到本地文件 - 日志打印策略 - 区分日志等级 - 关键路径和异常路径
这是历史学习笔记,可能存在过时或不完整的理解。
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. 索引、存储日志
- 将结构化日志索引并存储
- Elasticsearch
- 
3.5. 分析、查询日志
- 查询日志,分析并输出统计图表
4. 日志监控组件
4.1. ELK
