python增刪改查zabbix主機等
摘自:
http://www.jianshu.com/p/e087cace8ddf
一、API簡介
Zabbix API是在1.8版本中開始引進並且已經被廣泛應用。所有的Zabbix移動客戶端都是基於API,甚至原生的WEB前端部分也是建立在它之上。Zabbix API 中間件使得架構更加模塊化也避免直接對數據庫進行操作。它允許你通過JSON
RPC協議來創建、更新和獲取Zabbix對象並且做任何你喜歡的操作【當然前提是你擁有認證賬戶】。
Zabbix API提供兩項主要功能:
遠程管理Zabbix配置
遠程檢索配置和歷史數據
使用JSON
API 采用JSON-RPC實現。這意味著調用任何函數,都需要發送POST請求,輸入輸出數據都是以JSON格式。大致工作流如下:
準備JSON對象,它描述了你想要做什麽(創建主機,獲取圖像,更新監控項等)。
采用POST方法向 http://example.com/zabbix/api_jsonrpc.php 發送此JSON對象;
http://example.com/zabbix/ 是Zabbix前端地址 ,api_jsonrpc.php是調用API的PHP腳本。可在安裝可視化前端的目錄下找到。獲取JSON格式響應。
註:請求除了必須是POST方法之外,HTTP Header Content-Type必須為【application/jsonrequest,application/json-rpc,application/json】其中之一。
可以采用腳本或者任何"手動"支持JSON RPC的工具來使用API。而首先需要了解的就是如何驗證和如何使用驗證ID來獲取想要的信息。後面的演示會以Python腳本和基於Curl的例子來呈現API的基本使用。
基本請求格式
Zabbix API 簡化的JSON請求如下:
{ "jsonrpc": "2.0", "method": "method.name", "params": { "param_1_name": "param_1_value", "param_2_name": "param_2_value" }, "id": 1, "auth": "159121b60d19a9b4b55d49e30cf12b81", }
一行一行來看:
"jsonrpc": "2.0"-這是標準的JSON RPC參數以標示協議版本。所有的請求都會保持不變。
"method": "method.name"-這個參數定義了真實執行的操作。例如:host.create、item.update等等
"params"-這裏通過傳遞JSON對象來作為特定方法的參數。如果你希望創建監控項,"name"和"key_"參數是需要的,每個方法需要的參數在Zabbix API文檔中都有描述。
"id": 1-這個字段用於綁定JSON請求和響應。響應會跟請求有相同的"id"。在一次性發送多個請求時很有用,這些也不需要唯一或者連續
"auth": "159121b60d19a9b4b55d49e30cf12b81"-這是一個認證令牌【authentication token】用以鑒別用戶、訪問API。這也是使用API進行相關操作的前提-獲取認證ID。
以上參考:zabbix小結(八)Zabbix api
二 、直接上工具腳本
下面參考:利用zabbix api 添加監控
集合腳本,包含查詢主機,主機組,模板,添加開啟禁用刪除主機等功能
> vim zbx_tool.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import json
import sys
import urllib2
import argparse
from urllib2 import URLError
reload(sys)
sys.setdefaultencoding(‘utf-8‘)
class zabbix_api:
def __init__(self):
self.url = ‘http://zabbix.xxx.com/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 "\033[041m 認證失敗,請檢查URL !\033[0m",e.code
except KeyError as e:
print "\033[041m 認證失敗,請檢查用戶名密碼 !\033[0m",e
else:
response = json.loads(result.read())
result.close()
#print response[‘result‘]
self.authID = response[‘result‘]
return self.authID
def hostid_get_hostname(self, hostId=‘‘):
data = json.dumps({
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": "extend",
"filter": {"hostid": hostId}
},
"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.loads(result.read())
#print response
result.close()
if not len(response[‘result‘]):
print "hostId is not exist"
return False
#print "主機數量: \33[31m%s\33[0m" % (len(response[‘result‘]))
host_dict=dict()
for host in response[‘result‘]:
status = {"0": "OK", "1": "Disabled"}
available = {"0": "Unknown", "1": "available", "2": "Unavailable"}
#if len(hostId) == 0:
# print "HostID : %s\t HostName : %s\t Status :\33[32m%s\33[0m \t Available :\33[31m%s\33[0m" % (
# host[‘hostid‘], host[‘name‘], status[host[‘status‘]], available[host[‘available‘]])
#else:
# print "HostID : %s\t HostName : %s\t Status :\33[32m%s\33[0m \t Available :\33[31m%s\33[0m" % (
# host[‘hostid‘], host[‘name‘], status[host[‘status‘]], available[host[‘available‘]])
host_dict[‘name‘]=host[‘name‘]
host_dict[‘status‘]=status[host[‘status‘]]
host_dict[‘available‘]=available[host[‘available‘]]
return host_dict
def hostid_get_hostip(self, hostId=‘‘):
data = json.dumps({
"jsonrpc": "2.0",
"method": "hostinterface.get",
"params": {
"output": "extend",
"filter": {"hostid": hostId}
},
"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.loads(result.read())
# print response
result.close()
if not len(response[‘result‘]):
print "\033[041m hostid \033[0m is not exist"
return False
#print "主機數量: \33[31m%s\33[0m" % (len(response[‘result‘]))
for hostip in response[‘result‘]:
#print hostip
#if len(hostip) == 0:
# print "HostID : %s\t HostIp : %s \t Port : %s " % (hostip[‘hostid‘], hostip[‘ip‘], hostip[‘port‘])
#else:
# print "HostID : %s\t HostIp :\33[32m%s\33[0m \t Port :\33[31m%s\33[0m" % (
# hostip[‘hostid‘], hostip[‘ip‘], hostip[‘port‘])
return hostip[‘ip‘]
def host_get(self,hostName=‘‘):
data=json.dumps({
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": "extend",
#"filter":{"host":""}
"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.loads(result.read())
#print reqponse
result.close()
if not len(response[‘result‘]):
print "\033[041m %s \033[0m is not exist" % hostName
return False
print "主機數量: \033[31m%s\033[0m"%(len(response[‘result‘]))
for host in response[‘result‘]:
status={"0":"OK","1":"Disabled"}
available={"0":"Unknown","1":"available","2":"Unavailable"}
#print host
if len(hostName)==0:
print "HostID : %s\t HostName : %s\t HostIp : %s\t Status :%s \t Available :%s"%(host[‘hostid‘],host[‘name‘],self.hostid_get_hostip(hostId=host[‘hostid‘]),status[host[‘status‘]],available[host[‘available‘]])
else:
print "HostID : %s\t HostName : %s\t HostIp : %s\t Status :\033[32m%s\033[0m \t Available :\033[31m%s\033[0m"%(host[‘hostid‘],host[‘name‘],self.hostid_get_hostip(hostId=host[‘hostid‘]),status[host[‘status‘]],available[host[‘available‘]])
return host[‘hostid‘]
def hostip_get(self, hostIp=‘‘):
data = json.dumps({
"jsonrpc": "2.0",
"method": "hostinterface.get",
"params": {
"output": "extend",
"filter": {"ip": hostIp}
},
"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.loads(result.read())
# print response
result.close()
if not len(response[‘result‘]):
print "\033[041m hostip \033[0m is not exist"
return False
print "主機數量: \33[31m%s\33[0m" % (len(response[‘result‘]))
for hostip in response[‘result‘]:
host = self.hostid_get_hostname(hostip[‘hostid‘])
if len(hostip) == 0:
print "HostID : %s\t HostName : %s\t HostIp : %s\t Status :\33[32m%s\33[0m \t Available :\33[31m%s\33[0m"%(hostip[‘hostid‘],host[‘name‘],hostip[‘ip‘],host[‘status‘],host[‘available‘])
else:
print "HostID : %s\t HostName : %s\t HostIp : %s\t Status :\33[32m%s\33[0m \t Available :\33[31m%s\33[0m"%(hostip[‘hostid‘],host[‘name‘],hostip[‘ip‘],host[‘status‘],host[‘available‘])
return hostip[‘hostid‘]
def hostgroup_get(self, hostgroupName=‘‘):
data = json.dumps({
"jsonrpc":"2.0",
"method":"hostgroup.get",
"params":{
"output": "extend",
"filter": {
"name": hostgroupName
}
},
"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:
print "Error as ", e
else:
# result.read()
response = json.loads(result.read())
result.close()
#print response()
if not len(response[‘result‘]):
print "\033[041m %s \033[0m is not exist" % hostgroupName
return False
for group in response[‘result‘]:
if len(hostgroupName)==0:
print "hostgroup: \033[31m%s\033[0m \tgroupid : %s" %(group[‘name‘],group[‘groupid‘])
else:
print "hostgroup: \033[31m%s\033[0m\tgroupid : %s" %(group[‘name‘],group[‘groupid‘])
self.hostgroupID = group[‘groupid‘]
return group[‘groupid‘]
def template_get(self,templateName=‘‘):
data = json.dumps({
"jsonrpc":"2.0",
"method": "template.get",
"params": {
"output": "extend",
"filter": {
"name":templateName
}
},
"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:
print "Error as ", e
else:
response = json.loads(result.read())
result.close()
#print response
if not len(response[‘result‘]):
print "\033[041m %s \033[0m is not exist" % templateName
return False
for template in response[‘result‘]:
if len(templateName)==0:
print "template : %s \t id : %s" % (template[‘name‘], template[‘templateid‘])
else:
self.templateID = response[‘result‘][0][‘templateid‘]
print "Template Name :%s"%templateName
return response[‘result‘][0][‘templateid‘]
def hostgroup_create(self,hostgroupName):
if self.hostgroup_get(hostgroupName):
print "hostgroup \033[42m%s\033[0m is exist !" % hostgroupName
sys.exit(1)
data = json.dumps({
"jsonrpc": "2.0",
"method": "hostgroup.create",
"params": {
"name": hostgroupName
},
"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:
print "Error as ", e
else:
response = json.loads(result.read())
result.close()
print "添加主機組:%s hostgroupID : %s"%(hostgroupName,self.hostgroup_get(hostgroupName))
def host_create(self, hostIp, hostgroupName, templateName, hostName):
if self.host_get(hostName) or self.hostip_get(hostIp):
print "該主機已經添加!"
sys.exit(1)
group_list=[]
template_list=[]
for i in hostgroupName.split(‘,‘):
var = {}
var[‘groupid‘] = self.hostgroup_get(i)
group_list.append(var)
for i in templateName.split(‘,‘):
var={}
var[‘templateid‘]=self.template_get(i)
template_list.append(var)
data = json.dumps({
"jsonrpc":"2.0",
"method":"host.create",
"params":{
"host": hostName,
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": hostIp,
"dns": "",
"port": "10050"
}
],
"groups": group_list,
"templates": template_list,
},
"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)
response = json.loads(result.read())
result.close()
print "add host : %s id :%s" % (hostIp, hostName)
except URLError as e:
print "Error as ", e
except KeyError as e:
print "\033[041m 主機添加有誤,請檢查模板正確性或主機是否添加重復 !\033[0m",e
print response
def host_disable(self,hostip):
data=json.dumps({
"jsonrpc": "2.0",
"method": "host.update",
"params": {
"hostid": self.host_get(hostip),
"status": 1
},
"auth": self.user_login(),
"id": 1
})
request = urllib2.Request(self.url,data)
#opener = urllib2.build_opener(urllib2.HTTPBasicAuthHandler(TerminalPassword()))
for key in self.header:
request.add_header(key, self.header[key])
try:
result = urllib2.urlopen(request)
#result = opener.open(request)
except URLError as e:
print "Error as ", e
else:
response = json.loads(result.read())
result.close()
print ‘------------主機現在狀態------------‘
print self.host_get(hostip)
def host_enable(self,hostip):
data=json.dumps({
"jsonrpc": "2.0",
"method": "host.update",
"params": {
"hostid": self.host_get(hostip),
"status": 0
},
"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)
#result = opener.open(request)
except URLError as e:
print "Error as ", e
else:
response = json.loads(result.read())
result.close()
print ‘------------主機現在狀態------------‘
print self.host_get(hostip)
def host_delete(self,hostNames):
hostid_list=[]
for hostName in hostNames.split(‘,‘):
hostid = self.host_get(hostName=hostName)
if not hostid:
print "主機 \033[041m %s\033[0m 刪除失敗 !" % hostName
sys.exit()
hostid_list.append(hostid)
data=json.dumps({
"jsonrpc": "2.0",
"method": "host.delete",
"params": hostid_list,
"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)
result.close()
print "主機 \033[041m %s\033[0m 已經刪除 !" % hostName
except Exception,e:
print e
if __name__ == "__main__":
zabbix=zabbix_api()
parser=argparse.ArgumentParser(description=‘zabbix api ‘,usage=‘%(prog)s [options]‘)
parser.add_argument(‘-H‘,‘--host‘,nargs=‘?‘,dest=‘listhost‘,default=‘host‘,help=‘查詢主機‘)
parser.add_argument(‘-G‘,‘--group‘,nargs=‘?‘,dest=‘listgroup‘,default=‘group‘,help=‘查詢主機組‘)
parser.add_argument(‘-T‘,‘--template‘,nargs=‘?‘,dest=‘listtemp‘,default=‘template‘,help=‘查詢模板信息‘)
parser.add_argument(‘-A‘,‘--add-group‘,nargs=1,dest=‘addgroup‘,help=‘添加主機組‘)
parser.add_argument(‘-C‘,‘--add-host‘,dest=‘addhost‘,nargs=4,metavar=(‘192.168.2.1‘, ‘groupname‘, ‘Template01,Template02‘, ‘hostName‘),help=‘添加主機,多個主機組或模板使用逗號‘)
parser.add_argument(‘-d‘,‘--disable‘,dest=‘disablehost‘,nargs=‘+‘,metavar=(‘sh-aa-01‘),help=‘禁用主機,填寫主機名,多個主機名之間用逗號‘)
parser.add_argument(‘-e‘,‘--enable‘,dest=‘enablehost‘,nargs=1,metavar=(‘sh-aa-01‘),help=‘開啟主機‘)
parser.add_argument(‘-D‘,‘--delete‘,dest=‘deletehost‘,nargs=‘+‘,metavar=(‘sh-aa-01‘),help=‘刪除主機,多個主機之間用逗號‘)
parser.add_argument(‘-v‘,‘--version‘, action=‘version‘, version=‘%(prog)s 1.0‘)
if len(sys.argv) == 1:
#print parser.print_help()
#print zabbix.host_get(hostName=‘bbb‘)
#print zabbix.hostip_get(hostIp=‘127.0.0.1‘)
#print zabbix.hostid_get_hostname(hostId=‘10108‘)
#print zabbix.hostid_get_hostid(hostId=‘10105‘)
#print zabbix.hostgroup_get(hostgroupName=‘Linux servers‘)
#print zabbix.hostgroup_get(hostgroupName=‘aaa‘)
# ...
print zabbix.host_delete(‘hz-aaa-02‘)
else:
args = parser.parse_args()
if args.listhost != ‘host‘:
if args.listhost:
zabbix.host_get(args.listhost)
else:
zabbix.host_get()
if args.listgroup != ‘group‘:
if args.listgroup:
zabbix.hostgroup_get(args.listgroup)
else:
zabbix.hostgroup_get()
if args.listtemp != ‘template‘:
if args.listtemp:
zabbix.template_get(args.listtemp)
else:
zabbix.template_get()
if args.addgroup:
zabbix.hostgroup_create(args.addgroup[0])
if args.addhost:
zabbix.host_create(args.addhost[0], args.addhost[1], args.addhost[2], args.addhost[3])
if args.disablehost:
zabbix.host_disable(args.disablehost)
if args.deletehost:
zabbix.host_delete(args.deletehost[0])
- 先用pip安裝argparse
用法如下:
> python zbx_tool.py -h
usage: zbx_tool.py [options]
zabbix api
optional arguments:
-h, --help show this help message and exit
-H [LISTHOST], --host [LISTHOST]
查詢主機
-G [LISTGROUP], --group [LISTGROUP]
查詢主機組
-T [LISTTEMP], --template [LISTTEMP]
查詢模板信息
-A ADDGROUP, --add-group ADDGROUP
添加主機組
-C 192.168.2.1 groupname Template01,Template02 hostName, --add-host 192.168.2.1 groupname Template01,Template02 hostName
添加主機,多個主機組或模板使用逗號
-d sh-aa-01 [sh-aa-01 ...], --disable sh-aa-01 [sh-aa-01 ...]
禁用主機,填寫主機名,多個主機名之間
¨逗號
-e sh-aa-01, --enable sh-aa-01
開啟主機
-D sh-aa-01 [sh-aa-01 ...], --delete sh-aa-01 [sh-aa-01 ...]
刪除主機,多個主機之間用逗號
-v, --version show program‘s version number and exit
執行查看
> python zbx_tool.py -H
主機數量: 1
HostID : 10084 HostName : Zabbix server Status :OK Available :available
> python zbx_tool.py -G
hostgroup: Templates groupid : 1
hostgroup: Linux servers groupid : 2
hostgroup: Zabbix servers groupid : 4
hostgroup: Discovered hosts groupid : 5
hostgroup: Virtual machines groupid : 6
hostgroup: Hypervisors groupid : 7
> python zbx_tool.py -T
template : Template OS Linux id : 10001
template : Template App Zabbix Server id : 10047
template : Template App Zabbix Proxy id : 10048
template : Template App Zabbix Agent id : 10050
template : Template SNMP Interfaces id : 10060
...
> python zbx_tool.py -C 1.1.1.10 ‘Linux servers‘,‘Zabbix servers‘ ‘Template OS Linux‘ hz-aaa-01
主機數量: 0
hostgroup: Linux servers groupid : 2
hostgroup: Zabbix servers groupid : 4
Template Name :Template OS Linux
add host : 1.1.1.10 id :[u‘10105‘]
> python zbx_tool.py -C 1.1.1.10 ‘Linux servers‘,‘Zabbix servers‘ ‘Template OS Linux‘ hz-aaa-01
主機數量: 0
hostgroup: Linux servers groupid : 2
hostgroup: Zabbix servers groupid : 4
Template Name :Template OS Linux
主機添加有誤,請檢查模板正確性或主機是否添加重復 ! ‘result‘
{u‘jsonrpc‘: u‘2.0‘, u‘id‘: 1, u‘error‘: {u‘message‘: u‘Invalid params.‘, u‘code‘: -32602, u‘data‘: u‘Host with the same name "hz-aaa-01" already exists.‘}}
> 還有其他用法就不一一舉例了
腳本完成,在原作者基礎上略作修改,以適應自己的項目 ~
三、批量操作腳本
準備target文件
> vim target
sh-aaa-01,1.1.1.1
sh-aaa-02,1.1.1.2
sh-aaa-03,1.1.1.3
sh-aaa-04,1.1.1.4
批量添加主機的target文件如上,主機名和ip用逗號分隔;
其他批量操作,只寫入主機名即可;
批量腳本
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os
import sys
import argparse
# 導入zabbix_tool.py的zabbix_api類
from zbx_tool import zabbix_api
reload(sys)
sys.setdefaultencoding(‘utf-8‘)
host_file = ‘target‘
base_templates = "‘aaa‘,"
cmd = ‘python zbx_tool.py‘
# 實例化zabbix_api
zabbix=zabbix_api()
def create_hosts():
groups = raw_input("Please Input Group Name: ")
add_templates = raw_input("Please Input Template Name: ")
templates = base_templates + add_templates
cmd1 = cmd + ‘ -A ‘ + groups
os.system(cmd1)
with open(host_file) as fb:
host_info = dict(line.strip().split(‘,‘) for line in fb)
for hostname in host_info:
cmd2 = cmd + ‘ -C ‘ + host_info[hostname] + ‘ ‘ + groups + ‘ ‘ +templates + ‘ ‘ + hostname
os.system(cmd2)
# 如果本機是sat,target文件可以只寫主機名,然後用salt獲取ip,上一段腳本如下修改:
# with open(host_file) as fb:
# host_info = list(line.strip() for line in fb)
#
# for hostname in host_info:
# ip_cmd=‘salt ‘ + hostname + ‘ grains.item fqdn_ip4|xargs‘
# ip = os.popen(ip_cmd).read().split()[4]
# cmd2 = cmd + ‘ -C ‘ + ip + ‘ ‘ + groups + ‘ ‘ +templates + ‘ ‘ + hostname
# os.system(cmd2)
def get_hosts():
with open(host_file) as fb:
[zabbix.host_get(line.strip()) for line in fb]
def delete_hosts():
with open(host_file) as fb:
[zabbix.host_delete(line.strip()) for line in fb]
def enable_hosts():
with open(host_file) as fb:
[zabbix.host_enablee(line.strip()) for line in fb]
def disable_hosts():
with open(host_file) as fb:
[zabbix.host_disable(line.strip()) for line in fb]
if __name__ == "__main__":
if len(sys.argv) == 1 or sys.argv[1] == ‘-h‘:
print "you need a argv,like:"
print """
python zbx_cli.py -A #批量添加主機
python zbx_cli.py -C #批量查詢主機
python zbx_cli.py -D #批量刪除主機
python zbx_cli.py -e #批量開啟主機
python zbx_cli.py -d #批量禁止主機
"""
else:
if sys.argv[1] == ‘-A‘:
create_hosts()
elif sys.argv[1] == ‘-C‘:
get_hosts()
elif sys.argv[1] == ‘-D‘:
delete_hosts()
elif sys.argv[1] == ‘-e‘:
disable_hosts()
elif sys.argv[1] == ‘-d‘:
enable_hosts()
執行測試
python zbx_cli.py -D
主機數量: 1
HostID : 12440 HostName : hz-xxx-xxx-api-online-07 HostIp : 1.1.1.1 Status :OK Available :available
主機 hz-xxx-xxx-api-online-07 已經刪除 !
主機數量: 1
HostID : 12439 HostName : hz-xxx-xxx-api-online-08 HostIp : 1.1.1.2 Status :OK Available :available
主機 hz-xxx-xxx-api-online-08 已經刪除 !
主機數量: 1
作者:擼大師
鏈接:http://www.jianshu.com/p/e087cace8ddf
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
python增刪改查zabbix主機等