zabbix api | 登录

Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时。很难想象管理数千台服务器而没有自动化是多么的困难。Zabbix API为批量操作、第三方软件集成以及其他作用提供可编程接口。

Zabbix API提供两项主要功能:

  • 远程管理Zabbix配置
  • 远程检索配置和历史数据

使用JSON API 采用JSON-RPC实现。这意味着调用任何函数,都需要发送POST请求,输入输出数据都是以JSON格式。大致工作流如下:

  • 1.在官网查询JSON操作对象
  • 2.登录获取Token
  • 3.创建主机,获取图像,更新监控项等

可以采用脚本或者任何"手动"支持JSON RPC的工具来使用API。而首先需要了解的就是如何验证和如何使用验证ID来获取想要的信息。后面的演示会以Python脚本呈现API的基本使用。

login.py

#!/usr/bin/env python
import urllib2
import json

#定义URL账户密码
url = 'http://ZabbixIP/zabbix/api_jsonrpc.php'
username = '*****'
password = '*****'

#定义通过HTTP方式访问API地址的函数,后面每次请求API的各个方法都会调用这个函数
def requestJson(url,values):        
    data = json.dumps(values)
    req = urllib2.Request(url, data, {'Content-Type': 'application/json-rpc'})
    response = urllib2.urlopen(req, data)
    output = json.loads(response.read())
    try:
        message = output['result']
    except:
        message = output['error']['data']
        print message
        quit()
    return output['result']

#API接口认证的函数,登录成功会返回一个Token
def authenticate(url, username, password):
    values = {'jsonrpc': '2.0',
              'method': 'user.login',
              'params': {
                  'user': username,
                  'password': password
              },
              'id': '0'
              }
    idvalue = requestJson(url,values)
    return idvalue

#调用函数
if __name__ == '__main__':
auth = authenticate(url, username, password)
print auth
  • 执行python脚本
#如果成功输出一个Token
612508116ead2176a9932c4b2818c186

#如果失败提示账号或密码不正确
Login name or password is incorrect.

你可能感兴趣的:(zabbix api | 登录)