在Grafana中配置“CPU超过85%且持续5分钟”的邮件告警,需要结合数据源(如Prometheus)、告警规则、通知渠道三个核心步骤。以下是详细操作流程:
一、前提条件
- Grafana已添加数据源(如Prometheus,且已采集CPU指标,例如
node_cpu_seconds_total
)。 - 邮件服务器信息(如SMTP服务器地址、端口、账号密码),用于发送邮件(例如企业邮箱
smtp.mycompany.com
)。
二、步骤1:配置邮件通知渠道(Notify Channel)
先设置接收告警的邮件地址,这是告警的“终点”。
登录Grafana → 左侧菜单 → Alerting → Contact points → Add contact point。
配置通知渠道参数:
- Name:自定义名称(如
Email_Notify
)。 - Type:选择 Email。
- Settings:
- Addresses:填写目标邮箱 notify@mycompany.com"">`notify@mycompany.com`(多个邮箱用逗号分隔)。
- SMTP Server:填写邮件服务器地址(如企业邮箱
smtp.mycompany.com
,或公共邮箱如smtp.qq.com
)。 - SMTP Port:SMTP端口(如465 for SSL,587 for TLS)。
- SMTP User:发送邮件的账号(如 alert@mycompany.com"">`alert@mycompany.com`)。
- SMTP Password:账号密码(或授权码,如QQ邮箱需用“授权码”)。
- From address:邮件发送者地址(需与SMTP User一致)。
- From name:邮件显示的发送者名称(如“Grafana监控告警”)。
- 勾选 Use SSL/TLS 或 StartTLS(根据邮件服务器要求,如465端口用SSL)。
- Name:自定义名称(如
点击 Test 测试邮件是否发送成功(会收到一封测试邮件),确认后点击 Save。
三、步骤2:创建仪表盘并添加CPU指标面板
告警基于具体的指标面板,需先创建一个展示CPU使用率的面板。
左侧菜单 → Dashboards → New dashboard → Add visualization。
选择数据源(如Prometheus),并输入CPU使用率的查询语句(以监控主机CPU为例):
100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
- 含义:计算CPU非空闲时间占比(即CPU使用率),
instance
区分不同主机。
- 含义:计算CPU非空闲时间占比(即CPU使用率),
面板配置:
- Panel title:命名为“CPU使用率监控”。
- Unit:选择
Percent (%)
。 - 点击右上角 Apply 保存面板。
四、步骤3:配置告警规则(Alert Rule)
在CPU面板中设置告警条件:“CPU>85%且持续5分钟”。
进入CPU面板 → 右上角 Edit(铅笔图标)→ 切换到 Alert 标签 → Create alert rule。
配置告警规则核心参数:
- Rule name:自定义名称(如“CPU使用率过高告警”)。
- Evaluation group:选择一个评估组(如默认组,用于控制告警检查频率)。
- Condition(关键):
- Query:选择步骤2中创建的CPU使用率查询(默认
A
)。 - Reducer:选择
avg()
(计算所有实例的平均CPU,或选max()
监控单实例峰值)。 - Threshold:设置为
85
(阈值)。 - Operator:选择
is above
(超过阈值)。
- Query:选择步骤2中创建的CPU使用率查询(默认
- For:设置为
5m
(持续5分钟,满足条件后才触发告警)。 - Severity:选择告警级别(如
critical
)。
配置通知方式:
- 下滑到 Notifications → Add notification → 选择步骤1创建的邮件渠道(
Email_Notify
)。 - 可自定义邮件内容模板(如标题、正文),示例:
【Grafana告警】CPU使用率过高 主机: {{ $labels.instance }} 当前值: {{ $values.A }}% 时间: {{ $value.time }}
- 下滑到 Notifications → Add notification → 选择步骤1创建的邮件渠道(
点击 Save 保存告警规则。
五、步骤4:测试与验证
手动触发告警(可选):
- 临时提高服务器CPU负载(如通过
stress
工具:stress -c 4
,模拟4核满负载)。 - 等待5分钟后,查看Grafana的 Alerting → Alert rules,确认规则状态变为
Firing
(触发中)。 - 检查 notify@mycompany.com"">`notify@mycompany.com` 邮箱是否收到告警邮件。
- 临时提高服务器CPU负载(如通过
恢复正常后:
- 停止CPU负载工具,等待Grafana检测到CPU降至85%以下。
- 告警状态会变为
OK
,并发送“恢复通知”邮件(默认配置下)。
六、关键注意事项
- 指标准确性:确保Prometheus的CPU指标查询正确(如
irate
函数用于计算瞬时增长率,避免毛刺)。 - 时间窗口:
For: 5m
需与Prometheus的抓取频率(scrape_interval
)匹配(建议抓取频率≤1m,避免漏检)。 - 邮件服务器:若使用企业邮箱,需确认SMTP端口和授权方式(如是否需要VPN或白名单)。
- 静默与抑制:如需避免重复告警,可在Grafana的 Alerting → Notification policies 中配置“静默期”(如1小时内只发一次)。
通过以上步骤,即可实现“CPU超过85%且持续5分钟”的邮件告警,确保系统异常时及时通知到指定邮箱。
作者:严锋 创建时间:2024-12-05 19:51
最后编辑:严锋 更新时间:2025-07-04 16:19
最后编辑:严锋 更新时间:2025-07-04 16:19