前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【转】智能告警重塑之路:从被动响应到全链路智能管理

【转】智能告警重塑之路:从被动响应到全链路智能管理

作者头像
保持热爱奔赴山海
发布2025-02-25 13:59:32
发布2025-02-25 13:59:32
13400
代码可运行
举报
文章被收录于专栏:DevOpsDevOps
运行总次数:0
代码可运行

原文地址: https://mp.weixin.qq.com/s/NIT2vd52IIG9EEg1ym_LUQ

作者:一罐八宝粥

背景

     公司现有的告警体系长期以来面临以下痛点,不仅增加了运维和研发的负担,也对系统稳定性和业务连续性构成了严重威胁,直接影响了问题发现和响应的效率:

  • 告警遗漏:部分告警未能及时推送,导致问题持续时间过长,影响用户体验和系统可靠性;
  • 通知滞后:故障发生后未能第一时间发出告警,错失快速响应的窗口期;
  • 配置杂乱:告警配置分散,不同项目、企业微信机器人和关联服务之间缺乏统一协调,难以快速排查问题;
  • 信息不全面:告警内容无法全面呈现问题详情,运维人员常需频繁切换至 CMDB、云平台或 K8s 集群等获取补充信息;
  • 异常未被捕获:K8s 集群中大量 Pod 异常未能有效触发告警,潜在风险难以及时发现。

以上问题已对系统稳定性、业务连续性产生了显著威胁,为彻底解决这些问题,我们对现有监控告警体系进行了全面升级和优化。构建智能化、精准化的全链路告警管理机制。

解决方案

      通过全面优化告警规则和管理流程,减少 Alertmanager 配置冗余,提升告警信息的聚合效率和推送准确性。具体改造措施包括:

1、精准推送:结合企业微信群助手和 Alertmanager,确保告警信息在正确时间推送至正确的群组,提升问题响应效率;

2、统一管理平台:基于 Python + Django 构建告警配置与推送的管理平台,集中管理所有告警规则,提升系统维护性;

3、多系统联动:深度集成发布系统、CMDB、ELK 日志系统、Skywalking 和 K8s 等平台,实现告警信息的多维度补充与闭环管理;

4、数据库告警优化:利用云平台数据库分析工具,精准监控并推送 MySQL 和 Redis 的性能问题和异常告警;

5、AI 智能辅助:通过引入 AI 技术,对日志和告警信息进行智能分析,为问题定位和解决提供优化建议,实现从告警到问题闭环的智能化管理。

    此举优化将显著提升告警系统的实时性、准确性和信息完整性,从而全面增强系统的稳定性与运维效率。

告警渠道建设

    通过企业微信 API 创建高效群聊通道,并基于 Python + Django 构建轻量级工程,提供强大的扩展性与可维护性,为告警体系构建稳固的基础设施。

修改和完善现有的规则

    现存告警规则在问题发现的覆盖性和准确性上存在一定不足,容易导致问题遗漏或误判。我们通过优化规则来提升告警效率,不是简单地减少告警数量,而是精准地发现问题,并通过更科学的规则配置解决这些问题,从而减少不必要的告警噪音。以下是优化方案的具体实践:

示例:云上 MySQL 磁盘空间监控

1. 优化告警规则:MySQL 可用磁盘空间不足

历史规则问题:

  • 规则无法覆盖所有实例,例如未考虑特定集群的磁盘容量差异;
  • 过于简单的条件配置导致误报或漏报问题。

优化后的规则:

  • 新的规则更全面地考量了 MySQL 集群的实际磁盘容量和使用情况。
代码语言:javascript
代码运行次数:0
复制
floor((qce_cdb_diskremaining_max{cloud="Tencent",cluster="Mysql"} / 1024) < 200) and ((qce_cdb_diskremaining_max{cloud="Tencent",cluster="Mysql"} + qce_cdb_realcapacity_max{cloud="Tencent",cluster="Mysql"}) / 1024) >1000

优化结果:

  • 减少了误报,覆盖了所有的数据库实例,将告警重点放在真正存在风险的实例上;
  • 提高了对大容量实例的适配能力。

2、优化告警规则:MySQL 磁盘使用率大于 85%

