zabbix API二次開發使用與介紹


歡需要理由嗎?需要嗎?當然需要,zabbix的那么多功能足以讓你喜歡她,現在還有zabbix API,zabbix真讓我瘋了,太牛逼了,太讓人喜歡了。有zabbix API我們可以做很多,自己開發web界面、開發手機端zabbix、獲取zabbix指定數據、創建zabbix監控項等等。

zabbix API開發庫

zabbix API請求和響應都是json,並且還提供了各種語法的lib庫,http://zabbix.org/wiki/Docs/api/libraries,包含php、c#、PythonPerl、go等等語言,簡單看了下phpzabbixapi,使用非常方便。

請求zabbix API

post json數據到api接口地址,例如你得zabbix地址是http://company.com/zabbix,那么你得接口地址是:http: //company.com/zabbix/api_jsonrpc.php,必須包含content-type頭,值為application/json-rpc, application/json or application/jsonrequest之一。

POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc
 
{"jsonrpc":"2.0","method":"apiinfo.version","id":1,"auth":null,"params":{}}

 

zabbix API登陸

獲取auth token(登陸)

在操作zabbix之前,我們必須先登陸zabbix,得到token,以后的操作帶着這個token即可,要不然肯定沒權限。

請求的json如下:

{
"jsonrpc": "2.0",
"method": "user.login",
"params": {
"user": "Admin",
"password": "zabbix"
},
"id": 1,
"auth": null
}

 

屬性說明
jsonrps - JSON-RPC版本,基本上用2.0就行了;
method - 調用的API方法,方法列表請上官網;
params - 需要傳遞的參數,這邊是user和password;
id - 請求標志;
auth - 用戶token,這邊使用null,因為還沒通過驗證

驗證成功,會返回如下json數據

{
    "jsonrpc": "2.0",
    "result": "0424bd59b807674191e7d77572075f33",
    "id": 1
}

 

result便是我們要德token數據,id對應請求的id。

zabbix api檢索主機

通過驗證之后,我們帶着token使用host.get獲取主機列表,請求的json如下:

{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
            "hostid",
            "host"
        ],
        "selectInterfaces": [
            "interfaceid",
            "ip"
        ]
    },
    "id": 2,
    "auth": "0424bd59b807674191e7d77572075f33"
}

 

獲取到如下數據

{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10084",
            "host": "Zabbix server",
            "interfaces": [
                {
                    "interfaceid": "1",
                    "ip": "127.0.0.1"
                }
            ]
        }
    ],
    "id": 2
}

 

請使用你的程序處理一下即可。

 

zabbix API就是這么簡單,請求、響應然后處理,更多API方法請直接上官方文檔,里面有幾百個方法等着你。如果你使用zabbix二次開發,千萬不要直接操作zabbix數據,

來源:http://www.ttlsa.com/zabbix/


免責聲明!

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



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