ZABBIX API的介绍和使用

电脑杂谈  发布时间:2020-04-27 05:24:32  来源:网络整理

mybatis api中文文档_zabbix api中文文档_zabbix api中文文档

Zabbix API开始扮演越来越重要的角色,尤其是在集成第三方软件并自动执行日常任务时. 很难想象没有自动化管理数千台服务器会有多么困难. Zabbix API为批处理操作,第三方软件集成和其他功能提供了可编程接口.

Zabbix API在1.8版中引入,并已被广泛使用. 所有Zabbix移动客户端均基于API,甚至本机WEB前端部分也基于该API构建. Zabbix API中间件使体系结构更具模块化,并避免了对的直接操作. 它允许您通过JSON RPC协议创建,更新和获取Zabbix对象,并可以进行任何您想做的事[当然,如果您有身份验证帐户,则可以. ]

Zabbix API提供了两个主要功能:

使用JSON

API是使用JSON-RPC实现的. 这意味着要调用任何函数,您都需要发送POST请求,并且输入和输出数据均为JSON格式. 常规工作流程如下:

API可以与脚本或支持JSON RPC的任何“手动”工具一起使用. 首先要了解的是如何验证以及如何使用验证ID获得所需的信息. 以下演示将使用Python脚本和基于Curl的示例来展示API的基本用法.

基本请求格式

Zabbix API简化的JSON请求如下:

{
    "jsonrpc": "2.0",
    "method": "method.name",
    "params": {
        "param_1_name": "param_1_value",
        "param_2_name": "param_2_value"
    },
    ,
    "auth": "159121b60d19a9b4b55d49e30cf12b81",
}

逐行查看以下内容:

Zabbix API基于JSON-RPC 2.0规范. 具体实现可以选择您喜欢的任何编程语言或手动方法. 这里我们以基于Python和Curl的方法为例. Python 2.7已经支持JSON,因此不需要其他模块组件. 当然,可以使用Perl,Ruby和PHP之类的语言. 使用前,请确保安装相应的JSON模块.

zabbix api中文文档_zabbix api中文文档_mybatis api中文文档

任何Zabbix API客户端都需要先进行自我验证,然后才能真正起作用. 这是User.login方法. 此方法接受用户名和密码作为参数,并返回认证ID,并且安全的哈希字符串用于连续的API调用(此认证ID在使用User.logout之前有效). 特定的Python代码auth.py如下:

#!/usr/bin/env python2.7
#coding=utf-8
import json
import urllib2
# based url and required header
url = "http://monitor.example.com/api_jsonrpc.php"
header = {"Content-Type": "application/json"}
# auth user and password
data = json.dumps(
{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
    "user": "Admin",
    "password": "zabbix"
},
"id": 0
})
# create request object
request = urllib2.Request(url,data)
for key in header:
    request.add_header(key,header[key])
# auth and get authid
try:
    result = urllib2.urlopen(request)
except URLError as e:
    print "Auth Failed, Please Check Your Name And Password:",e.code
else:
    response = json.loads(result.read())
    result.close()
    print "Auth Successful. The Auth ID Is:",response['result']

在这里,您需要确保URL中的用户名和密码匹配. 运行结果如下:

您可以看到auth.py成功连接并通过了身份验证. 现在有了验证ID,它可以在新的API调用中重复使用.

让我们看看如何基于CURL实施验证:

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://monitor.example.com/api_jsonrpc.php

这里是显示如何获取监视主机列表[主机列表]的示例. 该脚本需要使用在auth.py中获得的身份验证ID,并执行host.get方法来获取主机列表. 查看特定的代码get_host.py:

#!/usr/bin/env python2.7
#coding=utf-8
import json
import urllib2
# based url and required header
url = "http://monitor.example.com/api_jsonrpc.php"
header = {"Content-Type": "application/json"}
# request json
data = json.dumps(
{
    "jsonrpc":"2.0",
    "method":"host.get",
    "params":{
        "output":["hostid","name"],
        "filter":{"host":""}
    },
    "auth":"2ee379e516f386ca4c24da7fd9fd5bb4", # the auth id is what auth script returns, remeber it is string
    "id":1,
})
# create request object
request = urllib2.Request(url,data)
for key in header:
    request.add_header(key,header[key])
# get host list
try:
    result = urllib2.urlopen(request)
except URLError as e:
    if hasattr(e, 'reason'):
        print 'We failed to reach a server.'
        print 'Reason: ', e.reason
    elif hasattr(e, 'code'):
        print 'The server could not fulfill the request.'
        print 'Error code: ', e.code
