告警设计与故障发现
High Contrast
Dark Mode
Light Mode
Sepia
Forest
2 min read430 words

告警设计与故障发现

好的告警会把你从事故里拉出来;坏的告警会让你对事故彻底麻木。告警太少会错过故障,告警太多会让人忽略所有通知。

告警分层

graph TD A[指标数据] --> B{阈值判断} B -->|低严重度| C[记录日志 / 工单] B -->|中严重度| D[Slack / 邮件通知] B -->|高严重度| E[立即呼叫 / PagerDuty]

告警设计原则

原则 说明 反例
可行动 收到后知道做什么 "CPU 使用率" 不如 "CPU > 90% 持续 5 分钟"
可分级 不同严重度不同处理 所有告警都发邮件 → 告警风暴
少而准 避免噪音淹没真问题 每分钟一条"低磁盘预警"
有收敛 相同故障合并通知 5 台机器同时报警 → 发 5 条独立消息

三条必备基础告警(示例配置)

# 可用于 Alertmanager / 自定义脚本的告警定义格式
alerts:
- name: healthcheck_down
condition: "http_check_status{target='myapp'} == 0 for 2m"
severity: critical
action: "立即检查应用进程和 Nginx 状态"
- name: high_cpu
condition: "avg(cpu_usage) > 90 for 5m"
severity: warning
action: "查看占用进程 top,检查是否有异常任务"
- name: disk_near_full
condition: "disk_usage{mount='/'} > 85"
severity: warning
action: "清理日志,检查是否有大文件写入"

常见误区

本节执行清单

下一章Shell 自动化与运维脚本——把重复动作变成机器能做的事。