星期六, 6月 04, 2022

使用 SendGrid 設定 zabbix media 進行告警通知小記

使用 SendGrid 設定 zabbix media 進行告警通知小記


Zabbix: 6.0 docker image



目的:  Zabbix 產生告警後, 可以透過 email 來接受告警與回覆的訊息


上一篇文章寫了 Zabbix Proxy 與自動註冊的設定

今天來寫如何透過 SendGrid 這個服務來進行告警 email 發送, SendGrid 的文章之前就有寫過, 可以參考


今天也觀察 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 與密碼


接下來處理 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


沒有留言: