7×24 告警怎么配才不扰民:P0/P1/P2 分级 + 可复制的云监控配置

简介: 告警配错最常见的结局不是漏报,而是没人在看。 我们见过的中小团队几乎都走同一条路:怕没人盯,把所有能开的报警项全开一遍;通知统一发到一个群;三天后群里没人回消息,一个月后值班表形同虚设。真出事那天才发现——"报过,但没人当真"。 告警的价值不在报得多,而在每一条都有人认领、都能驱动一个动作。下面是我们给客户接告警时的默认做法,改动全在云监控(CMS)和日志服务(SLS)里,不需要买新东西。 一、先分级:不是所有异常都值得打电话 分级解决的是打扰成本问题。我们按两条线切三档:用户是否已感知、有没有自愈或兜底。 | 级别 | 判断标准(满足一条即是) | 响

告警配错最常见的结局不是漏报,而是没人在看。

我们见过的中小团队几乎都走同一条路:怕没人盯,把所有能开的报警项全开一遍;通知统一发到一个群;三天后群里没人回消息,一个月后值班表形同虚设。真出事那天才发现——"报过,但没人当真"。

告警的价值不在报得多,而在每一条都有人认领、都能驱动一个动作。下面是我们给客户接告警时的默认做法,改动全在云监控(CMS)和日志服务(SLS)里,不需要买新东西。

一、先分级:不是所有异常都值得打电话

分级解决的是打扰成本问题。我们按两条线切三档:用户是否已感知、有没有自愈或兜底。

级别 判断标准(满足一条即是) 响应要求 通知对象与通道
P0 业务已中断 核心链路 5xx 持续 > 5%;下单/支付成功率跌破阈值;主库不可用;磁盘 15 分钟内将被写满 电话 + 短信,立即(10 分钟内确认) 值班人(主)+ 技术负责人(备),电话优先
P1 未中断但高危 单可用区实例失联;内存持续 > 90%;慢查询激增;备份任务连续 2 次失败 短信/群机器人,工作时间 15 分钟确认,30 分钟内给结论 值班人 + 业务群
P2 趋势与容量 磁盘 > 80%;CPU 连续 1 小时 > 80%;证书 30 天内到期;日志高频错误关键字 群消息/日报/周报,不打扰人 汇总进巡检报告

三条经验:① 通道由级别决定——只有 P0 配电话(电话通道滥用一次,全团队就会关通知);② 一个账号里 P0 规则超过 6–8 条,说明分级已失效;③ 业务高峰与凌晨用两套阈值,否则白天误报、夜里漏报。

二、可直接复制的配置

以下命令基于阿里云 CLI(aliyun),执行前先 aliyun configure。参数名以你本地 aliyun cms PutResourceMetricRule --help 为准(CLI 与 API 各版本略有差异)。

先建"人"(只建一次):联系人 + 联系人组,组名后面被规则引用。

# 联系人:电话/短信/邮箱(Channels 还可含 DINGTALK 等)
aliyun cms PutContact --ContactName "duty-primary" --Describe "一线值班人" \
  --Channels.Phone "13800000000" --Channels.Sms "13800000000" --Channels.Mail "duty@example.com"

# 联系人组:用 --ContactNames.N 逐个加入
aliyun cms PutContactGroup --ContactGroupName "cg-p0-duty" --Describe "P0:值班人+负责人" \
  --ContactNames.1 "duty-primary" --ContactNames.2 "duty-backup"

P1 示例:ECS CPU 使用率。先拿实例 ID,再建规则。

aliyun ecs DescribeInstances --RegionId cn-hangzhou --PageSize 5 \
  | jq -r '.Instances.Instance[] | "\(.InstanceId)\t\(.InstanceName)"'
aliyun cms PutResourceMetricRule \
  --RuleName "ecs-cpu-high-prod" --Namespace "acs_ecs_dashboard" --MetricName "cpu_total" \
  --Resources '[{"instanceId":"i-bp1xxxxxxxxxxxx"}]' \
  --Period 60 --Statistics "Average" \
  --Escalations.Critical.ComparisonOperator "GreaterThanThreshold" --Escalations.Critical.Threshold "85" \
  --Escalations.Critical.Times 3 --Escalations.Critical.Statistics "Average" \
  --Escalations.Warn.ComparisonOperator "GreaterThanThreshold" --Escalations.Warn.Threshold "75" \
  --Escalations.Warn.Times 3 --Escalations.Warn.Statistics "Average" \
  --ContactGroups "cg-p1-oncall"

