往期投稿Top3
田川
CentOS7x64上yum安裝Zabbix 3.0,一次全部搞定,100%成功
楊帆
Zabbix性能數據實時對接kafka
何星
Zabbix通過自動發現監控端口
大家好,本期Z投稿爲大家帶來的文章是
《Zabbix通過API批量自動生成報表》
一起來看吧~
文| 李運臣
簽名:優秀的判斷力來自經驗,但經驗來自於錯誤的判斷。
關鍵字: Zabbix,Shell,Python
多年Linux運維經驗,精通Zabbix監控系統架構,熟悉Shell,Python等語言腳本的編寫等。
微信: lyc100147
Zabbix 優勢在於其豐富的api功能,可以高度定製化、擴展。在cmdb資產管理功能、微信操作控制Zabbix功能、獲取Zabbix數據製作報表等都利用到了Zabbix api。Zabbix API開始扮演着越來越重要的角色,尤其是在集成第三方軟件和自動化日常任務時。很難想象管理數千臺服務器而沒有自動化是多麼的困難。Zabbix API爲批量操作、第三方軟件集成以及其他作用提供可編程接口。
Zabbix API是在1.8版本中開始引進並且已經被廣泛應用。所有的Zabbix移動客戶端都是基於API,甚至原生的WEB前端部分也是建立在它之上。Zabbix API 中間件使得架構更加模塊化也避免直接對數據庫進行操作。它允許你通過JSON RPC協議來創建、更新和獲取Zabbix對象並且做任何你喜歡的操作(當然前提是你擁有認證賬戶)。
Zabbix API提供兩項主要功能:
1. 遠程管理Zabbix配置
2. 遠程檢索配置和歷史數據
API 採用JSON-RPC實現。這意味着調用任何函數,都需要發送POST請求,輸入輸出數據都是以JSON格式。大致工作流如下:
1. 準備JSON對象,它描述了你想要做什麼(創建主機,獲取圖像,更新監控項等)。
2. 採用POST方法向http://example.com/zabbix/api_jsonrpc.php發送此JSON對象,http://example.com/zabbix/是Zabbix前端地址。api_jsonrpc.php是調用API的PHP腳本。可在安裝可視化前端的目錄下找到。
3. 獲取JSON格式響應。
基本請求格式
Zabbix API簡化的JSON請求如下:
{
"jsonrpc": "2.0",
"method": "method.name",
"params": {
"param_1_name": "param_1_value",
"param_2_name": "param_2_value"
},
"id": 1,
"auth": "159121b60d19a9b4b55d49e30cf12b81",
}
現在製作Zabbix報表,都會手動去製作報表或直接在數據庫裏抽取數據,第一種方法過於麻煩,要是一天兩天還可以,日子多了就會很煩,第二種方法直接在數據庫中抽取,很不安全,有可能會人爲泄露數據,現在是信息化時代,數據比錢還要重要,所以兩種方法都不可行,本篇文章主要介紹了通過Zabbix的API端口來獲取數據來自動生成報表。
腳本的編程語言是Python語言,版本Python2.7.5,Python語言的使用在於對模塊和語法的使用,要想實現此項功能,需要安裝模塊xlrd(對數據的讀取),xlwt(數據的寫入),openpyxl(讀寫Excel 2010文檔的Python庫),jdcal,et_xmlfile(是安裝openpyxl模塊的依賴模塊),模塊下載地址https://pypi.org/project/Openpyxl/#files模塊安裝完畢後,就可以直接上代碼了。
首先第一個腳本,是登錄Zabbix的api端口腳本login.py,這裏需要修改的地方是請求的IP(注意:是zabbix-server的IP),登錄Zabbix的用戶和密碼,如果不是腳本內的,也是需要修改的,詳細腳本請看附件。
點擊查看大圖
第二個腳本,是定義函數腳本 function.py(這裏獲取的history.get),如果你想獲取其他值,可參考https://www.zabbix.com/documentation/4.0/manual/api,可根據自己需求修改腳本,詳細腳本請看附件。
點擊查看大圖
第三個腳本,是傳參調用函數腳本zabbix.py,通過在此目錄下創建ip.txt文件(如下圖),讀取文件內的ip來抽取出對應ip的cpu和內存的歷史數據,詳細腳本請看附件。
點擊查看大圖
第四個腳本,是定義取值時間函數腳本time.py,實現的功能是可以讓用戶可以取出不同時間段的值,更利於用戶使用,詳細腳本請看附件。
第五個腳本,是寫入excel表格腳本excel.py,主要定義了生成excel表格,並將數據寫入excel表格的方法和寫入格式,詳細腳本請看附件。
在該目錄下會生成一個test.xls文件,導入到Windows系統內,打開後就能看到生成excel表格了,具體圖如下:
點擊查看大圖
利用excel,即可以圖表方式展現服務器的性能報表。
點擊查看大圖
後期規劃,excel的需要手動出圖,而python有一pandas模塊,可以進行繪圖。目前正在研究中。
歡迎投稿
Z投稿專欄爲大家提供一個展現自己的平臺,作者觀點不等同社區觀點,歡迎讀者在評論區留言討論
文章內容
與運維、Zabbix相關即可
投稿方式
私信Z小祕
(微信/電話 13817720274)
小福利
投稿可以獲得Z積分*5
每月評選,閱讀量TOP3可獲得積分10/5/3分
ps:公衆號回覆【簽到】查看積分小驚喜
點擊查看積分
Zabbix淘寶官方店鋪上線啦!!
【Zabbix官方店鋪】,復·制這段描述¥vzlRbFHyPPz¥後打開手機淘寶或者用瀏覽器打開https://m.tb.cn/h.3wnsHiR?sm=fd8de2查看
↓ ↓ ↓新店開業,迎客活動 ↓ ↓ ↓
關注店鋪+全場購買商品
滿100元減20元
一鍵關注
關注公衆號
加入社區羣
Zabbix社區,因你而更美好
本文分享自微信公衆號 - Zabbix開源社區(china_zabbix)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。