yanfei 发表于 2019-1-24 09:34:26

zabbix二次开发之批量添加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)
      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)
      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()  




页: [1]
查看完整版本: zabbix二次开发之批量添加web监控