关于运维监控系统实践中的一些 tips
监控是一场攻坚战,更是持久战,一方面监控系统的功能需要持续优化,另一方面监控策略需要持续完善。因为其持续优化的特点,对于监控任务达到一定量级的企业,需要设置专职监控体系建设团队,持续增加和优化监控系统工具,为监控工具的使用者提供强有力的炮火支援;需要设置专职指标优化团队,作为监控系统的使用者,持续推动监控指标的补充完善,推动监控系统功能建设,推动监控持续优化的工作落地。运维团队需要关注监控,开发、业务、运营团队也需要关注监控,因为强大可视化展示能力的监控系统和告警信息同样可以帮助他们站在另外的视角快速掌握和定位系统的运转情况。
在监控实施过程中不能片面地追求监控指标的覆盖度。提高覆盖度乍看起来是为了全面掌握对象状态,但其实一开始方向就错了。实施监控的目标绝对不是为了达到多少个指标、多少条告警规则,这些数据虽有意义,但绝不应该成为我们追逐的目标。有句话是这样说的:不要因为走了太远,而忘了当初为何出发。监控的核心目标是为业务稳定运行保驾护航。从实施层面来看,监控归纳起来就两条:少漏报和少误报。
漏报主要有两方面原因:一个是没有监控到,这个好解决,升个级把它监控起来就行了(注意不是堆砌监控指标或系统功能);另一个是没有想到,摸着石头过河,谁知道哪块淤泥里埋了钉子呢,只有被扎到的时候才感觉到痛。所以漏报的情况尽管很难避免,但我们总能想办法尽可能降低漏报的发生。此时还要注意,不要为了实现不漏报,而放松对发送告警信息的控制而产生误报。
误报带来的问题也很大:一方面总有人在旁边喊着“狼来了”,会让监控人员产生麻木心理;另一方面误报的信息极易成为干扰数据,造成告警疲劳,甚至有可能使监控人员忽略或者错过真正的故障告警事件,所以监控抛出的告警一定要有价值。
设定合理的监控告警级别是减少监控误报的有效手段。分析清楚哪些告警需要引起关注,哪些告警需要人为干预,哪些告警对应着故障,通过“提醒、预警、告警”等级别进行区分,提高告警即故障的比例。如果所有生产故障的发现都来自监控,那么这一定是最强大的监控系统。要实现这一点不仅要通过技术手段加强保障,提高监控对故障的覆盖率,还要结合企业内部的事件处置流程,优化事件上报机制,保持较为通畅的沟通渠道。
在故障处置过程中,还应努力提高对监控告警事件的处理效率,争取发现即响应,并能在短时间内有效消除故障影响。基于有效的技术保障措施,对大量告警进行针对性优化,提高监控指标的覆盖度,降低误报,同时结合管理手段,重点关注告警事件多次发生但整改效果不明显的系统或团队,通过多方面举措,不断降低告警事件的发生,进而不断提高系统稳定性。
监控系统建设要完善“监”能力,更要增强“控”能力,多数监控系统仍然是“监”多“控”少。从辨证角度来看,作为监控系统的两个功能点,“监”与“控”应当相互搭配、相辅相成。数据要打通,这个打通不仅仅是监控与事件打通,也不仅仅是监控数据与大数据平台打通,还包括监控系统与自动化运维系统打通,对于某些确定性事件,通过规则匹配或者智能学习算法,当告警发生时应能够自动触发干预的策略,也就是故障自愈。
监控系统建设的长远目标之一是预测故障并提前化解生产环境可能发生的故障。通过手工设置预警规则的方式,终归属于被动响应,最理想的情况当然是能够通过历史趋势建立预测模型,利用模型自动判断当前数据是否存在异常。在故障尚未发生时,就能根据数据趋势预判异常征兆,然后第一时间进行干预。预测监控需要建立模型,需要应用系统配合改造,需要借助大数据平台做运维数据分析,对监控采集的运行数据建立一条运行基线,通过对当前监控采集的数据与运行基线做对比,加上当前运行数据与基线比较的策略模型,预测业务运行情况。
版权声明: 本文为 InfoQ 作者【穿过生命散发芬芳】的原创文章。
原文链接:【http://xie.infoq.cn/article/9f1c0d40e0851117f2e22ab0f】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论