本节重点介绍 :
- 监控系统分类
- 时序监控和日志监控的对比
- 轻量日志监控系统的诉求
监控系统分类
监控系统按照原理和作用大致可以分为三类
- 日志类(Log)
- 调用链类(Tracing)
- 度量类(Metrics)
日志类(Log)介绍
- 日志类比较常见,我们的框架代码、系统环境、以及业务逻辑中一般都会产出一些日志
- 这些日志我们通常把它记录后统一收集起来,方便在需要的时候进行查询。
- 日志类记录的信息一般是一些事件、非结构化的一些文本内容
- 日志的输出和处理的解决方案比较多,大家熟知的有 ELK Stack 方案(Elasticseach + Logstash + Kibana)
时序监控和日志监控的对比
- 日志监控属于非侵入监控
- 意思是不像时序监控那样必须引用sdk代码才能打点
- 业务只需要写入日志,提供日志的路径等信息,日志监控系统就可以采集到
- 日志监控提供更原始的时间戳
- 因为只要能采集到原始日志,那么时间戳相对精准一点
- 时序监控在时间戳上会有偏移的处理
elk等日志监控系统的弊端
- 存储使用es
- es无论你查不查,巨大的全文索引开销必须时刻承担
轻量日志监控系统的诉求
总结起来就是日志转时序
算qps
- 比如统计 nginx日志中code=200的qps
- 对应就是 每隔10秒grep一下日志文件 ,用增量/时间差 算出qps
日志关键字告警
错误类型的关键字举例
- 如应用连接mysql报错
dial mysql host error
- 如redis同步失败报错
cannot sync data
- 如进程被oom kill了
Out of Memory (OOM) killer
诉求和解决方案
- 出现上述错误类型进行报警
- 但并不需要存储全量的日志
- 所以可以通过日志转时序解决
- 将日志流信息转换计算后推送给时序监控系统
本节重点总结 :
- 监控系统分类
- 时序监控和日志监控的对比
- 轻量日志监控系统的诉求