--Times 3 表示连续 3 个周期都超阈值才报,这一条就能砍掉大半抖动误报;Critical 走电话、Warn 走群消息,前提是联系人组绑定了对应通道。

磁盘:P0 与 P2 分开配(最容易救命的规则)。阈值定在哪,先上服务器看一眼:

df -h | awk 'NR==1 || /\/$/'
# P0:90% 电话级(写满会直接拖垮服务),Times=1 不留缓冲
aliyun cms PutResourceMetricRule \
  --RuleName "ecs-disk-p0" --Namespace "acs_ecs_dashboard" --MetricName "diskusage_utilization" \
  --Resources '[{"instanceId":"i-bp1xxxxxxxxxxxx","device":"/dev/vda1"}]' \
  --Period 60 --Statistics "Average" \
  --Escalations.Critical.ComparisonOperator "GreaterThanThreshold" --Escalations.Critical.Threshold "90" \
  --Escalations.Critical.Times 1 --ContactGroups "cg-p0-duty"

# P2:80% 只进群/日报,给清理留时间
aliyun cms PutResourceMetricRule \
  --RuleName "ecs-disk-p2" --Namespace "acs_ecs_dashboard" --MetricName "diskusage_utilization" \
  --Resources '[{"instanceId":"i-bp1xxxxxxxxxxxx","device":"/dev/vda1"}]' \
  --Period 300 --Statistics "Average" \
  --Escalations.Warn.ComparisonOperator "GreaterThanThreshold" --Escalations.Warn.Threshold "80" \
  --Escalations.Warn.Times 2 --ContactGroups "cg-p2-daily"

diskusage_utilization 依赖云监控插件采集。规则一直"无数据"时,先看控制台「主机监控」里的插件状态,再怀疑阈值。

SLS 告警:把日志里的异常变成有主告警。真正的 P0 往往藏在日志里(5xx、异常堆栈、支付回调失败)。先在控制台跑通查询 status:>=500 | select count(*) as cnt,再用 CLI 落地(各版本对 sls 子命令支持不同,无该子命令就用控制台等价配置):

aliyun sls CreateAlert --project "your-project" --logstore "nginx-access" \
  --AlertName "p0-5xx-spike" \
  --Configuration '{
    "type":"range",
    "queryList":[{"project":"your-project","logstore":"nginx-access",
      "query":"status:>=500 | select count(*) as cnt","timeSpanType":"Relative","start":"-5m","end":"now"}],
    "condition":"cnt > 50",
    "throttling":"5m",
    "notificationList":[{"type":"DingWebHook",
      "serviceUri":"https://oapi.dingtalk.com/robot/send?access_token=xxxx",
      "content":"5 分钟内 5xx 超过 50 次,请立即查看"}]
  }'

三个关键设计:condition 用绝对次数(cnt > 50)让零星错误自然消失;throttling: "5m" 是防风暴核心(同一告警 5 分钟只发一次);notificationList 先用群机器人,让人判断再升级。字段以官方文档为准。

三、4 个最常见的坑

坑 1 · 告警风暴:一次网络抖动触发 200 条规则,手机响 5 分钟,人直接把通道静音——告警体系从此废掉。做法:全部规则加 --Times 3 与限频;同实例同类指标只留一条规则、用 Warn/Critical 两级;新规则先在测试实例跑 24 小时,单条规则每 24 小时超过 3 次就调阈值。

坑 2 · 无主告警:--ContactGroups 指向没人认领的组,或联系人离职后没交接。做法:每条规则 1 主 1 备;每月巡检扫一遍:

aliyun cms DescribeMetricRuleList --PageSize 100 \
  | jq -r '.AlarmList.Alarm[] | "\(.RuleName)\t\(.ContactGroups)\t\(.MetricName)"'
