zabbix通过api批量添加web监控

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix通过api批量添加web监控相关的知识,希望对你有一定的参考价值。

zabbix 添加web监控始终是大问题,不能自动发现只能手动添加


写了个py脚本

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
import urllib2
import sys
class zabbixtools:
    def __init__(self):
        self.url = "Zabbixserver"
        self.header = {"Content-Type": "application/json"}
        self.authID = self.user_login()
    def user_login(self):
        data = json.dumps(
                {   
                    "jsonrpc": "2.0",
                    "method": "user.login",
                    "params": { 
                        "user": "USER",
                        "password": "PASSWORD"
                        },
                    "id": 0
                    })
        request = urllib2.Request(self.url,data)
        for key in self.header:
            request.add_header(key,self.header[key])
        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()
            authID = response[‘result‘]
            return authID
    def get_data(self,data,hostip=""):
        request = urllib2.Request(self.url,data)
        for key in self.header:
            request.add_header(key,self.header[key])
        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
            return 0
        else:
            response = json.loads(result.read())
            result.close()
            return response
    def host_create(self):
        data = json.dumps(
                    {
                        "jsonrpc": "2.0",
                        "method": "httptest.create",
                        "params": {
                            "hostid": "10788",
                            "name": "Homepage",
                            "steps": [
                                {
                                    "name": "1",
                                    "url": "http://mycompany.com",
                                    "no": 1
                                }
                            ]
                    },
                        "auth": self.authID,
                        "id": 1,
                        })
        res = self.get_data(data)
        print res

def main():
    test = zabbixtools()
    test.host_create()
if __name__ == "__main__":
    main()


以上是关于zabbix通过api批量添加web监控的主要内容,如果未能解决你的问题,请参考以下文章

zabbix 批量添加web场景监控

通过zabbix自带api进行主机的批量添加操作

zabbix批量添加主机监控-zabbix api调用

zabbix 批量web url监控

zabbix批量添加主机

Zabbix 调用API 批量添加主机等