Zabbix API初步入门

    Zabbix API是实现Zabbix自动化监控的主要手段之一,你可以使用Zabbix Agent的自动注册功能,也可以使用网络自动发现功能,但是这些功能各有各的缺点。如果编写脚本对你来说没有压力,我跟建议Zabbix的所有自动化功能全部使用API的方式来完成。   [attach]101[/attach]     1.登录API接口  
## 登录认证
curl -s -X POST -H 'Content-Type: application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin",
        "password": "zabbix"
    },
    "id": 1
}' http://192.168.56.11/zabbix/api_jsonrpc.php | python -m json.tool
 

执行完毕,会访问一个Auth Token,需要保留下来,后面的操作中需要使用

  2.使用Python调用Zabbix API  
#!/usr/bin/env python
# -*- coding:utf-8 -*-

import requests
import json

url = 'http://zabbix.unixhot.com/zabbix/api_jsonrpc.php'
post_data = {
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "api-user",
        "password": "zabbix"
    },
    "id": 1
}
post_header = {'Content-Type: application/json'}

ret = requests.post(url, data=json.dumps(post_data), headers=post_header)
print ret.text
  3.显示所有主机:注意替换auth token。  
## 显示所有主机
curl -s -X POST -H 'Content-Type: application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": ["host"]
    },
    "auth": "3593bc5a0a3b62a5b7f8c3a9c3b9f59f",
    "id": 1
}' http://192.168.56.11/zabbix/api_jsonrpc.php | python -mjson.tool
  查询所有主机组:
## 显示所有主机组
curl -s -X POST -H 'Content-Type: application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "hostgroup.get",
    "params": {
        "output": "extend"
    },
    "auth": "3593bc5a0a3b62a5b7f8c3a9c3b9f59f",
    "id": 1
}' http://192.168.56.11/zabbix/api_jsonrpc.php | python -mjson.tool
  查询所有模板:
## 显示所有模版
curl -s -X POST -H 'Content-Type: application/json' -d '
{
    "jsonrpc": "2.0",
    "method": "template.get",
    "params": {
        "output": "extend"
    },
    "auth": "3593bc5a0a3b62a5b7f8c3a9c3b9f59f",
    "id": 1
}' http://192.168.56.11/zabbix/api_jsonrpc.php | python -mjson.tool

0 个评论

要回复文章请先登录注册