aliyun cms DescribeContactList --PageSize 100 \
  | jq -r '.Contacts.Contact[] | "\(.Name)\t\(.Channels)"'

坑 3 · 值班疲劳:P1 用电话、P2 半夜也叫人、值班长期一个人扛,结果"能爬起来的只有前两周"。做法:通道按级别隔离;23:00–08:00 只允许 P0 出声;一人连值不超过 7 天,调休有记录。值班是可持续性问题,不是意志力问题。

坑 4 · 只看 CPU 不看业务指标:CPU 30% 也可能已经全站 502(连接池打满、慢 SQL 堵塞、第三方超时)。基础设施指标只回答"机器累不累"。做法:至少补三类——可用性(健康检查成功率、核心 URL 5xx 比例)、业务量(每分钟订单/支付回调跌破正常区间 50%,这条常能提前发现事故)、依赖(数据库连接数、Redis 命中率、第三方超时率)。采集用 SLS 对业务日志做 SQL 统计,或 ARMS 埋点。

四、值班与升级路径(照这张表填人名)

环节 谁 时间承诺 升级到谁
一线值班(P0/P1 第一接手) (值班人 A) 工作时间 15 分钟内确认;P0 电话 10 分钟内响应 30 分钟未定位 → 技术负责人
二线技术负责人 (负责人 B) 1 小时内给处置方向 4 小时未缓解 → 业务负责人
业务负责人(决定降级/公告) (负责人 C) 2 小时内决策 影响超 4 小时 → 对外公告
云厂商支持工单 值班人发起 按工单等级响应(以阿里云实际 SLA 为准) 厂商二线 / TAM
外部运维兜底(我们) 托管服务方 工作时间 15 分钟内确认;重大故障 2 小时内介入 与客户负责人共同决策

两个必须写清的边界(也是最容易产生纠纷的地方):"7×24 告警"不等于"7×24 有人守着"——自动告警是 7×24 的,人工确认按时段(我们默认 09:00–22:00,P0 电话例外),这句建议直接写进服务确认单;响应时间不是恢复时间,约定"多久介入"比承诺"多久修好"更可信。

五、配置检查表(可打印)

检查项 合格标准 怎么验
分级成立 P0 规则 ≤ 8 条 DescribeMetricRuleList 导出后数
防抖 所有规则 Times ≥ 3 逐条看 Escalations.*.Times
限频 日志类告警有 throttling SLS 告警配置里确认
通道隔离 P0 电话、P1 短信/群、P2 日报 联系人组 Channels 对照
有人认领 每规则 1 主 1 备且在岗 DescribeContactList + 值班表比对
业务指标 至少 1 条可用性 + 1 条业务量告警 控制台能看到触发记录
演练 一年内有真实触发记录 触发历史 + 一次人工演练
文档 升级路径表填了真实人名与电话 打印贴值班群

写在最后

配告警不用买任何新东西:云监控自带,SLS 告警按量计费(每月几元到几十元区间,参考区间,以实际账单为准),省下的是值班人的睡眠和事故时的反应时间。

我们接客户的默认顺序是:先做一次只读体检看清现状(哪些规则在响、响了有没有人管、有没有该报的没报),再按上面的分级重配,最后把值班与升级路径写成一张纸。多数团队重配后告警条数下降一半以上,但真正该被看见的事故提前 10–30 分钟被发现——这两件事同时发生才算配对了。

如果你手上有正在响的告警群,或者不确定自己那套是不是在"报给空气":评论区回复『诊断』,我按你的账单和告警配置给一页结论——哪些规则该关、哪些该补、升级路径哪里断了。只读诊断,不动你的配置、不看业务数据。

相关文章
|
1天前
|
监控 API 调度
发货后物流轨迹“查不到”又“不更新”:快递状态回源的轮询、映射与异常监控实践
结论先说:物流轨迹“查不到”“不更新”,九成不是快递的问题,而是回源查询的设计问题——查询频率不对、状态文案没归一化、异常没有监控。本文复盘一次商城发货模块的物流轨迹改造,讲清轮询策略、状态机映射与异常识别。
|
1天前
|
人工智能 安全 IDE
AI使用审计与提示词风控的工程链路拆解
本文从工程落地视角,系统拆解AI工具安全管控链路:终端采集→内容识别→策略判定→拦截管控→私有化替代。聚焦“如何安全用AI”,详解各环节技术要点、关键控制点与典型陷阱,覆盖客户端/网页/IDE插件等多入口采集、HTTPS提示词提取、上下文敏感识别、多点联动管控及私有知识库建设,助力企业实现AI应用的可控、可溯、可管。
AI使用审计与提示词风控的工程链路拆解
|
1天前
|
人工智能 安全 API
阿里云AI智能体产品Qoder CN详细介绍:产品优势、选型与价格,首月买一送一活动
本文系统梳理阿里云Qoder CN(原灵码)全栈AI智能体产品矩阵,覆盖编码IDE、云端Agent托管、7×24数字员工、移动端管控四大核心能力,完整拆解个人订阅、企业订阅全档位定价、功能边界与选型主线。结合9月限时首月Credits翻倍、续费加赠权益,以及Qwen3.8-Flash限时免费调用活动,为个人开发者和不同规模企业提供从入门体验到强合规生产部署的理性选型指南。
阿里云AI智能体产品Qoder CN详细介绍:产品优势、选型与价格,首月买一送一活动
|
1天前
|
存储 人工智能 安全
Fnet 云网安 260929
Fnet 云网安日报 260929
33 0
|
1天前
|
JSON 文字识别 数据库
给智能体递上工具箱
AutoGod是运行于安卓手机的端侧智能体工具平台,将设备能力(点击、识图、启应用等)封装为可调用工具,支持本地执行、断网可用、数据不出端。它以极简注册机制统一管理工具,让大模型真正“动手做事”,推动智能体从“会说”走向“能做”。
26 0
|
1天前
|
运维 监控 数据可视化
阿里云轻量应用服务器控制台(可视化界面)新手直接上手操作,就是这么简单!
阿里云轻量应用服务器控制台是可视化管理后台,支持远程连接、重装系统、重置密码、云监控、防火墙配置等一站式运维操作,PC端与阿里云App均可便捷访问。阿里云轻量应用服务器官网:https://t.aliyun.com/U/dwftch
18 0
|
1天前
QoderWake工作实录 02 丨 商务合作
「QoderWake 工作实录」用于记录不同岗位怎样和数字员工一起工作,分享真实任务、具体做法和使用中的调整。本文是第二篇,记录 QoderWake 团队自己的一次商务合作。
25 0
|
运维 Linux
Linux系统调优详解(五)——磁盘IO状态查看命令
Linux系统调优详解(五)——磁盘IO状态查看命令
868 2
|
6月前
|
人工智能 运维 自然语言处理
喂饭级教程:OpenClaw阿里云/本地部署+K8s MCP 配置自动化管理容器集群,打造AI运维助手!
在AIOps领域,OpenClaw的爆火为运维工作带来了新可能——通过AI代理能力对接Kubernetes MCP(Management Communication Protocol),可实现容器集群的自动化监控、故障排查与资源管理。但OpenClaw对MCP的原生支持并不友好,需通过适配MCP客户端、封装专属技能,才能让AI真正接管运维任务。
3118 130
|
1天前
|
Linux API iOS开发
CC-Switch配置DeepSeek教程-2026最新Codex本地调用设置全流程(附下载安装步骤与配置检查清单)
CC-Switch 是一款跨平台的 AI 模型 API 渠道管理工具,作用是统一转发与代理各家大模型的接口请求,适配 Codex、Claude Code 等 AI 编程工具。它要解决的问题很具体:Codex 客户端默认支持的模型范围有限,想改用 DeepSeek,直接在客户端里改配置行不通,需要中间加一层转发。本文把 CC-Switch 接入 DeepSeek 并让 Codex 生效的完整过程拆成九项待办,每项都给出对应操作与自检标准,Windows、macOS、Linux 用户均可对照执行。
CC-Switch配置DeepSeek教程-2026最新Codex本地调用设置全流程(附下载安装步骤与配置检查清单)

热门文章

最新文章