主题
Alertmanager 操作文档
对应配置见 部署文档。组件:命名空间
cattle-monitoring-system。 飞书 webhook 保存在交付目录.secrets.env(勿泄露)。 更新:2026-08-01
1. 日常巡检
bash
export KUBECONFIG=~/.kube/config-122.31
# Alertmanager 集群(2 副本 Running,跨节点)
kubectl -n cattle-monitoring-system get pods -l app.kubernetes.io/name=alertmanager -o wide
# 适配器
kubectl -n cattle-monitoring-system get pods -l app=alertmanager-feishu-adapter
# 当前活动告警(在适配器 Pod 内查询)
AP=$(kubectl -n cattle-monitoring-system get pod -l app=alertmanager-feishu-adapter -o name | head -1)
kubectl -n cattle-monitoring-system exec ${AP#pod/} -- python -c '
import json,urllib.request
for g in json.loads(urllib.request.urlopen("http://alertmanager-operated:9093/api/v2/alerts/groups").read()):
for a in g["alerts"]:
print(a["status"]["state"], a["labels"].get("severity"), a["labels"].get("alertname"), a["labels"].get("namespace",""))'2. 静默(Silence)操作
计划内维护前对相关告警做静默,避免打扰值班群:
bash
# 方式一(推荐):Rancher UI → 监控 → Alertmanager → Silences,图形化创建
# 方式二:API(在适配器 Pod 内执行)
kubectl -n cattle-monitoring-system exec ${AP#pod/} -- python -c '
import json,urllib.request,datetime
now=datetime.datetime.now(datetime.timezone.utc)
s={"matchers":[{"name":"namespace","value":"mysql","isRegex":False}],
"startsAt":now.strftime("%Y-%m-%dT%H:%M:%SZ"),
"endsAt":(now+datetime.timedelta(hours=2)).strftime("%Y-%m-%dT%H:%M:%SZ"),
"createdBy":"ops","comment":"mysql 维护窗口静默 2h"}
r=urllib.request.urlopen(urllib.request.Request("http://alertmanager-operated:9093/api/v2/silences",
data=json.dumps(s).encode(),headers={"Content-Type":"application/json"}))
print(r.read().decode())'静默到期自动解除;提前解除在 UI 或 DELETE /api/v2/silence/<id>。
3. 配置调整
bash
# 改配置:编辑 alertmanager-values.yaml 后重跑(幂等)
./deploy.sh
# 调整重复频率示例:critical 改 1h
# alertmanager-values.yaml → repeat_interval: 1h → ./deploy.sh
# 更换飞书群机器人
kubectl -n cattle-monitoring-system edit secret alertmanager-feishu # 更新 webhook-url(base64)
kubectl -n cattle-monitoring-system rollout restart deploy/alertmanager-feishu-adapter4. 告警消息规范(当前格式)
🔥【告警触发】/ ✅【告警恢复】
━━━━━━━━━━━━━━━
🔴 KubePodCrashLooping(critical)触发于 08-01 14:30
命名空间: mysql 实例: 10.22.250.147
摘要: Pod mysql/mysql-primary-0 反复重启
详情: 容器 mysql 在过去 15 分钟重启 5 次…图标:🔴 critical / 🟠 warning / 🔵 info。收到后处理流程: 看摘要定位 → 按标签(namespace/pod/node)查现场 → 修复 → 等 ✅ 恢复消息闭环。
5. 与 K8sGPT 的分工
| Alertmanager + 飞书 | K8sGPT + 飞书 | |
|---|---|---|
| 触发 | PromQL 规则(阈值/状态) | 集群异常扫描器 |
| 时效 | 秒级 | 10 分钟级 |
| 内容 | 什么指标异常 | 为什么异常、怎么修(AI 诊断) |
| 消息头 | 🔥/✅ 告警卡片 + 🤖 AI 值班初判 | 🔍 |
两者互补不重复;同一故障可能先后收到两类消息,属正常。
5.1 AI 值班初判(critical 告警自动附初步分析)
firing + critical 告警后约 10s,群里会在告警卡片后收到一张「🤖 AI 值班初判」卡片: 自动收集的上下文(Pod 状态/近期事件)+ AI 给出的可能原因/排查命令/建议处置。
bash
# 查看 AI 初判日志(含冷却跳过、失败原因)
kubectl -n cattle-monitoring-system logs deploy/alertmanager-feishu-adapter | grep 'AI'
# 调整触发级别/冷却时间(改 Deployment env 后重启)
kubectl -n cattle-monitoring-system set env deploy/alertmanager-feishu-adapter \
AI_ANALYZE_SEV=critical,warning AI_ANALYZE_COOLDOWN=3600
# 更换/停用 AI 初判:删除密钥即自动降级为仅告警卡片
kubectl -n cattle-monitoring-system delete secret alertmanager-ai
kubectl -n cattle-monitoring-system rollout restart deploy/alertmanager-feishu-adapter6. 常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 飞书收不到告警 | 适配器异常 / webhook 失效 / 告警被静默或抑制 | 查适配器日志 kubectl -n cattle-monitoring-system logs deploy/alertmanager-feishu-adapter(含收包摘要与飞书响应);./deploy.sh check 发测试告警分段定位;查 Silences |
| 飞书消息内容异常/为空 | 真实报文字段与预期不符 | 看适配器日志 recv 的实际报文;适配器对缺 alerts/缺 annotations 有原始报文兜底,消息不会为空 |
| 同一告警反复刷屏 | repeat_interval 太短 / 分组键过细 | 调大 repeat_interval;检查 group_by |
| 告警只恢复不触发(或反之) | send_resolved 配置 | 确认 receiver 下 send_resolved: true |
| 改 values 不生效 | secret 的 lookup 保护 | 确认 values 含 alertmanager.secret.recreateIfExists: true |
| 只有一个 Alertmanager | 副本被改回 1 | kubectl get alertmanager -n cattle-monitoring-system -o jsonpath='{.items[0].spec.replicas}',重跑 deploy.sh |
| 飞书报 19056 | 机器人设了关键词校验,消息不含关键词 | 飞书机器人设置加关键词 "告警",或调整适配器消息头 |
| 有告警卡片但无 AI 初判 | 告警非 critical / 2h 冷却中 / AI Key 未配或失效 | 看适配器日志 AI 初判跳过/失败 行;检查 Secret alertmanager-ai 与 DashScope 额度 |
| AI 初判无上下文 | 告警标签缺 namespace/pod(如节点级告警) | 正常兜底(会尝试 node 条件);检查适配器 SA 权限 kubectl auth can-i list pods --as=system:serviceaccount:cattle-monitoring-system:alertmanager-feishu-adapter |
| Rancher 升级后配置丢失 | Rancher 重渲染 monitoring values | 重跑 ./deploy.sh(幂等) |
7. 恢复默认(回滚)
bash
# 通知改回 null(保留 2 副本)
kubectl -n cattle-monitoring-system edit alertmanager rancher-monitoring-alertmanager # 不推荐手改
# 标准回滚:helm 回滚到上一 revision
helm history rancher-monitoring -n cattle-monitoring-system
helm rollback rancher-monitoring <REVISION> -n cattle-monitoring-system
# 删除适配器
kubectl delete -f feishu-adapter.yaml