仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1008|回复: 9
打印 上一主题 下一主题

[CentOS(社区)] Linux教程之python挪用zabbix的api接口添加主机、查询组、主机、模板

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:05:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
小知识:CentOS其实就是相当于免费版的RedHat,任何人可以自由使用,不需要向RedHat付任何的费用。当然,同样你也得不到任何有偿的技术支持和升级服务。
zabbix有一个API接口,可以挪用这些几口来主动添加主机,查询zabbix中监控的主机,监控的模板、监控的主机组等信息,应用也异常的便利。以下是用python挪用zabbix的API接口来完成上述功效:
  1. #!/usr/bin/envpython#-*-coding:utf-8-*-importjsonimporturllib2importsysclasszabbixtools:def__init__(self):self.url="http://192.168.100.200/zabbix/api_jsonrpc.php"self.header={"Content-Type":"application/json"}self.authID=self.user_login()defuser_login(self):data=json.dumps({"jsonrpc":"2.0","method":"user.login","params":{"user":"Admin","password":"zabbix"},"id":0})request=urllib2.Request(self.url,data)forkeyinself.header:request.add_header(key,self.header[key])try:result=urllib2.urlopen(request)exceptURLErrorase:print"AuthFailed,PleaseCheckYourNameAndPassword:",e.codeelse:response=json.loads(result.read())result.close()authID=response[result]returnauthIDdefget_data(self,data,hostip=""):request=urllib2.Request(self.url,data)forkeyinself.header:request.add_header(key,self.header[key])try:result=urllib2.urlopen(request)exceptURLErrorase:ifhasattr(e,reason):printWefailedtoreachaserver.printReason:,e.reasonelifhasattr(e,code):printTheservercouldnotfulfilltherequest.printErrorcode:,e.codereturn0else:response=json.loads(result.read())result.close()returnresponsedefhost_get(self,hostip):#hostip=raw_input("\033[1;35;40m%s\033[0m"%EnterYourCheckHost:Host_ip:)data=json.dumps({"jsonrpc":"2.0","method":"host.get","params":{"output":["hostid","name","status","host"],"filter":{"host":[hostip]}},"auth":self.authID,"id":1})res=self.get_data(data)[result]if(res!=0)and(len(res)!=0):#forhostinres:host=res[0]ifhost[status]==1:print"        ","\033[1;31;40m%s\033[0m"%"Host_IP:","\033[1;31;40m%s\033[0m"%host[host].ljust(15),        ,"\033[1;31;40m%s\033[0m"%"Host_Name:","\033[1;31;40m%s\033[0m"%host[name].encode(GBK),        ,"\033[1;31;40m%s\033[0m"%u未在监控状况.encode(GBK)returnhost[hostid]elifhost[status]==0:print"        ","\033[1;32;40m%s\033[0m"%"Host_IP:","\033[1;32;40m%s\033[0m"%host[host].ljust(15),        ,"\033[1;32;40m%s\033[0m"%"Host_Name:","\033[1;32;40m%s\033[0m"%host[name].encode(GBK),        ,"\033[1;32;40m%s\033[0m"%u在监控状况.encode(GBK)returnhost[hostid]printelse:print        ,"\033[1;31;40m%s\033[0m"%"GetHostErrororcannotfindthishost,pleasecheck!"return0defhost_del(self):hostip=raw_input("\033[1;35;40m%s\033[0m"%EnterYourCheckHost:Host_ip:)hostid=self.host_get(hostip)ifhostid==0:print        ,"\033[1;31;40m%s\033[0m"%"Thishostcannotfindinzabbix,pleasecheckit!"sys.exit()data=json.dumps({"jsonrpc":"2.0","method":"host.delete","params":[{"hostid":hostid}],"auth":self.authID,"id":1})res=self.get_data(data)[result]ifhostidsinres.keys():print"        ","\033[1;32;40m%s\033[0m"%"DeletHost:%ssuccess!"%hostipelse:print"        ","\033[1;31;40m%s\033[0m"%"DeletHost:%sfailure!"%hostipdefhostgroup_get(self):data=json.dumps({"jsonrpc":"2.0","method":"hostgroup.get","params":{"output":"extend",},"auth":self.authID,"id":1,})res=self.get_data(data)ifresultinres.keys():res=res[result]if(res!=0)or(len(res)!=0):print"\033[1;32;40m%s\033[0m"%"NumberOfGroup:","\033[1;31;40m%d\033[0m"%len(res)forhostinres:print"        ","HostGroup_id:",host[groupid],"        ","HostGroup_Name:",host[name].encode(GBK)printelse:print"GetHostGroupError,pleasecheck!"deftemplate_get(self):data=json.dumps({"jsonrpc":"2.0","method":"template.get","params":{"output":"extend",},"auth":self.authID,"id":1,})res=self.get_data(data)#[result]ifresultinres.keys():res=res[result]if(res!=0)or(len(res)!=0):print"\033[1;32;40m%s\033[0m"%"NumberOfTemplate:","\033[1;31;40m%d\033[0m"%len(res)forhostinres:print"        ","Template_id:",host[templateid],"        ","Template_Name:",host[name].encode(GBK)printelse:print"GetTemplateError,pleasecheck!"defhost_create(self):hostip=raw_input("\033[1;35;40m%s\033[0m"%Enteryour:Host_ip:)groupid=raw_input("\033[1;35;40m%s\033[0m"%Enteryour:Group_id:)templateid=raw_input("\033[1;35;40m%s\033[0m"%Enteryour:Tempate_id:)g_list=[]t_list=[]foriingroupid.split(,):var={}var[groupid]=ig_list.append(var)foriintemplateid.split(,):var={}var[templateid]=it_list.append(var)ifhostipandgroupidandtemplateid:data=json.dumps({"jsonrpc":"2.0","method":"host.create","params":{"host":hostip,"interfaces":[{"type":1,"main":1,"useip":1,"ip":hostip,"dns":"","port":"10050"}],"groups":g_list,"templates":t_list,},"auth":self.authID,"id":1,})res=self.get_data(data,hostip)ifresultinres.keys():res=res[result]ifhostidsinres.keys():print"\033[1;32;40m%s\033[0m"%"Createhostsuccess"else:print"\033[1;31;40m%s\033[0m"%"Createhostfailure:%s"%res[error][data]else:print"\033[1;31;40m%s\033[0m"%"EnterError:iporgroupidortempateidisNULL,pleasecheckit!"defmain():test=zabbixtools()#test.template_get()#test.hostgroup_get()#test.host_get()test.host_del()#test.host_create()if__name__=="__main__":main()
