zabbix 監控項自定義時間間隔(調度)
背景:
在對接一個云平臺的監控數據時,發現有監控項獲取不到數據,但通過手動執行腳本發現數據是可正常獲取的。最初開始以為是執行用戶的問題,切換agent執行用戶以后繼續執行,返回結果仍是正常的。
通過多次執行分析,若在每分鐘的前20秒內執行,基本都是失敗,只有在每分鐘的20秒到59秒之間執行腳本才會正常返回數據。為什么會這樣無法細究,這個是云平臺內部的問題。在我的角度是盡可能避開監控項在這個時間段內(每分鐘前20秒)執行。
解決:
嘗試指定監控項固定執行時間,避開每分鐘前20秒執行。
現在拿一臺主機中的某個監控項為例
1. 現在這臺主機的ping檢查,設置的就是一分鐘的采集間隔。

可以看到這個監控項的采集時間是每分鐘的第10秒。通常像這種具體的時間點分配是系統默認調度行為,系統會自動將相同間隔的監控項的執行時間錯開,目的是避免所有監控項在同一時刻并發執行,提升系統性能和穩定性。

1. 如需指定具體執行時間點可以在監控項中的自定義時間間隔中配置“調度”模式。

l 更新間隔改為0,意思是不再用這個間隔來定義取值時間。若沿用之前的1m,那每隔一分鐘之后仍會取得一個值。
l 自定義時間間隔選擇“調度”,間隔框內寫s30,意思是每分鐘的第30秒執行取值。
另外需要注意的是調度的方式只能用于被動模式類型的監控項(即是由proxy或者server發起請求的類型,如“簡單檢查”、“Zabbix客戶端”這種類型),而不能用于主動式類型的監控項(即是由監控對象主動推送數據到proxy或者server的類型,如“Zabbix客戶端(主動式)”)。
3. 經過取值刷新以后,再查看監控項的取值具體時間,可以看到現在的取值變為固定的每分鐘第30秒。

關于調度的取值配置說明:
調度的取值過濾器前綴的有效 <from> 和 <to> 值分別為:
|
前綴 |
描述 |
<from> |
<to> |
|
md |
Month days |
1-31 |
1-31 |
|
wd |
Week days |
1-7 |
1-7 |
|
h |
Hours |
0-23 |
0-23 |
|
m |
Minutes |
0-59 |
0-59 |
|
s |
Seconds |
0-59 |
0-59 |
l md為月,有效值為1-31
l wd為周,有效值為1-7
l h為時,有效值為0-23
l m為分,有效值是0-59
l s為秒,有效值是0-59
實際上是調度的執行間隔寫法很靈活,以下是調度方式的取值間隔寫法參考:
|
m0-59 |
每分鐘執行一次 |
|
h9-17/2 |
從9:00開始每2小時執行一次(9:00,11:00 ...) |
|
m0,30 or m/30 |
在每小時的hh:00 和 hh:30執行 |
|
m0,5,10,15,20,25,30,35,40,45,50,55 or m/5 |
每5分鐘執行 |
|
wd1-5h9 |
每周一至周五9:00 |
|
wd1-5h9-18 |
每個星期一到星期五在9:00,10:00,...,18:00 |
|
h9,10,11 or h9-11 |
每天上午9:00,10:00和11:00 |
|
md1h9m30 |
每個月的第一天在9:30 |
|
md1wd1h9m30 |
如果是星期一,每個月的第一天在9:30執行 |
|
h9m/30 |
在9:00,9:30執行 |
|
h9m0-59/30 |
在9:00,9:30執行 |
|
h9,10m/30 |
在9:00,9:30,10:00,10:30執行 |
|
h9-10m30 |
在9:30,10:30執行 |
|
h9m10-40/30 |
在9:10,9:40執行 |
|
h9,10m10-40/30 |
在9:10,9:40,10:10,10:40執行 |
|
h9-10m10-40/30 |
在9:10,9:40,10:10,10:40執行 |
|
h9m10-40 |
在9:10,9:11,9:12,... 9:40執行 |
|
h9m10-40/1 |
在9:10,9:11,9:12,... 9:40執行 |
|
h9-12,15 |
在9:00,10:00,11:00,12:00,15:00執行 |
|
h9-12,15m0 |
在9:00,10:00,11:00,12:00,15:00執行 |
|
h9-12s30 |
在9:00:30,9:01:30,9:02:30 ... 12:58:30,12:59:30執行 |
|
h9m/30;h10 (API-指定語法) |
在9:00,9:30,10:00執行 |

浙公網安備 33010602011771號