2025年7月11日 星期五

【IT Notes】Zabbix設定從Teams收到告警訊息

 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進行研究或調教,看看到最後能否有更多進展。


沒有留言:

張貼留言

【當兵回憶】八里連

 在我心目中新兵日記是天花板等級的軍教片,並不是說沒有比它更好的作品,只是因為它的在拍攝的背景和時間,也正是我在服兵役的同時,老婆很多次好奇問我,為什麼我總是放在YouTube的新兵日記直播,我都說我只放在有個聲音在,我沒有真正在看,但這行為仔細想想也好多年了吧!台詞聽到我都會背...