今天介紹一下Zabbix的自動發現規則,自定義監控項是自定義發現規則的基礎,需要用戶自定義腳本和鍵值。
為什么我們需要自動發現規則呢?是因為很多監控項監控的內容一樣,但是監控的對象不一樣,自動發現規則可以方便我們添加這些監控項。以系統自帶的發現規則(監控磁盤、網口和服務等)舉例,磁盤、網口、服務數量都是變動的的,每台服務器都有可能不一樣,但是要監控的內容都一樣,比如磁盤的剩余空間,服務的狀態等。
那么我們用到發現規則的地方是 監控機台產生的error_log文件修改時間有沒有改變,如果改變了,說明機台有error。但是機台數量很多,一台一台的添加監控項很枯燥,偷懶一下,用自動發現規則來添加監控項吧~
參考文檔:
4. zabbix discovery / zabbix 自動發現
這4篇博客都是關於自動發現的腳本和案例。
自定義監控項/發現規則需要在Zabbix Agent的config檔定義鍵,以及鍵對應的可執行腳本,然后在web上給被監控Server設置該鍵為監控項/發現規則。
注意Zabbix的自動發現功能獲取的數據類型是JSON格式的,所以我們要輸出JSON格式的字符串,Server才能識別。
博客1監控數據庫表空間的大小;
博客2監控端口;
博客3監控磁盤IO使用率;
博客4監控是否存在丟包行為。
1. Python JSON
3. Json概述以及python對json的相關操作(轉)
上文提到,“Zabbix的自動發現功能獲取的數據類型是JSON格式的”,而且我們使用Python開發腳本,所以上述三篇博客是關於Python的Json庫使用介紹。
參考上述文檔,即可寫出自己的腳本,修改agent的config。然后在服務器上添加自動發現規則。截圖附下。
添加自動發現規則
設置過濾器,過濾器是在腳本中上報的鍵,比如,我們腳本上報的是機台EQPT,注意,格式{#EQPT}
添加監控項並設置觸發器,注意使用上圖設置的過濾器
以上,即實現了自動發現規則的創建添加。
小提示,如果腳本是用Python寫的,跑在windows上,應該在腳本前面加上Python的可執行路徑,比如我的腳本前面加了如下語句
#! C:\Users\lq\AppData\Local\Programs\Python\Python37\python # -*- coding: utf-8 -*-
網上大部分腳本都是跑在Linux上面,所以前面加的是“#!/usr/bin/python”,但是windows上Python的可執行路徑不是這個~