一、實際業務場景
業務問題
最近在監控 ActiveMQ
的阻塞消息時,發現每天0點都有預警,然后進行排查,0 點確實是有阻塞消息,這個阻塞消息的存在,是因為 0點系統進行結算,會產生大量的消息,並且有一些結算任務,導致消息會有阻塞。但是這個阻塞是正常的,我不想進行預警,那么有以下方法可以禁止這個預警:
-
設置監控時間
就是在某個時間段不去獲取該監控項的數據,這個方法好像是可以,但是隱隱感覺有些不妥。
-
設置觸發器時間(推薦方法)
就是監控的數據我獲取,但是在某個時間段該觸發器無效。這個好像還不錯。
-
設置用戶報警媒介啟用時間
就是設置該用戶在某個時間段可以收到報警,某個時間段不接受報警。這個設置得背鍋哦。
解決辦法
經過上面的對比,我覺得還是 設置觸發器時間比較適合該需求。所以我們設置觸發器監控時間。設置為 0 點0分到 0點 10分,該監控項不預警。
使用到觸發器設置范圍,也覺得該對 zabbix 設置時間范圍配置做個總的記錄。
二、Zabbix觸發器和監控項與用戶預警設置時間范圍配置流程
一、觸發器設置時間范圍
觸發器設置時間范圍需要將觸發器條件和 觸發器時間范圍相結合,比如我們有一個需求,就是我們需要在 時間點 1點到 23點,檢查agent 是否活躍,當在這個時間段如果 agent 不活躍的話就進行預警。
首先我們需要創建一個觸發器,選擇監控項為 agent.ping
,創建當 agent.ping=0
時候的表達式。
然后我們選擇表達式構建構造器。選擇上面一樣的監控項,功能選擇 time() 當前時間
設置時間范圍,
注意時間范圍的格式是 :HHMMSS,也就是6位數字。
這樣就ok了。
二、監控項設置時間范圍
在創建監控項里面的,自定義時間間隔,可以設置監控范圍。
示例: 我想在星期一到星期五,全天監控,間隔是 30s, 周六到 周日,全天監控,間隔是 60s.
間隔 | 周期 |
---|---|
30 | 1-5,00:00-24:00 |
60 | 6-7,00:00-24:00 |
示例2:我想周一到周日全天監控,間隔30s,但是在每天的 0點到 0點10不監控。
間隔 | 周期 |
---|---|
30 | 1-7,00:10-24:00 |
0 | 6-7,00:00-00:10 |
如果靈活間隔設置為“0”,則在靈活間隔期間不輪詢監控項,並在周期結束后根據默認更新間隔恢復輪詢。
詳細監控項自定義間隔見 官方文檔
三、用戶報警設置啟用時間
該設置在用戶基本資料的報警媒介里面。