复制代码


相干的资料的可以参考官方文档。这个只是一些功效模块,包括获得主机,主机组、模板、删除主机等功效,可以依据须要停止调剂,完成zabbix的批量化和主动化治理。由于是在linux运转,所以设置了输入终真个字体色彩便利辨别,假如不须要,自行删除便可。
小知识:社区支持的免费Linux发行版一般不会从商业支持中寻求什么好处,但对CentOS来说,这种情况即将改变。
深爱那片海 该用户已被删除
沙发
发表于 2015-1-16 21:16:24 | 只看该作者

Linux教程之python挪用zabbix的api接口添加主机、查询组、主机、模板

随着Linux技术的更加成熟、完善,其应用领域和市场份额继续快速增大。目前,其主要应用领域是服务器系统和嵌入式系统。然而,它的足迹已遍布各个行业,几乎无处不在。
兰色精灵 该用户已被删除
板凳
发表于 2015-1-19 07:58:48 | 只看该作者
我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。
冷月葬花魂 该用户已被删除
地板
发表于 2015-1-28 05:48:42 | 只看该作者
生成新的unispimsp.ksc。”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的。
简单生活 该用户已被删除
5#
发表于 2015-2-5 18:51:28 | 只看该作者
linux鸟哥的私房菜,第三版,基础篇,网上有pdf下的,看它的目录和每章的介绍就行了,这个绝对原创!
透明 该用户已被删除
6#
发表于 2015-2-13 06:42:54 | 只看该作者
以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-3 18:27:46 | 只看该作者
如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人。
再见西城 该用户已被删除
8#
发表于 2015-3-11 13:24:26 | 只看该作者
任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-18 20:58:31 | 只看该作者
熟悉并掌握安装Linux,安装是学习的前提。目前较常见的安装方法有二种:
乐观 该用户已被删除
10#
发表于 2015-3-26 19:15:58 | 只看该作者
工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-14 07:20

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表