监控系统典型架构

监控系统典型架构如下:
监控系统典型架构_第1张图片
从左往右看:

采集器是负责采集监控数据的,采集到数据之后传输给服务端,通常是直接写入时序库。
对时序库的数据进行分析和可视化。
告警引擎产生告警事件之后交给告警发送模块做不同媒介的通知。
可视化比较简单,是图上的数据展示,通过各种图表来合理地渲染各类监控数据,便于用户查看比较、日常巡检。

采集器

有两种典型的部署方式:

跟随监控对象部署
远程探针式

时序库

时序库:专门处理时序数据的数据库。在监控系统的架构中,最核心的就是时序库。时序库比较有代表性的有:OpenTSDB、InfluxDB、TDEngine、M3DB、VictoriaMetrics、TimescaleDB 等。

告警引擎

告警引擎的核心职责就是处理告警规则,生成告警事件。
通常有两种架构:

数据触发式:服务端接收到监控数据之后,除了存储到时序库,还会转发一份数据给告警引擎,告警引擎每收到一条监控数据,就要判断是否关联了告警规则,做告警判断。
周期轮询式:一个规则一个协程,按照用户配置的执行频率,周期性查询判断即可。

生成事件之后,通常是交给一个单独的模块来做告警发送,这个模块负责事件聚合、收敛,根据不同的条件发送给不同的接收者和不同的通知媒介。

数据展示

数据展示:用于渲染展示监控数据。
监控数据可视化有两种需求:

即时查询:临时起意,比如线上有个问题,需要追查监控数据,还原现场排查问题,这就需要有个方便我们查看的指标浏览功能,快速找到想要的指标。
监控大盘:通常用于日常巡检和问题排查,由资深工程师创建,放置了一些特别值得重点关注的指标,一定程度上可以引发我们思考,具有很强的知识沉淀效果。

此文章为9月Day 6学习笔记,内容来源于极客时间《运维监控系统实战笔记》。

你可能感兴趣的:(运维监控系统实战笔记,架构)