以下是我的目標:我希望能夠向zabbix報告各種指標,以便我們可以在網頁上顯示圖形。如何向zabbix公開數據
這些度量包括:每肥皂服務提交從一個或多個數據庫
- 延遲。
我需要編寫和/或公開什麼東西?或者是zabbix服務器會去某個地方從暴露的服務中獲取它?
我已經被告知,返回單個值的腳本可以工作,但我想知道這是否是正確的方法。
以下是我的目標:我希望能夠向zabbix報告各種指標,以便我們可以在網頁上顯示圖形。如何向zabbix公開數據
這些度量包括:每肥皂服務提交從一個或多個數據庫
我需要編寫和/或公開什麼東西?或者是zabbix服務器會去某個地方從暴露的服務中獲取它?
我已經被告知,返回單個值的腳本可以工作,但我想知道這是否是正確的方法。
我可以提供2組的建議得到指標進入的zabbix:
使用zabbix_sender
二進制從腳本直接反饋數據到服務器的zabbix。這允許您的腳本調用它自己的時間間隔並設置所有需要的參數。你真的只需要知道zabbix_sender
二進制文件的位置。
在Zabbix服務器界面中,您將創建類型爲Zabbix trapper
的項目。這是接收從zabbix_sender
發送的值的項目類型。你構成了關鍵的名字,它必須匹配。
您可以執行此操作的第二種方法是在zabbix_agentd.conf
文件中指定密鑰名稱和腳本/二進制文件。每次Zabbix服務器請求此項目時,腳本都會被調用並記錄腳本中的數據。
這允許您在Zabbix項目配置中設置間隔,而不是強制您按自己的間隔運行腳本。但是,您需要將這些額外的信息添加到每個主機的zabbix_agentd.conf
文件中。
可能還有其他方法可以直接從Python執行此操作(zabbix_sender
可能是Python的綁定?)。但這些是我以前使用過的兩種方式,它們都很好。這不是Python特有的。但是你應該可以在你的Python腳本中使用zabbix_sender
。希望這些信息有幫助!
更新:我還記得Zabbix正在開發/使用API(JSON/RPC樣式)。但目前文檔網站已關閉,我不確定API是否用於提交項目數據。這裏是維基上的API:http://www.zabbix.com/wiki/doc/api
而對於Python API中的一個項目:https://github.com/gescheit/scripts/tree/master/zabbix/
人們似乎對API的文檔很少,因爲它是新的一樣的的zabbix版本1.8
其實有一個用於zabbix_sender的python綁定。 http://pypi.python.org/pypi/zbxsend
Python沒有zabbix_sender綁定。 我有一大堆的Python腳本將數據發送到zabbix_sender, 當你處理指標量大它的方式更有效地填充在一個循環中的zabbix_sender兼容的文件中: 打印>> metrics_file_descriptor,「% s%s%s%s'%(hostname,item_key1,zbx_timestamp,metric1) 並且調用它以便它發送到您的Zabbix服務器 command =「%s -z%s -p%s --with-timestamps - -input-file%s>/dev/null 2>/dev/null「%(zbx_sender,zbx_server_ip,zbx_port,metrics_file) args = shlex.split(command) – 2011-06-15 11:14:49
另外, zabbix API python wrapper對於批量項目和觸發器的創建和更新,考慮大多數更頻繁的功能工作,但他們中的一些,但仍然需要額外的編碼才能工作。 – 2011-06-15 11:17:14
還有https://github.com/lukecyca/pyzabbix,看起來好一點,比https://github.com/gescheit/scripts/tree/master/zabbix/ – Blin 2012-05-04 12:35:52