else:
    response = json.loads(result.read())
    result.close()
    print "Number Of Hosts: ", len(response['result'])
    for host in response['result']:
        print "Host ID:",host['hostid'],"Host Name:",host['name']

部分结果列表:

zabbix api中文文档_zabbix api中文文档_mybatis api中文文档

比较基于CURL的访问方法: curl -i -X POST -H'内容类型: application / json'-d'{“ jsonrpc”: “ 2.0”,“ method”: “ host.get “,” params“: {”输出“: [” hostid“,”名称“],”过滤器“: {” host“: ”“}},” auth“: ” ecc543db662930c122b5fbedee60cc63“,” id“: 1}' http: / /monitor.example.com/api_jsonrpc.php

结果太多,未显示. 相比之下,脚本的使用可以具有更大的灵活性zabbix api中文文档,并且基于CURL的方法对于结果的处理不是很方便. 原理都是一样的.

除此信息外,API调用还可用于创建操作zabbix api中文文档,更新操作和删除操作. 也很容易使我们想起操作. 当然,比较使用API​​调用获得结果的这些方法,我们一定不能忘记这种最直接,最危险的方式. 如讨论开始时提到的,Zabbix现在带有一个前端实现,该实现部分使用操作,部分基于API调用. 现在,该API并不十分成熟,根据业务需求使用哪种方法.

以下流程图表示Zabbix API工作的典型工作流程. 身份验证(方法user.login)是获取身份验证ID的必需步骤. 此ID允许我们调用API允许的任何方法进行操作. 在前面的示例中没有提到user.logout方法,这就是为什么ID可以重复使用一次的原因. 使用user.logout方法将使验证ID无效,并且后续操作将不再能够使用此ID.

参考:

原始地址:

使用Zabbix Api

API使用zabbix官方网站文档: ,Zabbix API基于JSON-RPC 2.0规范,具体...

zabbix api中文文档_mybatis api中文文档_zabbix api中文文档

Web Api简介

ASP.NET Web API简介ASP.NET MVC 4包含ASP.NET Web API,这是一个用于创建Http服务的新框架,该服务可以连接到各种客户端,包括浏览器,移动设备等. ASP ...

ZooKeeper系列4: ZooKeeper API的介绍和编程

问题指南: 1. ZooKeeper API包含几个软件包? 2.如何使用ZooKeeper API创建Zookeeper应用程序? 1)ZooKeeper API简介ZooKeeper AP ...

WebSocket API简介

WebSocket是html5中新添加的通信协议. 当前流行的浏览器支持此协议,例如Chrome,Safari,Firefox,Opera,IE等,最早支持此协议的应该是来自chr的chrome. ..

python调用zabbix api接口来添加,删除,修改和检查主机

python程序调用zabbix系统的api接口来添加,删除和修改zabbix_server主机. 使用相关功能时,需要在脚本中打开相关功能. 函数描述: zabbixtools()调用zabbi ...

构建一个简单的C+ &加;服务组件,第1部分和冒号;服务组件架构C+ &加; API简介

构建一个简单的C ++服务组件,第1部分: 服务组件体系结构简介C ++ API熟悉将用于C ++的Apache Tuscany SCA的API. 您将通过本文了解API的主要组...

基于curl的Zabbix API调用

zabbix api中文文档_zabbix api中文文档_mybatis api中文文档

1,验证并获取加密的字段curl -i -X POST -H'Content-Type: application / json'-d'{“ jsonrpc”: “ 2.0&q ...

Raphael Js矢量库API简介:

Raphael Js矢量库API简介: Raphael Javascript是Javascript矢量库. 2010年6月15日,著名的JavaScript库ExtJS和触摸屏代码库项目jQT ...

Zabbix和lpar;一) &冒号;简介和服务器安装

一个. 什么是Zabbix? Zabbix由AlexeiVladishev最初开发,目前正在维护Zabbix SIA. ZABBIX是企业级开源分布式监视解决方案. Zabbix用于监视网络和服务器...

RDI框架和期限;净额─&期间; NET快速信息系统开发框架─工作流组件介绍

RDIFramework.NET─.NET快速信息系统开发框架工作流组件简介RDIFramework.NET是基于.NET快速信息系统开发的. 集成框架,为用户和开发人员提供最佳的.Net Framework部门...

视图

将视图添加到某个视图的虾面中[self.superview insertSubview: smallCircle belowSubview: self]; //返回两个数字的根返回sqrt ...

输入密码(河豚和lowbar;秘密)设置

简单地说,phpmyadmin是一个mysql管理工具. 安装此工具后,您可以通过Web表单直接管理mysql数据,而无需执行系统命令来管理它. 管理器,在下面...

深入优化MySQL内核


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-190380-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...