基於curl 的zabbix API調用


1,認證並取得加密字段

curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc":
"2.0","method":"user.login","params":{"user":"admin","password":"zabbix"},"auth":
null,"id":0}' http://192.168.1.222/zabbix/api_jsonrpc.php;

2,獲取指定或所有監控主機的hostids

curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"host.get","params":{"output":["hostid"],"filter": {"host":"192.168.1.223"}},"auth": "b61b7168931be1065cd722ab44e32d2a","id": 0}' http://192.168.1.222/zabbix/api_jsonrpc.php;

zabbix下所有監控主機hostids

curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"host.get","params":{"output":["hostid"]},"auth": "b61b7168931be1065cd722ab44e32d2a","id": 0}' http://192.168.1.222/zabbix/api_jsonrpc.php;

3,獲得指定主機下指定監控項或是所有監控項itemids

curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"item.get","params":{"output":"itemids","hostids":"10119","search":{"key_":"system.cpu.util[,idle]"}},"auth": "91aca8c1fe89c89c2e457ab18a28e79b","id": 0}' http://192.168.1.222/zabbix/api_jsonrpc.php;

 zabbix下指定主機的所有itemids

curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"item.get","params":{"output":["itemids"],"hostids":"10119"},"auth": "91aca8c1fe89c89c2e457ab18a28e79b","id": 0}' http://192.168.1.222/zabbix/api_jsonrpc.php

 4,獲取指定監控項在指定時間段的值

獲取指定itemids的所有歷史數據;

curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"history.get","params":{"history":0,"itemids":["23902"],"output":"extend"},"auth": "91aca8c1fe89c89c2e457ab18a28e79b","id": 0}' http://192.168.1.222/zabbix/api_jsonrpc.php

獲取指定監控項itemids的指定時間段歷史數據;

我們獲取下2014-05-01到2014-05-03期間的數據語句如下

curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"history.get","params":{"history":0,"itemids":["23902"],"time_from":"1398873600","time_till":"1399046400","output":"extend"},"auth": "91aca8c1fe89c89c2e457ab18a28e79b","id": 0}' http://192.168.1.222/zabbix/api_jsonrpc.php

數據比較多,其凌亂,value就是我們要的值了;

此種使用的是秒數需將字符串時間值(2014/05/01 --轉換為自1970/1/1以來的秒數值)換算一下我在這里用shell簡單搞下

5,抓指定時間點的值

curl -i -X POST -H 'Content-Type: application/json' -d '{"jsonrpc": "2.0","method":"history.get","params":{"history":0,"itemids":["23902"],"time_from":"1398873600","time_till":"1399046400","output":"extend","filter":{"clock":"1399026180"}},"auth": "91aca8c1fe89c89c2e457ab18a28e79b","id": 0}' http://192.168.1.222/zabbix/api_jsonrpc.php

看抓取的數據結構完全可以給他導到xml中;

zabbix API Object specifications without the 'draft' mark are stable and can be used for production purposes

curl模擬調用zabbix JSON-RPC格式

curl -i -X POST -H 'Content-Type: application/json' -d ‘api json語句’ zabbix-server--即我的測試機http://192.168.1.222/zabbix/api_jsonrpc.php;

來個模板吧,你copy此處到你的終端吧數據語句放到''中要是沒問題的話即可返回你所要的數據

curl -i -X POST -H 'Content-Type: application/json' -d

'

 

你的json語句拷貝與此處;

'  你的zabbix服務器api  的url

Examples,都是Ruiy根據官網及相關文檔改寫親測成功的,你僅需的就是修改下你的zabbix服務器API的URL即可;

1,獲取監控主機信息

curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"host.get","params":{"output":"extend"},"auth":"91aca8c1fe89c89c2e457ab18a28e79b","id":4 }' http://192.168.1.222/zabbix/api_jsonrpc.php

2,zabbix版本

curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"apiinfo.version","params":{"output":"extend"},"auth":"91aca8c1fe89c89c2e457ab18a28e79b","id":1 }' http://192.168.1.222/zabbix/api_jsonrpc.php

3,獲取auth加密字段

curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"user.authenticate","params":{"user":"admin","password":"zabbix"},"auth":null,"id":0}' http://192.168.1.222/zabbix/api_jsonrpc.php

將"method":"user.authenticate"改成"method":"user.login";

4,獲取web scenario信息

curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"httptest.get","params":{"output":"extend"},"auth":"91aca8c1fe89c89c2e457ab18a28e79b","id":1 }' http://192.168.1.222/zabbix/api_jsonrpc.php;

 

5,獲取zabbix系統中以定義了的macro

curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"usermacro.get","params":{"output":"extend"},"auth":"91aca8c1fe89c89c2e457ab18a28e79b","id":1 }' http://192.168.1.222/zabbix/api_jsonrpc.php

6,告警介質

curl -i -X POST -H 'Content-Type:application/json' -d '{"jsonrpc":"2.0","method":"usermedia.get","params":{"output":"extend"},"auth":"91aca8c1fe89c89c2e457ab18a28e79b","id":1 }' http://192.168.1.222/zabbix/api_jsonrpc.php

 關於json的相關格式語法本人沒接觸也不懂,需要的同仁自己查閱;

相關的測試我也就不一一列舉了,下面我把zabbix-API所以的method reference給各位同仁羅列下,參考自zabbix Official manual

我僅僅羅列method,關於每個method的動作操作(.get,.create,.delete,.update,.exists,...不足或不限制於此處羅列)省

1,  action.get

2,  alter.get

3,  apiinfo.version

4,  application

5,  configuration.import/export

6,  discovered host dhost/service/check/rule.get

7,  event.get

8,  graph.get

9,  graphitem.get

10,  prototype.get

11,  history.get

12,  host/group/interface/prototype/.get

13,  icon.get

14,  image.get

15,  item

16,  .....

好了,來點開心的,古戰將熟記之宋;

岳飛帳下猛將四槍四錘。
四槍:高寵(鏨金虎頭槍)、陸文龍(六沉四尖雙槍)、楊再興、張憲。
四大錘:八棱紫金錘嚴成方(一對金錘)、梅花亮銀錘岳雲(一對銀錘)、六方青銅錘狄雷(一對銅錘)、鑌鐵壓油錘何元慶(一對鐵錘)

宋營中武力最強的兩名武將:高寵(且不管人物是否虛構,),楊繼周--楊再興之子;

宋未朝廷已近凋零(那些奸臣的嘴臉着實令我想咬他們一口),有的大將沒被金人干掉,到被自家給坑了,金人興旺...;

JSON(JavaScript structure textual representation)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM