监控知识
# 开源监控产品
- Open-Falcon
替换zabbix和业务监控系统perfcounter,但是错失了云原生的机会
- Nightngale
对Prometheus做一些增强,托管在中国计算机基金会
- Categraf
类似 Telegraf、Datadog-agent、Grafana-agent 的一个 Agent,可以采集 metrics、logs、traces,尝试做一个大一统的采集解决方案,同时希望在项目里沉淀出各个监控目标的最佳实践,做到开箱即用。
# 监控需求
- 通过监控了解数据趋势,知道系统在未来的某个时刻可能出问题,预知问题。
- 通过监控了解系统的水位情况,为服务扩缩容提供数据支撑。
- 通过监控来给系统把脉,感知到哪里需要优化,比如一些中间件参数的调优。
- 通过监控来洞察业务,提供业务决策的数据依据,及时感知业务异常。
# 可观测性三大支柱
# 指标监控
聚焦在指标监控领域的开源产品有 Zabbix、Open-Falcon、Prometheus、Nightingale 等。
# 日志
从日志中可以得到很多信息,对于了解软件的运行情况、业务的运营情况都很关键。比如操作系统的日志、接入层的日志、服务运行日志,都是重要的数据源。
- 从操作系统的日志中,可以得知很多系统级事件的发生;
- 从接入层的日志中,可以得知有哪些域名、IP、URL 收到了访问,是否成功以及延迟情况等;
- 从服务日志中可以查到 Exception 的信息,调用堆栈等,对于排查问题来说非常关键。
开源产品 ELK 和 Loki,商业产品 Splunk 和 Datadog
# 链路追踪
以请求串联上下游模块,为每个请求生成一个随机字符串作为请求 ID。服务之间互相调用的时候,把这个 ID 逐层往下传递,每层分别耗费了多长时间,是否正常处理,都可以收集起来附到这个请求 ID 上。后面追查问题时,拿着请求 ID 就可以把串联的所有信息提取出来。
Skywalking、Jaeger、Zipkin 等,都是个中翘楚。
# 监控系统对比

编辑 (opens new window)