使用 SendGrid 設定 zabbix media 進行告警通知小記
Zabbix: 6.0 docker image
目的: Zabbix 產生告警後, 可以透過 email 來接受告警與回覆的訊息
上一篇文章寫了 Zabbix Proxy 與自動註冊的設定
今天來寫如何透過 SendGrid 這個服務來進行告警 email 發送, SendGrid 的文章之前就有寫過, 可以參考
SendGrid with CentOS 8.2 in GCP 發送郵件小記
使用 SendGrid in Azure 發送信件小記
主要是在雲端平台上面, 你不能直接使用上面的機器來發送電子郵件服務, 要使用平台或第三方服務來發送
今天也觀察 SendGrid 服務是否與之前發送有沒有變化, 簡單紀錄一下
Simple sender 設定的部份, 今天不知道是否是使用 gmail 來當 sender 的關係, 該帳號要設定完 MFA 之後才能認証成功, 不像之前只要點選信件中的 link 就可以設定完成. 我是透過 SMS 來進行驗證, 台灣之星可以收到驗證簡訊.
如果希望 Zabbix 監控到問題發生的時候收到告警, 其實有很多種方式, 可以觀察 Administration 內的 Media types, 常見可能會有
Email / Email (HTML)
Slack
Telegram
今天來設定的是 Email 的部份
先簡單描述一下通知架構
Trigger Action ( Configuration -- > Actions -- > Trigger actions )
設定觸發 Trigger 的時候, 會採取的行為
Media Type ( Administration -- > Media types )
設定各種 Media 類型, 這邊是將 SendGrid 設定為 smtp server 來傳送訊息
Users ( Administration -- > Users )
這邊設定的是 Media 的部份, 使用者要接收通知時要透過那一個 Media, 傳送給誰
首先我們來觀察 Trigger Action
登入 Zabbix 管理頁面
Configuration -- > Actions -- > Trigger actions
預設已經有 Report problems to Zabbix administrators
預設狀態是 Disable, 其實只要啟動他就好
點選 Report problems to Zabbix administrators
觀察相關設定
預設只有設定名稱, 沒有設定特定條件, 也就是產生 trigger 就會觸發
點選 Operations
在 Operations 可以觀察到有設定 Send message to user groups: Zabbix administrators via all media Immediately
觀察設定
預設會發送到 Zabbix administrators 使用者群組
Send only to 為 - All - 就是所有的 Media
然後另外一個就是 Recovery operations, 有設定 Notify all involved
相關設定細節
這邊簡單小結一下
如果有 Trigger -- > 使用 All Media 通知 Zabbix administrators 群組
預設為 Disable, 所以只要啟用他就好
啟用的方式
勾選 Report problems to Zabbix administrator -- > 點選 Enable
確認 Status 為 Enabled
首先請參考之前的文章申請 SendGrid API Key 與密碼
SendGrid with CentOS 8.2 in GCP 發送郵件小記
使用 SendGrid in Azure 發送信件小記
接下來處理 Media 的部份
Administration -- > Media types
預設有很多 Media
我的處理方式是 Clone 了 Email ( HTML )
相關設定如下
名稱的部份自訂訂定
Type: Email
SMTP server: smtp.sendgrid.net
SMTP server port: 465
SMTP helo: sendgrid.net
SMTP email: 輸入 SendGrid 設定的自訂 email
Connection security: 我選 SSL/TLS, 所以上面才會用 port 465
Authentication: Username and password
Username: apikey
Password: SendGrid 的 API Key 的密碼
最後來設定要被通知的對象
上面有提到, 預設的 Trigger action 會通知 Zabbix administrators 群組
如果去觀察 Zabbix administrator 群組, 預設就是 Admin 這個使用者
點選 Administration -- > Users
點選 Admin -- > 點選 Media -- > 點選 Add
Type: 選取剛剛建立的 Media Type
Send to: 輸入收件人 email
When active: 這邊我保留預設值, 都收
點選 Update 讓 Media 設定生效
這樣就設定完成, 接下來嘗試產生 Trigger 來觀察收到的信件內容
發生問題時
狀況恢復時
這樣 Zabbix 發生狀況或是狀況解除就可以有通知以及紀錄了
~ enjoy it
Reference
厲害的同事筆記
https://sakananote2.blogspot.com/2020/11/sendgrid-with-centos-82-in-gcp.html
https://sakananote2.blogspot.com/2020/01/sendgrid-in-azure.html
沒有留言:
張貼留言