Zabbix使用API批量导入主机

Zabbix 提供API接口,可以为我们的运维工作提供很大的便利,现将整理并验证的python脚本提供给搭建。

本文是zabbix批量导入主机的python脚本。

导入信息包含:主机名称、可见名称、主机IP、主机组、端口、模版。

本文只支持含一个模版、二个模版的创建,如有其它需要,可自行更改脚本

EXCE模版:

[root@localhost API]# more pil_host1.py 
#coding:utf-8
# by abel 
# abel_dwh@126.com 
import json
import urllib2
from urllib2 import URLError
import sys
import xlrd
class ZabbixTools:
    def __init__(self):
        self.url = 'http://10.10.50.81/zabbix/api_jsonrpc.php'
        self.header = {"Content-Type":"application/json"}
     
    # 获取主机key
    def user_login(self):
        data = json.dumps({
                           "jsonrpc": "2.0",
                           "method": "user.login",
                           "params": {
                                      "user": 'Admin',
                                      "password": 'zabbix'
                                      },
                           "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()
            self.authID = response['result']
            return self.authID
     
    # 获取hostid
    def host_get(self,hostName):
        data = json.dumps({
                           "jsonrpc":"2.0",
                           "method":"host.get",
                           "params":{
                                     "output":["hostid","name"],
                                     "filter":{"host":hostName}
                                     },
                           "auth":self.user_login(),
                           "id":1,
                           })
           
        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
        else:
            response = json.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abel_dwh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值