通过 Email 接收告警

本章将通过一个简单的实验介绍如何通过 Email 接受告警。

相关信息说明:

  • Prometheus 版本:prometheus-1.7.1.darwin-amd64
  • Alertmanager 版本:alertmanager-0.8.0.darwin-amd64
  • 发送告警邮件的邮箱:qq email

假设该实验运行在本地机器上, Prometheus 默认端口为 9090,Alertmanager 默认端口为 9093。

修改 AlertManager 配置文件

其中一些关键配置如下:

  1. global:
  2. smtp_smarthost: 'smtp.qq.com:587'
  3. smtp_from: 'xxx@qq.com'
  4. smtp_auth_username: 'xxx@qq.com'
  5. smtp_auth_password: 'your_email_password'
  6. route
  7. # If an alert has successfully been sent, wait 'repeat_interval' to resend them.
  8. repeat_interval: 10s
  9. # A default receiver
  10. receiver: team-X-mails
  11. receivers:
  12. - name: 'team-X-mails'
  13. email_configs:
  14. - to: 'team-X+alerts@example.org'

在prometheus下添加 alert.rules 文件

文件中写入以下简单规则作为示例。

  1. ALERT memory_high
  2. IF prometheus_local_storage_memory_series >= 0
  3. FOR 15s
  4. ANNOTATIONS {
  5. summary = "Prometheus using more memory than it should {{ $labels.instance }}",
  6. description = "{{ $labels.instance }} has lots of memory man (current value: {{ $value }}s)",
  7. }

修改 prometheus.yml 文件

添加以下规则:

  1. rule_files:
  2. - "alert.rules"

启动AlertManager服务

  1. ./Alertmanager -config.file=simple.yml

启动prometheus服务

  1. ./prometheus -Alertmanager.url=http://localhost:9093

根据以上步骤设置,此时 “team-X+alerts@example.org” 应该就可以收到 “xxx@qq.com” 发送的告警邮件了。