Zabbix api的使用方法(python版)

2021-09-04 04:35:59 字數 3204 閱讀 4680

時間2013-12-21

作者 itnihao

郵箱 [email protected]

部落格 如需引用,請註明以上資訊,謝謝合作

zabbix api

具有重要的功能

,為第三方呼叫

zabbix

,批量操作提供可程式設計介面

,,從而輕鬆的用於自己的業務系統,運維系統相整合。

zabbix api

是基於前端

協議實現的,也就是可以通過

請求實現的

api。

api資料傳輸採用

json rpc協議。

由於zabbix

的web

前端是php

語言程式設計的,而

php的效能和相關配置引數有極大關係,因此,如果在大型的環境使用,可以對

php進行負載均衡,例如開啟

php多程序等方式來解決負載問題。除了對伺服器本身進行優化,儘量減少對

api的呼叫,也是整合第三方系統應該遵循的乙個原則。

在最新的

2.2版本中,所有的

api都有對應的官方文件和詳細說明。對應的位址是

,這裡有全部的api

用法。

api基本步驟

a,連線

b.獲取sessionid

c.通過sessionid建立後續的連線

d.提交post資料,格式為json,裡面放對應的方法,獲取需要的資料

zabbix api use  python的例子,在這個例子中,主要是通過api去獲取主機的資訊。

#!/usr/bin/env python

#coding=utf-8

#匯入模組,urllib2是乙個模擬瀏覽器http方法的模組

#zabbix的api 位址,使用者名稱,密碼,這裡修改為自己實際的引數

zabbix_url=""

zabbix_user = "admin"

zabbix_pass = "zabbix"

auth_code = ""

#auth user and password

#使用者認證資訊的部分,最終的目的是得到乙個sessionid

#這裡是生成乙個json格式的資料,使用者名稱和密碼

auth_data = json.dumps(

,"id":0

})# create request object

request = urllib2.request(zabbix_url,auth_data)

for key in zabbix_header:

request.add_header(key,zabbix_header[key])

#auth and get authid

try:

result = urllib2.urlopen(request)

#對於出錯新的處理

'''如果訪問成功或者失敗,這裡的資料會顯示如下

sucess result:

error result:

'''#判斷sessionid是否在返回的資料中

if 'result' in response:

auth_code=response['result']

else:

print response['error']['data']

# request json

#用得到的sessionid去通過驗證,獲取主機的資訊(用http.get方法)

if len(auth_code) == 0:

sys.exit(1)

if len(auth_code) != 0:

get_host_data = json.dumps(

,"auth":auth_code,

"id":1,

})# create request object

request = urllib2.request(zabbix_url,get_host_data)

for key in zabbix_header:

request.add_header(key,zabbix_header[key])

# get host list

try:

result = urllib2.urlopen(request)

except urlerror as e:

if hasattr(e, 'reason'):

print 'we failed to reach a server.'

print 'reason: ', e.reason

elif hasattr(e, 'code'):

print 'the server could not fulfill the request.'

print 'error code: ', e.code

else:

response = json.loads(result.read())

result.close()

#將所有的主機資訊顯示出來

print response

#顯示主機的個數

print "number of hosts: ", len(response['result'])

將以上**儲存執行,結果如下:

],"id":1}

好了,乙個簡單的api使用例子就完成了。

關於更多的api使用,可以閱讀官方文件,學習更多的方法,用api的前提是對zabbix操作熟悉,不然很多api你不知道是幹嘛用的。

pythonpip使用方法 pip使用方法整理

匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...

機械秒錶的使用方法 秒錶的使用方法!

秒錶是一種常用的測時儀器。又可稱 機械停表 由暫停按鈕 發條柄頭 分針等組成。它是利用擺的等時性控制指標轉動而計時的。它是利用擺的等時性控制指標轉動而計時的。在它的正面是乙個大表盤,上方有乙個小表盤 圖1.4 2 秒針沿大表盤轉動,分針沿小表盤轉動。分針和秒針所指的時間和就是所測的時間間隔。在表正上...

使用方法 離型劑使用方法

1 使用離型劑前必須確保模具乾淨,無粉塵 蠟垢 樹脂垢 油汙等殘留物質。可以使用專用的模具潔模劑進行清洗,不可用其他液體清洗,以免清洗不乾淨或損壞模具。另外,如果您的模具是新的,在清洗乾淨後,務必要對模具進行初步處理,用離型劑在模具表面噴 刷塗5 6次,之後方可正常投入生產。2 使用離型劑時,首先要...