历史规则问题:

  • 未能充分考虑实际容量对磁盘使用率的影响;
  • 在小容量实例中,可能因高波动性导致不必要的频繁告警。

优化后的规则:

  • 新的规则结合了真实磁盘容量与使用率的综合评估:
代码语言:javascript
代码运行次数:0
复制
floor(((qce_cdb_realcapacity_max{cloud="Tencent",cluster="Mysql"}) / (qce_cdb_diskremaining_max{cloud="Tencent",cluster="Mysql"} + qce_cdb_realcapacity_max{cloud="Tencent",cluster="Mysql"})) * 100 > 85) and ((qce_cdb_diskremaining_max{cloud="Tencent",cluster="Mysql"} + qce_cdb_realcapacity_max{cloud="Tencent",cluster="Mysql"}) / 1024) <= 1000

优化结果:

  • 有效减少了因小容量引发的频繁告警;
  • 强化了对关键指标的关注,确保大容量实例的磁盘空间利用率维持在安全范围内。

3.新增告警规则:磁盘使用率陡增

    为了进一步提升异常变化的感知能力,我们增加了一条对磁盘使用率快速上升的监控规则。

代码语言:javascript
代码运行次数:0
复制
((qce_cdb_volumerate_max{cloud="Tencent",cluster="Mysql"} - avg_over_time(qce_cdb_volumerate_max{cloud="Tencent",cluster="Mysql"}[5m])) / avg_over_time(qce_cdb_volumerate_max{cloud="Tencent",cluster="Mysql"}[5m]) > 0.05 or   (huaweicloud_sys_rds_rds039_disk_util{cloud="HWcloud", engineName="mysql"} - avg_over_time(huaweicloud_sys_rds_rds039_disk_util{cloud="HWcloud", engineName="mysql"}[5m])) / avg_over_time(huaweicloud_sys_rds_rds039_disk_util{cloud="HWcloud", engineName="mysql"}[5m]) > 0.05) * 100

规则特点:

  • 监控磁盘使用率在过去 5 分钟内是否快速增长超过 5%;
  • 针对多个云平台(如腾讯云和华为云)分别设定规则,确保跨平台的兼容性。

优化结果:

  • 能快速捕获异常数据增长,提前预警潜在的磁盘资源不足问题;
  • 有效减少磁盘故障的发生概率。

整体成效

通过上述规则优化:

  • 精准告警:规则覆盖更广,避免了误报和漏报;
  • 高效响应:减少了无效告警,运维团队能够专注于高优先级问题;
  • 持续优化:动态调整规则,确保告警体系与业务需求保持一致。

    优化后的规则不仅显著提升了监控告警的实用性和可靠性,也为运维团队提供了更高效的问题定位工具,从而有效保障系统的稳定运行。

基础信息处理

    Alertmanager 接收到告警后,将其统一发送至自建的告警处理服务。系统会对告警信息的所有字段进行提取和匹配,并依据告警类型调用相应模块进行处理。以下是针对 K8s 的具体优化:

1、关联服务信息

  • 提取 Pod 异常信息,包括环境、集群、服务名称、Pod 名称和归属业务等;
  • 调用发布系统,查询对应服务的最近发布记录(需求名称、发布人员、代码分支、发布状态等),并将信息转为 Markdown 格式便于阅读。

2、日志与事件解析

  • 获取 Pod 最近 300 行日志,过滤 Java 异常关键字段(如 ERROR、Caused by)以排除无关信息;
  • 获取 Pod 相关事件信息,并交由 AI 模型解析,为异常定位和处理提供具体建议;
  • 生成企业微信兼容的 mpnews 格式 HTML 消息,提供直观的信息展示。

3、日志聚合与分析

  • 调用 Elasticsearch API 提取关键日志片段,筛选常见错误模式(如 UnknownHostException、RpcException 等),并进行聚合和统计;
  • 针对服务关联域名,检查 ELK 中是否存在大于 400 的错误响应,对结果进行排序和分析。
  • 生成企业微信兼容的 mpnews 格式 HTML表格消息,提供直观的信息展示。

4、信息整合与推送

  • 将提取的所有信息生成 HTML 消息内容(Markdown 和表格格式),并通过企业微信推送至对应的业务群;
  • 实现告警信息的多维度整合,运维人员可以直接从消息中获取核心信息,无需二次查询 ELK 或其他系统,大幅提升问题排查效率。

pod 告警试例

图片
图片

对应生成的解决方案

图片
图片

解决方案详情 (图略,请参考)

AI 分析结果(图略)

skywalking 告警处理

    公司已引入 SkyWalking 作为分布式链路监控平台,用以监控服务性能、调用链路和异常状况。为充分利用其强大的监控能力,制定以下优化方案,实现从告警生成到智能化分析及推送的全链路闭环管理。

目标

  • 告警规则管理:基于 SkyWalking 的监控信息,制定高效、精确的告警规则;
  • 多维度数据获取:在告警触发后,自动关联和提取服务的运行状态、日志、JVM 性能数据;
  • AI 智能分析:结合 AI 模型对多维度数据进行分析,生成可执行的解决方案;
  • 精准信息推送:以企业微信 mpnews 格式生成图文 HTML 消息,快速传递关键信息。

实现方案

1. 告警规则配置

  • 在 SkyWalking 平台上,根据业务需求定义服务性能、调用异常、响应时间等多种告警规则;
  • 告警规则可根据服务重要性和业务特点分为不同等级(如严重、警告、信息)。

2. 告警信息采集与处理

  • 告警触发后,SkyWalking 将告警信息发送至自建的告警处理服务,进行以下处理: a. 关联服务上下文信息
    • 确定告警涉及的具体服务名称、实例 ID 和调用链路;
    • 调用发布系统获取该服务的最新发布信息,包括:发布人员、代码分支、需求名称等,生成详细的 Markdown 格式描述。

    b. 日志信息提取

  • 通过调用服务日志存储接口,提取最近 50 行相关日志;
  • 自动过滤冗余信息,重点提取含有 ERROR、WARN、Caused by 等关键词的日志片段;
  • 提取日志时支持基于正则表达式的灵活匹配,确保信息精准。

    c.JVM 性能数据获取

  • 调用服务的 JVM 性能监控工具(如 jstat 和 jcmd),收集如下信息:
  • GC(垃圾回收)相关指标:GC 次数、GC 时间、堆内存使用情况;
  • 线程状态与死锁检测;
  • 当前线程 Dump 快照,便于分析性能瓶颈。

3. AI 智能分析

  • 整合日志、调用链路、JVM 数据,交由 AI 模型进行智能分析:
  • 日志分析:提取关键异常堆栈,判断可能的根因;
  • 性能评估:对 JVM 数据进行分析,给出内存泄漏、线程阻塞或其他性能问题的诊断建议;
  • 解决方案生成:基于分析结果,生成可操作性建议,如重启服务、优化代码、调整配置等。

4. HTML 消息生成与推送

    将整合后的分析结果、上下文信息和建议方案生成企业微信兼容的 mpnews 格式 HTML 消息:

  • 告警概要:告警名称、服务名称、异常描述;
  • 上下文信息:最近发布记录、链路调用情况;
  •  分析结果:AI 提供的根因分析与解决建议;
  • JVM 性能数据与日志摘要表格;
  • 通过企业微信 API 将告警消息推送至对应服务团队的群聊中,实现告警的精准分发。

价值与成效

1、提升告警响应效率:通过告警上下文和分析信息的精准推送,团队可快速定位问题,无需繁琐查阅日志或监控面板;

2、减少人力投入:AI 模型的引入显著降低了告警分析的复杂度,提高了问题处理的自动化程度;

3、增强系统稳定性:基于 SkyWalking 的链路监控和闭环告警管理,提前识别和解决潜在问题,降低故障发生率。

    此优化方案构建了告警管理的智能化闭环,从根本上提升了运维和研发团队的协作效率,为业务的高效运行提供了可靠支撑。

skywalking 效果展示

图片
图片

发布信息

图片
图片

域名大于400的告警

图片
图片
图片
图片

价值与展望

    通过本次改造,成功构建了智能化的告警管理体系,不仅显著提升了告警的实时性和准确性,还降低了故障排查的复杂度和响应时间。未来,我们将持续优化告警规则和 AI 模型能力,打造更智能、更高效的运维体系,为业务稳定运行提供强有力的技术保障。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档