聊聊监控系统(01) overview
文章目录
写在前面
监控这个话题太大了,本文谨记录本人在参与我司监控系统重构开发过程中的一些思考。
包括技术上、产品形态上的一些内容。
监控系统的架构
本次重构脱胎于open-falcon,所以架构上复用了很多falcon的组件。
存储(graph)
- 仍使用经典时序数据库RRDtool。
transfer/query
- 分别在入方向和出方向使用相同的一致性hash算法做分片。
index
- 接收存储推送的数据,生成索引,用于indexing,方便绘图链路和报警链路的counter补全。
judge
- 根据用户配置的报警策略,通过
pull
的方式查询index/query(graph),获取数据,生成事件。
alarm
- 通过判断judge过来的事件,决定其需要报警、收敛、屏蔽,还是callback。
- 通过调用各通道api的方式,将需要通知的内容发往对应通道。
config
- 作为配置中心,为judge、alarm等组件提供各种策略的查询接口。
web
- 提供用户交互的api,例如策略的插入、查询,绘图展示等。
agent
- 部署到所有目标节点,周期性的采集基础指标,
- 提供接口接收用户自定义的数据上报。
- 同时在每个目标节点上,提供类似
tail -f
+grep -c
功能的组件,用于采集用户日志。 - 基于
statsd
的组件,作为用户埋点上报的通道。
中心收集
- 提供中心式的上报接口,提供高性能的中心收集器,以供用户上报监控数据。
-EOF-