Zabbix開始會用一些內部的進階設定,通常在外面會用手機或筆電接訊息,有時候不一定很常會開Email,如果用通訊軟體來收訊息是更快、更方便,過往公司有用過Telegram和Slack,現在公司有用Microsoft Teams,所以我就試著用看看把Zabbix告警訊串到Teams上做通報。流程簡單來說,Teams需要用的一個API觸發工具叫Webhook,同時Zabbix也要設定一個Teams用的Media Type,設定好讓雙方做溝通,這樣就能滿足在Teams上看到即時的告警的需求。
一.確認帳號有建立新頻道權限
Teams必須使用頻道來接收來自Zabbix的訊息,且要指定一名成員為擁有者,透過該帳戶的身分來發訊息。
![]() |
到admin center的團隊內建立一個Zabbix Teams |
![]() |
指派團隊擁有者 |
![]() |
加入團隊的成員 |
![]() |
設定信箱和隱私權 |
![]() |
確認資訊後送出 |
![]() |
成功建立新的Teams |
![]() |
確認後台Zabbix用的頻道建立完畢 |
二.建立Zabbix用的新頻道
開始重頭戲,要在Teams APP上面加入前面建立好的頻道,然後在套件webhook上產生API出來給Zabbix使用。![]() |
Teams APP新建一個屬於Zabbiz告警專用的頻道 |
![]() |
頻道名稱做好設定,然後是設定為私人 |
![]() |
可以選是有權限設定頻道的任何團隊,這邊我是指定前面新建的團隊,當然有其它的話也可以選,看自己的規劃 |
![]() |
都沒有問題之後就能建立新的頻道了 |
![]() |
可以家成員加入這個頻道,之後他們都能收到訊息 |
三.新增WorkFlows,做Zabbix告警通知的trigger
接下來是導入webhook進來,它會提供一支URL給Zabbix做串接用。
![]() |
首先選左下角的三個點,然後搜尋WorkFlows |
![]() |
裝好之後,右邊選擇「編輯」 |
![]() |
流程名稱定義成Zabbix Webhook |
![]() |
選擇前面建立好的團隊和頻道 |
![]() |
最後就會得到這支URL,將它複製起來,然後按完成 |
![]() |
完成後會看這些webhook基本資訊 |
![]() |
往下展開來,可以看到要選擇user或者是Flow bot來負責發訊息 |
![]() |
好了之後就儲存 |
四.Zabbix設定MS Teams傳送告警
前面webhook設好以後,最後就是到Zabbix上,透過URL來傳接Teams。同時也要準備好官網上發布給Teams所用的yaml。
![]() |
因為我的Zabbix版本是7,必須要手動修改yaml的version,否則匯入就會出錯 |
![]() |
首先在Administration>Macros這邊設定一個巨集參數,就指定為首頁,晚點測試時會用得到 |
![]() |
選擇Alerts>Media Type>Import,然後匯入Teams用的xml |
![]() |
匯入以後,選項teams endpoint貼上前面所複製好的webhook URL,以作為串連 |
![]() |
Message template裡面可以自己編輯Problems update或者是recovery時,要出現何種訊息內容,就是自己客製化告警通知的一些內容 |
![]() |
再來選擇哪個user帳號要啟用這個告警功能,從users>users>Admin進去 |
![]() |
選Admin以後,再來按下Media Type>Add,選擇MS Teams Workflow,啟用它 |
![]() |
再來是Alerts>Action>Trigger actions,來編輯觸發告警的條件 |
![]() |
選擇Teams Alerts |
![]() |
選擇Operations>Add |
![]() |
Send to users加入Admin;Send to media type加入MS Teams Workflow |
![]() |
回到Media Type裡面,MS Teams Workflow右邊有test,如上圖,輸入一些參數按下發送測試 |
![]() |
最後就到Teams頻道上查看告警訊息是否有正常進入 |
如果不想看太多一般性的訊息,可以自己手動調整訊息的重要性,只選嚴重性高一點的告警在發送即可 |
以前都是用人家架好的Zabbix做被動學習,很多設定的意思都是一知半解,難得從進階方式著手這些串聯通知的設定,也算是有點長新的知識了,後續我還要對每種服務的template進行研究或調教,看看到最後能否有更多進展。
沒有留言:
張貼留言