在Grafana中配置“CPU超过85%且持续5分钟”的邮件告警,需要结合数据源(如Prometheus)告警规则通知渠道三个核心步骤。以下是详细操作流程:

一、前提条件

  1. Grafana已添加数据源(如Prometheus,且已采集CPU指标,例如node_cpu_seconds_total)。
  2. 邮件服务器信息(如SMTP服务器地址、端口、账号密码),用于发送邮件(例如企业邮箱smtp.mycompany.com)。

二、步骤1:配置邮件通知渠道(Notify Channel)

先设置接收告警的邮件地址,这是告警的“终点”。

  1. 登录Grafana → 左侧菜单 → AlertingContact pointsAdd contact point

  2. 配置通知渠道参数:

    • 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/TLSStartTLS(根据邮件服务器要求,如465端口用SSL)。
  3. 点击 Test 测试邮件是否发送成功(会收到一封测试邮件),确认后点击 Save

三、步骤2:创建仪表盘并添加CPU指标面板

告警基于具体的指标面板,需先创建一个展示CPU使用率的面板。

  1. 左侧菜单 → DashboardsNew dashboardAdd visualization

  2. 选择数据源(如Prometheus),并输入CPU使用率的查询语句(以监控主机CPU为例):

    100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
    • 含义:计算CPU非空闲时间占比(即CPU使用率),instance 区分不同主机。
  3. 面板配置:

    • Panel title:命名为“CPU使用率监控”。
    • Unit:选择 Percent (%)
    • 点击右上角 Apply 保存面板。

四、步骤3:配置告警规则(Alert Rule)

在CPU面板中设置告警条件:“CPU>85%且持续5分钟”。

  1. 进入CPU面板 → 右上角 Edit(铅笔图标)→ 切换到 Alert 标签 → Create alert rule

  2. 配置告警规则核心参数:

    • Rule name:自定义名称(如“CPU使用率过高告警”)。
    • Evaluation group:选择一个评估组(如默认组,用于控制告警检查频率)。
    • Condition(关键):
      • Query:选择步骤2中创建的CPU使用率查询(默认A)。
      • Reducer:选择 avg()(计算所有实例的平均CPU,或选max()监控单实例峰值)。
      • Threshold:设置为 85(阈值)。
      • Operator:选择 is above(超过阈值)。
    • For:设置为 5m(持续5分钟,满足条件后才触发告警)。
    • Severity:选择告警级别(如critical)。
  3. 配置通知方式:

    • 下滑到 NotificationsAdd notification → 选择步骤1创建的邮件渠道(Email_Notify)。
    • 可自定义邮件内容模板(如标题、正文),示例:
      【Grafana告警】CPU使用率过高
      主机: {{ $labels.instance }}
      当前值: {{ $values.A }}%
      时间: {{ $value.time }}
  4. 点击 Save 保存告警规则。

五、步骤4:测试与验证

  1. 手动触发告警(可选):

    • 临时提高服务器CPU负载(如通过stress工具:stress -c 4,模拟4核满负载)。
    • 等待5分钟后,查看Grafana的 AlertingAlert rules,确认规则状态变为Firing(触发中)。
    • 检查 notify@mycompany.com"">`notify@mycompany.com` 邮箱是否收到告警邮件。
  2. 恢复正常后:

    • 停止CPU负载工具,等待Grafana检测到CPU降至85%以下。
    • 告警状态会变为OK,并发送“恢复通知”邮件(默认配置下)。

六、关键注意事项

  1. 指标准确性:确保Prometheus的CPU指标查询正确(如irate函数用于计算瞬时增长率,避免毛刺)。
  2. 时间窗口For: 5m 需与Prometheus的抓取频率(scrape_interval)匹配(建议抓取频率≤1m,避免漏检)。
  3. 邮件服务器:若使用企业邮箱,需确认SMTP端口和授权方式(如是否需要VPN或白名单)。
  4. 静默与抑制:如需避免重复告警,可在Grafana的 AlertingNotification policies 中配置“静默期”(如1小时内只发一次)。

通过以上步骤,即可实现“CPU超过85%且持续5分钟”的邮件告警,确保系统异常时及时通知到指定邮箱。

作者:严锋  创建时间:2024-12-05 19:51
最后编辑:严锋  更新时间:2025-07-04 16:19