zabbix的API |
api体系: cobbler的api,zabbix的api,saltstack的api
不仅有api还有吩咐的例子,只有会简单的python就可以了
在cmdb中录入ip,角色,dns自动解析,cobbler自动装机。zabbix自动添加这个角色的模板。
复杂的cmdb至少有五六十列,根据不同的维度进行不同的划分。
api的共性就是先是获取tocken然后带着tocken工作。
API最大的好处有两点:一是连接世界,二是避免重复。
我们身处的时代到处是分享、转载、评论,这里面的核心都是API的使用,可以说API无处不在。同时对于产品设计而言,API既可以丰富产品功能,又能使开发更加方便,避免重复造轮子
更多api调用例子参考zabbix手册:https://www.zabbix.com/documentation/4.0/zh/manual/api/reference/host/get 1、 获取主机的信息 curl -s -X POST -H 'Content-Type: application/json' -d ' { "jsonrpc": "2.0", "method": "host.get", "params": { "filter": { "host": [ "888Y-6F-bangong-1" ] } }, "auth": "2bed9416d8773ed714a300101d7ccd78", "id": 1 }' http://10.108.15.231/zabbix/api_jsonrpc.php | python -m json.tool curl -s -X POST -H 'Content-Type: application/json' -d ' { "jsonrpc": "2.0", "method": "host.get", "params": { "filter": { "host": [ "888Y-6F-bangong-1" ] } }, "auth": "2bed9416d8773ed714a300101d7ccd78", "id": 1 }' http://10.108.15.231/zabbix/api_jsonrpc.php | python -m json.tool 2、获取主机组的信息; curl -s -X POST -H 'Content-Type: application/json' -d ' { "jsonrpc": "2.0", "method": "host.get", "params": { "output": ["hostid"], "selectGroups": "extend", "filter": { "host": [ "Zabbix server" ] } }, "auth": "2bed9416d8773ed714a300101d7ccd78", "id": 1 }' http://10.108.15.231/zabbix/api_jsonrpc.php | python -m json.tool
加主机也是一个事件。
自动注册可以开启或者关闭。
自动发现有个坑比如vip怎么算,而且link的模板很少,所以真正做自动化我们都是采用zabbix的api(服务化),可以管理或者查询,
id就是这次请求的标识,不是主机的标识
zabbix中的filter是过滤的
通过zabbix的api判断是否添加监控是很容易的
Pyzabbix:
pyzabbix的定制化API:https://gitee.com/kbsonlong/pyzabbix
https://www.cnblogs.com/richardzgt/articles/7889404.html#_label1
pyzabbix是zabbixAPI的第三方python包装
from pyzabbix import ZabbixAPI
zapi = ZabbixAPI("http://10.108.15.231/zabbix/api_jsonrpc.php")
zapi.login("Admin","zabbix")
print("Connected to Zabbix API Version %s" % zapi.api_version())
一个API的库:
#!/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']
from pyzabbix.api import ZabbixAPI # Create ZabbixAPI class instance zapi = ZabbixAPI(url='http://10.108.15.231/zabbix/api_jsonrpc.php', user='Admin', password='zabbix') # Get all monitored hosts result1 = zapi.host.get(monitored_hosts=1, output='extend') # Get all disabled hosts result2 = zapi.do_request('host.get', { 'filter': {'status': 1}, 'output': 'extend' }) # Filter results hostnames1 = [host['host'] for host in result1] hostnames2 = [host['host'] for host in result2['result']] # Logout from Zabbix zapi.user.logout()
与postman在一起的6月
一般把一个工程当作是一个collections。然后可以创建文件夹(实现请求的分类与归档) binary就是用来上传文件的 form data选择是file就可以上传文件 |
postman到zabbix家 |
POST和GET都是向服务器提交数据,并且都会从服务器获取数据。 区别: 1、传送方式:get通过地址栏传输,post通过报文传输。 2、传送长度:get参数有长度限制(受限于url长度),而post无限制 CURL命令模拟Http Get/Post请求 post方法简单使用 1、带数据的post |