您的位置:首页 > 编程语言 > Python开发

通过API新建zabbix主机

2016-07-12 14:57 405 查看
#!/usr/bin/env python2.7

#coding=utf-8

import json

import urllib2

# based url and required header

url = "http://localhost/zabbix/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:

    print "Auth Failed, Please Check Your Name And Password:"

else:

    response = json.loads(result.read())

    result.close()

    Auth_id = response['result']

   

#create host

if Auth_id:

    file = open("server_info", "r+")

    if file:

        # line = file.readlines()

        # for each_line in line:

        #     arr = each_line.split()

        #     ip = arr[0]

        #     server_name = arr[1]

        for line in file:

            list1 = line.split()

            ip = list1[0]

            server_name = list1[1] 

            # request json

            data = json.dumps(

            {

                "jsonrpc":"2.0",

                "method":"host.get",

                "params":{

                    "output":["hostid","name"],

                    "filter":{"host":server_name}

                },

                "auth":Auth_id,

                "id":1,

            })

           

            # create request object

            request = urllib2.Request(url,data)

            for key in header:

                request.add_header(key,header[key])

            # get host list

            result = urllib2.urlopen(request)

            response = json.loads(result.read())

            result.close()

            host_name = response['result']

            

            #print host_name,"- - - -"

            if host_name:

                print ip,server_name," had been created ! "

                continue

            else:

                # request json

                data = json.dumps(

                {

                    "jsonrpc":"2.0",

                    "method":"host.create",

                    "params":{

                                "host": server_name,

                                "interfaces":[{ "type": 1,

                                                "main": 1,

                                                "useip": 1,

                                                "ip": ip,

                                                "dns": "",

                                                "port": "10050"}],

                                "groups": [{"groupid": "2"}],

                                "templates": [{"templateid": "10050"}]

                                },

                    "auth":Auth_id,

                    "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:

                        print 'We failed to reach a server.'

                else:

                    response = json.loads(result.read())

                    result.close()

                    print server_name,'has been created !'

    file.close

else:

    print 'We failed to reach a server.'
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python zabbix