配置alertmanager的時候,都是根據網上的教程來配置的。
因為我是用QQ郵箱來發送告警的,所以alertmanager.yml的郵箱配置如下:
global:
resolve_timeout: 5m
smtp_smarthost: 'smtp.qq.com:465'
smtp_from: 'xxxxxx@qq.com'
smtp_auth_username: 'xxxxxx@qq.com'
smtp_auth_password: 'xxxxxxxxxx'
smtp_require_tls: false
注意事項:
1.需要先登錄QQ郵箱,開通smtp功能,並獲取授權碼。smtp_auth_password填寫的信息,就是授權碼,而非QQ郵箱的登錄密碼!
2.smtp.qq.com:465 ,端口使用465。其他資料說用587端口也可以。(如果是雲服務器,25端口通常是被服務商封閉的,所有也不能使用25端口)
報錯信息:
msg="Notify for alerts failed" num_alerts=1 err="*notify.loginAuth failed: 530 Must issue a STARTTLS command first."
3.smtp_require_tls: false 必須加上,因為smtp_require_tls默認為true。
alertmanager主要處理流程(引用:https://www.kancloud.cn/huyipow/prometheus/527563,對alertmanager做了很全面到位的解釋)
-
接收到Alert,根據labels判斷屬於哪些Route(可存在多個Route,一個Route有多個Group,一個Group有多個Alert)
-
將Alert分配到Group中,沒有則新建Group
-
新的Group等待group_wait指定的時間(等待時可能收到同一Group的Alert),根據resolve_timeout判斷Alert是否解決,然后發送通知
-
已有的Group等待group_interval指定的時間,判斷Alert是否解決,當上次發送通知到現在的間隔大於repeat_interval或者Group有更新時會發送通知