讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux 告警通知策略与优化

星杰姑娘_1559

星杰姑娘_1559

发布时间:2026-02-22 15:49:03

|

467人浏览过

|

来源于php中文网

原创

Alertmanager 一触发就发 5 条微信,根本原因是 group_by 未按业务维度(如 alertname、job、severity)配置,导致同一故障被拆分为多个分组重复通知;需调整 group_wait 和 group_interval,验证路由避免多匹配,并确保微信等渠道去重由 Alertmanager 层控制。

linux 告警通知策略与优化

告警重复发送:为什么 Alertmanager 一触发就发 5 条微信?

根本原因是分组(group_by)配置没对齐业务语义,导致同一故障被拆成多个分组反复通知。比如按 instance 分组,但一个服务跑在多个容器里,每个容器都单独触发告警,又没做聚合,自然刷屏。

实操建议:

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • 优先用业务维度分组,比如 group_by: ['alertname', 'job', 'severity'],而不是默认的 [... 'instance']
  • 检查 group_wait(首次发前等待)和 group_interval(后续合并窗口),建议设为 30s 和 5m,避免过早或过久积压
  • 确认接收器(receiver)是否在 route 多层嵌套中被意外匹配多次——用 amtool config routes test 验证路由路径
  • 微信/钉钉等渠道本身不支持去重,必须靠 Alertmanager 层控制,别指望下游过滤

silence 失效:明明加了静默,告警还在推

静默规则没生效,90% 是因为匹配标签不全或时间范围错位。Alertmanager 要求所有标签完全匹配才静默,少一个 job="api" 或多一个 env="staging" 都会跳过。

实操建议:

  • 从告警详情页点「Silence this alert」生成模板,再手动补全缺失标签,别凭记忆手写
  • 注意时区:静默时间填的是 UTC,不是本地时间;amtool 默认也用 UTC,用 --utc=false 可切本地,但 Web UI 始终 UTC
  • 检查静默状态是否为 active(不是 pending 或 expired),过期时间显示在列表第二列,容易被忽略
  • 静默不继承子路由——如果告警进了子 route,而你在父级建的静默,大概率不生效

自定义告警内容:微信消息里怎么带 runbook_url 和实例负载?

Alertmanager 本身不执行查询,所有动态字段都得靠 Prometheus 的 annotations 提前注入,或者用 {{ template }} 在通知模板里拼接。直接在模板里调用函数查数据是不可能的。

实操建议:

  • 在 alert_rules.yml 里把需要的上下文塞进 annotations,比如:
    annotations:<br>  summary: "High CPU on {{ $labels.instance }}"<br>  runbook_url: "https://wiki.example.com/runbooks/{{ $labels.job }}-cpu-high"<br>  value: "{{ $value }}"
  • 微信模板用 Go text/template 语法,引用注解用 {{ .Annotations.runbook_url }},别漏掉 .Annotations. 前缀
  • 想带实时指标值(如当前 CPU 百分比),必须在 alert rule 的 expr 里用 label_replace 或 vector 注入,不能靠模板运行时计算
  • 避免在模板里写复杂逻辑——微信消息长度限制严,超长会被截断,且无错误提示

高可用部署下,告警丢了:两个 alertmanager 实例为啥不共享静默和抑制?

Alertmanager 集群模式(--cluster.peer)只同步告警状态和静默,不自动同步配置变更。如果你改了配置但只 reload 了一个实例,或者两个实例启动参数不一致(比如 cluster listen 地址没对齐),就会出现“这个实例收得到、那个收不到”或“静默只在一个上生效”的现象。

实操建议:

  • 集群节点必须用相同配置启动,尤其 --cluster.advertise-address 和 --cluster.listen-address 要能互相访问,用 netstat -tuln | grep :9094 确认端口监听正常
  • reload 配置必须对所有实例同时操作,推荐用 systemd 服务文件 + systemctl reload alertmanager@{1..2},别手工 curl 单个
  • 抑制规则(inhibit_rules)依赖精确的标签匹配,集群间同步没问题,但若两个实例加载了不同版本配置,抑制可能一边生效一边不生效
  • 用 curl http://am1:9093/metrics | grep alertmanager_cluster_ 查 alertmanager_cluster_peers_connected 是否为预期数量,这是最直接的连通性证据
配置热加载、静默生命周期、集群脑裂——这些地方没有报错日志,但问题爆发时往往已经丢了几轮告警。盯住 amtool 输出和 /metrics 里的指标,比看 UI 更靠谱。

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

3663

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

835

2023.10.30

alert怎么实现换行
alert怎么实现换行

alert通过使用br标签来实现换行。更多关于alert相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1357

2023.11.07

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3543

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

894

2023.11.14

HTTP 503错误解决方法
HTTP 503错误解决方法

HTTP 503错误表示服务器暂时无法处理请求。想了解更多http错误代码的相关内容,可以阅读本专题下面的文章。

6546

2024.03.12

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

5450

2024.08.16

Go 语言 HTTP 编程与中间件开发教程合集
Go 语言 HTTP 编程与中间件开发教程合集

全面讲解 Go 语言 HTTP 编程的核心知识,涵盖 net/http 标准库的 Server/Handler/HandlerFunc 体系、DefaultServeMux 路由注册与自定义路由器、Request / ResponseWriter 请求响应处理、中间件(Middleware)链式设计模式与常见中间件(日志/CORS/认证/限流)开发、http.Client 的超时配置与连接池管理、Cookie / Session 处理、

521

2026.05.08

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn