【运维思考】运维对象快速扩展,监控如何精准实时的覆盖?
关于监控
当我们谈到运维建设,监控应该是重中之重,如果说配置管理纳管的是运维对象,而监控管理就是运维的眼睛,能够让我们看到运维对象的状态。监控的本质,就是基于数据检测分析对运维对象进行实时健康分析,从而发现问题、分析问题和预防问题。
同样,从运维管理的目标职责,监控建设需要解决的两个核心问题就是:优先用户发现问题和快速定位解决问题。
- 如何优先用户发现问题:需要具备监控的眼睛足够多,针对运维对象从物理设备、系统组件以及应用层对象能够全面覆盖,以及针对不断增长的运维对象能够持续扩展。
- 如何快速定位解决问题:不仅需要针对告警信息的多维关联分析,同时还需具备针对告警事件的闭环处理以及故障自愈管理,支撑运维人员快速解决故障。
平台化监控设计
基于传统建设监控系统的方式,你会发现如果想要覆盖全面的运维对象,所需建设各种场景监控系统就会越来越多,海量无效的告警事件接踵而来,同时围绕同一故障的告警信息都分布在各个监控系统中,这么一来就很难实现快速的告警定位分析。
为了满足不断变化的监控需求,我们得换一种建设思路,通过平台+场景的建设思路,不仅能够满足监控覆盖全面性的要求,还能够持续扩展监控场景以满足变化的需求。
1、监控平台
聚焦监控数据链路能力,从数据采集 → 数据存储 → 数据加工 → 数据监测 → 告警管理 → 故障闭环 → 监控可视化能力。
数据采集:
监控数据采集类型包括指标(Metrics)、日志(Logs)、跟踪(Trace),针对不同的数据采用的数据采集方式也不同,如:Agent代理采集、脚本插件采集、日志采集、协议采集、进程采集、Web拨测、APM探针以及API接口等。
因此在考虑监控平台采集能力设计的时候,需要具备灵活扩展的采集器扩展能力,能够支持适配当下主流监控系统的不同采集器的方法。
数据存储:
针对采集的各类监控数据,以及数据检测分析的场景,支持不同类型的数据存储能力,如关系型数据库MySQL、时序数据库InfluxDB、全文检索数据库ElasticSearch,以及数据采集传输过程中的消息队列及缓存数据库。
数据分析:
针对监控数据分析能力,包括数据清洗、数据丰富、数据计算以及数据检测能力,如数据丰富过程中的CMDB字段丰富,数据计算支持各种运算规则(AVG\SUM\MAX\MIN\COUNT),数据检测支持静态阈值、同比、环比以及机器学习扩展。
告警管理:
提供告警事件的统一管理,包括告警收敛、告警聚合、告警屏蔽以及告警通知等功能:
- 告警收敛:支持防抖收敛、时间收敛、同实例收敛、同指标收敛,以及组合条件收敛、高可用收敛等。
- 告警聚合:支持按对象进行聚合、按应用进行聚合、按时间进行聚合、基于CMDB拓扑关系进行聚合、以及按负责人进行聚合。
- 告警屏蔽:支持变更维护期内告警屏蔽,屏蔽维度支持时间、对象、策略等。
- 告警通知:支持微信、短信、语言、邮件告警通知,以及API或自定义渠道通知。
故障闭环:
实现告警事件的快速跟进和闭环管理,如对接工单系统自动生成事件工单,对接自动化系统实现故障自愈。
监控可视化:
基于监控视图的可视化展示,实时展现监控对象的状态信息以及告警事件的信息。
2、监控场景
基于监控指标数据采集能力,以及监控后台的数据存储和监测分析能力,构建各种运维对象的监控场景,如硬件监控、云监控、系统监控、组件监控、日志监控,以及应用服务和性能监控等:
硬件设备监控:
- 监控对象:网络设备、存储设备、物理机;
- 采集方式:基于通用协议采集SNMP、IPMI。
云监控:
- 监控对象:虚拟化、私有云公有云平台健康性,以云产品的容量、性能监控;
- 采集方式:基于云平台API采集插件。
系统组件监控:
- 监控对象:系统、数据库、中间库、进程等;
- 采集方式:基于Agent、脚本、插件采集,支持持续扩展。
应用服务监控:
- 监控对象:应用网站服务、应用协议服务以及C\S应用可用性;
- 采集方式:基于Selenium、RPA技术,持续扩展脚本、协议以及模拟采集。
日志监控:
- 监控对象:文本日志、系统日志,关键字的监控;
- 采集方式:基于系统层日志采集。
应用性能监控:
- 监控对象:应用性能、调用链分析、接口调用分析等;
- 采集方式:APM探针或应用SDK。
3、智能监控有效延展
运维监控的建设,从系统化 → 平台化 → 智能化的演进过程, 基于平台化的集中监控数据管理,赋予运维大数据平台的数据分析、数据开发、数据建模的能力,实现体系化智能监控场景,如动态阈值、异常检测、根因定位以及容量预测等。
企业统一监控建设阶段
1、第一阶段:统一告警事件管理
基于企业现有运维体系的建设现状,多多少少都已经有了各种监控工具系统的建设,有些是采用传统商用监控系统,如IBM_Tivovi、HP_OVO、SCOM、SolarWinds、听云、Dynatrace等,也有些是采用开源监控系统,如Zabbix、Prometheus、Pinpoint等。
基于已建设监控系统现状,监控系统覆盖已经达到一定程度,但运维人员面临的痛点问题更多是海量告警、无效告警等,因此可以优先考虑告警事件的统一管理,实现告警事件的闭环管理。
告警源接入,支持各种常用监控系统集成,以及标准告警事件API接口:
告警事件,集成企业ITSM系统,自动创建事件工单:
实现整体告警事件的端到端闭环管理:
2、第二阶段:集中监控数据处理
基于企业级监控平台的设计,通过可扩展的统一监控采集插件能力,持续建设监控覆盖面,同时基于平台层的数据链路服务能力,建设集中多维度数据分析服务以及监控数据仓库,从而支撑企业上层运维端、用户端的个性化监控场景。
自有监控平台化数据链路能力:
监控系统数据集成,构建集中数据仓库,实现数据智能分析和建模能力赋能:
基于后台监控数据服务能力,构架个性化场景监控工具系统:
3、第三阶段:一体化运维监控平台
基于企业ITOM运维管理一体化建设中,监控平台与周边运维系统,如配置管理、云资源管理、运维流程管理以及自动化管理,彼此相互依赖及融合。