• 第十七篇:稳定性之告警体系


    告警与可观测性有这密不可分的关系,告警是先于用户发现问题的手段之一,如果没有告警系统,只能通过人工进行定期检查,即便是能够发现问题也不能立马定位到问题出现的原因,而且成本和效率也非常低下。

    告警用途

    告警用途主要有两个方面,首先是通过监控数据,能够做到先于用户发现问题。告警系统通过对监控数据指标量化,监控数据变化,一旦发现问题之后,可以快速报给相应的工程师,快速处理问题,这样能够提升解决问题的效率,从而提升用户体验,而不用等着用户过来反馈问题,其次是能够通过聚合相关指标快速定位问题,结合可观测中的Log、Metrics、Tracing三大支柱,能够让相应的工程师快速定位问题产生的根本原因,而不是像无头苍蝇一样在海量的数据中翻找。

    快速感知

    快速感知业务问题是体现告警的及时性和监控数据全面性,结合黑白监控两部分数据做告警,如通过黑盒监控对服务端口存活监控,看端口是否存活,白盒监控数据指标更多是通过Log、Metrics、Tracing三者相结合来发现问题,如对服务的核心关键指标Metrics监控,能够看出业务流量趋势、错误率、响应时间、P95、P99耗时情况,通过Tracing分析调用链的耗时情况,分析能够看到分段耗时,可以在通过Log去具体定位问题。

    告警策略

    告警策略是告警中比较重要的一环,首先告警策略配置项要能够清楚结合业务场景和业务属性配置适合告警的策略,而不是盲目的;其次是告警质量,告警那么就是必须要处理的,而不是告警了,研发工程师忽略或者觉得没事,告警频率要是适度,选择合适的,而不是过多的告警导致告警泛滥,从而告警无效,或者告警过少发现不了问题,没有及时响应。

    策略配置

    策略配置项,可以参考如下:

    • 告警指标量化:如果告警指标不能量化的话,那么是无法告警的,例如HTTP状态码 200、404,也可以自定义业务Code码
    • 告警类型:硬件类、软件类针对不同的指标配置
    • 告警级别:问题严重度按照P0-P4 (也是5个级别)
    • 告警过滤:可以针对不同区间、包含等一系列规则将不需要的数据进行过滤,防止告警无效,如在配置监控可以将Http 状态码等于302 进行过滤掉。
    • 告警规则:可以是包含、小于等于大于、字符串匹配等
    • 告警频率:可以是基于时间窗口、其它自定义,如一分钟出现多少次,则进行告警或出现就报警等
    • 告警收敛:防止大规模的告警,导致告警泛滥,如告警规则、单位时间内、出现多少次等
    • 告警升级:如告警多久未处理则进行告警升级,上报到负责人等
    • 通知形式:如钉钉群可@相应的主、备研发工程师;邮箱或者微信群等等

    在策略配置时,可以参考如下,来确保告警任务合理性:

    • 该规则是否能检测到目前检测不到的情况?该情况是否非常紧急、是否能通过人工介入解 决、是否严重或立即影响用户?
    • 能否判断这个告警的严重程度?能否忽略这个告警?什么情况下可以忽略?如何避免产生这种告警?
    • 这个告警是否表明用户正在受到影响?
    • 收到告警后是否要执行某个操作?立即执行还是可以等到第二天早上再执行?该操作是否能安全地自动化?该操作的效果是长期的还是短期的?
    • 是否其他人也会收到相关的告警,这样是否必要?

    告警质量

    我们如何保证告警质量,首先是简化告警,针对阈值选择采用保守策略,逐渐视情况配置阈值,其次是告警的时效性,要确保告警的时效不能,问题出现很久了,才报警,这样不符合告警系统的预期,再次是告警收敛,防止告警泛滥,可以适合进行告警合并,将问题在告警表现出来,再次告警类型、级别,针对不同类型的告警类型,告警优先级,进行分类,便于区分重要程度,及告警升级等处理,最后是告警任务可操作,告警任务是可随时配置,如开启、暂停、关闭等,便于随时可控制,防止该告警任务出现不可控行为。

    告警原则

    • 收到紧急告警时应立即采取行动。但每天只能应付几次紧急告警,多了之后就麻木了。
    • 每个紧急告警都应该是能处理的(actionable)。
    • 处理紧急告警需要动脑。如果某个紧急告警只需要一套固定的机械动作,那它就不应该被列为紧急告警。
    • 紧急告警应彼此独立,互无重叠。

    告警处理

    一般情况下,不同类型和级别告警任务处理存在不同的生命周期,这就需要我们能够识别告警任务并对告警任务初步判断,其次分析并定位器告警原因,判断是否将告警升级便于申请更多的资源协助定位排查,再次对告警任务描述处理周期及处理方案,对于非P0的告警,一般情况下当天发生的告警任务需要当天认领完毕并评估其影响范围,P0级别告警任务需要及时处理,防止影响范围扩大,当标识告警认领之后,该告警则不触发告警,但是还能够通过可视化平台看到该告警发生的曲线图,对于处理过的告警任务,可以作为经验库,团队定期复盘,总结和学习,防止同样的告警再次发生,从而提升系统的稳定性。

    告警治理

    告警治理是对系统告警指标梳理、完善、正确性的持续检查,保证线上的告警是可用的,全面的,能够反馈问题的,防止随着时间慢慢腐化,导致告警指标不是最新的或者告警任务不准确,不完善等情况,另外一方面是定期对告警任务合理性,及时清理淘汰的任务,保证其简洁性。

  • 相关阅读:
    Vue学习笔记-全局事件总线
    学习Opencv(蝴蝶书/C++)相关——2.用clang++或g++命令行编译程序
    Opencv项目实战:03 扫描二维码&条形码
    文章列表的显示 以及创建文章 还有文章详情的基本
    车载电子电器架构 —— 国产基础软件生态简介
    backward问题记录
    跨界技术:SOCKS5代理在电商、爬虫与游戏领域的应用
    3分钟学会设计模式 -- 单例模式
    麒麟软件副总裁李震宁:中国开源社区是操作系统破局的土壤
    windows监控linux服务器资源grafana+prometheus+node_exporter
  • 原文地址:https://blog.csdn.net/u013045746/article/details/125465264