zabbix api可以很方便的管理监控项,功能强大,非常适合二次开发。本文主要实现的功能是django资产管理的更新能够同步到zabbix监控平台,统一平台功能,保证数据一致性。
zabbix ?apizabbix api中主要用到host.create,host.delete,host.update,host.get和hostinterface.update方法。下面已create为例做下简单使用说明。
{ \jsonrpc\: \2.0\, \method\: \host.create\, \params\: { \host\: \linux server\, \interfaces\: [ { \type\: 1, \main\: 1, \useip\: 1, \ip\: \192.168.3.1\, \dns\: \\, \port\: \10050\ } ], \groups\: [ { \groupid\: \50\ } ], \templates\: [ { \templateid\: \20045\ } ], \inventory\: { \macaddress_a\: \01234\, \macaddress_b\: \56768\ } }, \auth\: \038e1d7b1735c6a5436ee9eae095879e\, \id\: 1}参数
jsonrpc:默认2.0,不用修改
method:指定api的方法
params:请求的参数。其中host是主机名称,即zabbix页面上显示的名字。interfaces是主机的真实信息,包括类型、ip地址和端口等。groups主机添加时加入的组,这个必须指定。templates表示添加主机时使用的zabbix模板id,可选,建议添加常用模板id号 。inventory资产管理,这个我没有添加。
auth:登陆后的sessionid号
id:操作的id号,这个具体什么作用没有深入研究。请求id是什么号,返回时显示什么号。
创建成功后返回内容如下:
{ \jsonrpc\: \2.0\, \result\: { \hostids\: [ \107819\ ] }, \id\: 1}python调用了解zabbix的api后,用python实现还是比较简单,输入参数,发起请求,返回结果。
用户登陆退出代码类似如下:
def login(): url = settings.zabbix_url \/api_jsonrpc.php\ data = json.dumps( { \jsonrpc\: \2.0\, \method\: \user.login\, \params\: { \user\: settings.zabbix_username, \password\: settings.zabbix_password }, \id\: 0 }) result = requesturl(url, data) return result def logout(sessionid): url = settings.zabbix_url \/api_jsonrpc.php\ data=json.dumps( { \jsonrpc\: \2.0\, \method\: \user.logout\, \params\: [], \id\: 1, \auth\: sessionid } ) return requesturl(url, data)创建主机的代码类似如下:
def genhost(sessionid,ip,groupids): url = settings.zabbix_url \/api_jsonrpc.php\ groups_list=[] for groupid in groupids: groups_list.append({\groupid\:groupid}) params_dict={ \host\: ip, \interfaces\: [ { \type\: 1, \main\: 1, \useip\: 1, \ip\: ip, \dns\: \\, \port\: \10050\ } ], \groups\: groups_list, \templates\: [ { \templateid\: \10114\ } ], } data=json.dumps( { \jsonrpc\: \2.0\, \method\: \host.create\, \params\: params_dict, \auth\: sessionid, \id\ : 3 }) return requesturl(url, data)更新ip的时候写的比较麻烦,需要先分别获取hostid和hostinterfaceid,然后再分别调用host.update和hostinterfa.update方法修改。
zabbix api全部代码可以从这个地址下载:zabbixapi.py
参考连接:
https://www.zabbix.com/documentation/2.4/manual/api/reference/host
19阿里云学生怎么购买云服务器使用云服务器划算吗尊敬的用户刘云波您的新增备案不完全符合备案要求阿里巴巴云服务器投建多少钱阿里云服务器搬家网站网站建设选择域名时请慎用6数字com域名!怎么查看电脑温度|查看电脑温度的三种方式转出2个域名-域名及账户问题