1.前言
最近需要在服务器集群上添加Zabbix Agent来监控数据,大概需要部署1000台。每一台都需要在Zabbix Web上添加主机,以查看数据和配置信息,这个数量的主机信息,要是全手动添加,那一天到晚啥都不用做,光点击鼠标添加了。于是想看看有啥自动化脚本可用,看到了Zabbix API,有了一些方向。可以把配置信息都写进CSV里,使用Python脚本读取,借助API自动添加,省时省力!
2.Python脚本代码
话不多说,直接上代码:
添加脚本
addhost.py
#coding:utf-8
import json
import urllib2
from urllib2 import URLError
import sys
import xlrd
# 测试ok
class ZabbixTools:
def __init__(self):
self.url = 'http://172.20.10.3/zabbix/api_jsonrpc.php'
self.header = {"Content-Type":"application/json"}
# 登陆验证
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
# 获取主机
def host_get(self,hostName):
data = json.dumps({
"jsonrpc":"2.0",
"method":"host.get",
"params":{
"output":["hostid","name"],