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-rpcapplication/json or application/jsonrequest之一。

 
1
2
3
4
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如下:

 
1
2
3
4
5
6
7
8
9
10
{
"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数据

 
1
2
3
4
5
{
    "jsonrpc": "2.0",
    "result": "0424bd59b807674191e7d77572075f33",
    "id": 1
}

result便是我们要的token数据,id对应请求的id。

zabbix api检索主机

通过验证之后,我们带着token使用host.get获取主机列表,请求的json如下:

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
    "jsonrpc": "2.0",
    "method": "host.get",
    "params": {
        "output": [
            "hostid",
            "host"
        ],
        "selectInterfaces": [
            "interfaceid",
            "ip"
        ]
    },
    "id": 2,
    "auth": "0424bd59b807674191e7d77572075f33"
}

获取到如下数据

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
    "jsonrpc": "2.0",
    "result": [
        {
            "hostid": "10084",
            "host": "Zabbix server",
            "interfaces": [
                {
                    "interfaceid": "1",
                    "ip": "127.0.0.1"
                }
            ]
        }
    ],
    "id": 2
}

请使用你的程序处理一下即可。

zabbix API就是这么简单,请求、响应然后处理,更多API方法请直接上官方文档,里面有几百个方法等着你。如果你使用zabbix二次开发,千万不要直接操作zabbix数据,太.....,为何不使用zabbix API。

最新文章

  1. CSS3 新怎的伪类选择器
  2. AngularJS时间轴指令
  3. people have been arrested under other offences instead.
  4. EF学习 笔记-----EF映射
  5. ace布置小作业: 制作一个简单的电话号码归属地查询软件:JSON解析和Volly发送get请求
  6. 系分过了,mark一下,就从这里开始吧
  7. MyEclipse------executeBatch()使用方法
  8. linux基础命令学习(六)DHCP服务器配置
  9. android listview去掉分割线
  10. F5 BIG-IP负载均衡器配置实例与Web管理界面体验
  11. (转)Tips for Optimizing C/C++ Code
  12. 创业草堂之二十二:创业公司C类官员的职位说明书
  13. CSS布局基础
  14. SQLite 使用教程2 语法
  15. 群星云集 BOSS上海时装秀—情沪魅影- 在线观看 - 乐视网
  16. BZOJ 1901 Zju 2112 Dynamic Rankings 与更改的树董事长
  17. 数据存储与访问之——初见SQLite数据库
  18. 我的Python之路【第一篇】:Python简介和入门
  19. java ecplise配置
  20. 【BZOJ3157/3516】国王奇遇记(数论)

热门文章

  1. 笔记-JavaWeb学习之旅5
  2. Mybatis中分页存在的坑1
  3. 分布式通信-tcp/ip socket
  4. UVa-11582:Colossal Fibonacci Numbers!(模算术)
  5. 2017 Multi-University Training Contest - Team 1 KazaQ's Socks
  6. Java EE学习笔记(一)
  7. Oracle Database Hang While Loading 3rd party SBT Library And After This Nobody Can Access The Database (windows login 登陆hang )
  8. Docker容器与容器数据
  9. C# (Cookie)基本操作
  10. CSS子元素设置margin-top作用于父容器?