监控系统设计
监控与告警体系
在系统运维一章中我们就已经讨论了独立
监控系统流程
无论是开源的监控系统还是自研的监控系统,监控的整个流程大同小异,一般都包括以下模块:
-
数据采集:采集的方式有很多种,包括日志埋点进行采集(通过
Logstash 、Filebeat 等进行上报和解析) ,JMX 标准接口输出监控指标,被监控对象提供REST API 进行数据采集(如Hadoop 、ES) ,系统命令行,统一的SDK 进行侵入式的埋点和上报等。 -
数据传输:将采集的数据以
TCP 、UDP 或者HTTP 协议的形式上报给监控系统,有主动Push 模式,也有被动Pull 模式。 -
数据存储:有使用
MySQL 、Oracle 等RDBMS 存储的,也有使用时序数据库RRDTool 、OpentTSDB、InfluxDB 存储的,还有使用HBase 存储的。 -
数据展示:数据指标的图形化展示。
-
监控告警:灵活的告警设置,以及支持邮件、短信、
IM 等多种通知通道。