Prometheus告警處理:與SMTP郵件集成


參考:https://www.prometheus.wang/alert/alert-with-smtp.html

郵箱應該是目前企業最常用的告警通知方式,Alertmanager內置了對SMTP協議的支持,因此對於企業用戶而言,只需要一些基本的配置即可實現通過郵件的通知。

在Alertmanager使用郵箱通知,用戶只需要定義好SMTP相關的配置,並且在receiver中定義接收方的郵件地址即可。在Alertmanager中我們可以直接在配置文件的global中定義全局的SMTP配置:

global:
  [ smtp_from: <tmpl_string> ]
  [ smtp_smarthost: <string> ]
  [ smtp_hello: <string> | default = "localhost" ]
  [ smtp_auth_username: <string> ]
  [ smtp_auth_password: <secret> ]
  [ smtp_auth_identity: <string> ]
  [ smtp_auth_secret: <secret> ]
  [ smtp_require_tls: <bool> | default = true ]

完成全局SMTP之后,我們只需要為receiver配置email_configs用於定義一組接收告警的郵箱地址即可,如下所示:

name: <string>
email_configs:
  [ - <email_config>, ... ]

每個email_config中定義相應的接收人郵箱地址,郵件通知模板等信息即可,當然如果當前接收人需要單獨的SMTP配置,那直接在email_config中覆蓋即可:

[ send_resolved: <boolean> | default = false ]
to: <tmpl_string>
[ html: <tmpl_string> | default = '{{ template "email.default.html" . }}' ]
[ headers: { <string>: <tmpl_string>, ... } ]

如果當前收件人需要接受告警恢復的通知的話,在email_config中定義send_resolved為true即可。

如果所有的郵件配置使用了相同的SMTP配置,則可以直接定義全局的SMTP配置。

這里,以Gmail郵箱為例,我們定義了一個全局的SMTP配置,並且通過route將所有告警信息發送到default-receiver中:

global:
  smtp_smarthost: smtp.gmail.com:587
  smtp_from: <smtp mail from>
  smtp_auth_username: <usernae>
  smtp_auth_identity: <username>
  smtp_auth_password: <password>

route:
  group_by: ['alertname']
  receiver: 'default-receiver'

receivers:
  - name: default-receiver
    email_configs:
      - to: <mail to address>
        send_resolved: true

需要注意的是新的Google賬號安全規則需要使用”應用專有密碼“作為郵箱登錄密碼

這時如果手動拉高主機CPU使用率,使得監控樣本數據滿足告警觸發條件。在SMTP配置正確的情況下,可以接收到如下的告警內容:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM