利用zabbix api进行管理
1、获取相关组,主机信息。
2、比如有人喜欢获取历史数据重新出图。
3、添加删除主机,绑定删除模板。
4、添加删除维护周期
这里我使用pipy提供的zabbix_client模块来进行,这样就不用我们自己去写登录函数,只要在模块开始指定用户名密码即可:
1、安装zabbix_client:
pip install zabbxi_client
2、API管理脚本,替换成自己用户名密码即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #coding:utf-8 import time from zabbix_client import ZabbixServerProxy class Zabbix(): def __init__( self ): self .zb = ZabbixServerProxy( "http://192.168.10.100/zabbix" ) self .zb.user.login(user = "Admin" , password = "zabbix" ) ############## 查询组所有组获取组id ############### def get_hostgroup( self ): data = { "output" :[ 'groupid' , 'name' ] } ret = self .zb.hostgroup.get( * * data) return ret ########### 通过组id获取相关组内的所有主机 ############### |
1 2 3 4 5 6 7 8 9 10 11 12 13 | def get_hostid( self ,groupids = 2 ): data = { "output" : [ "hostid" , "name" ], "groupids" : groupids } ret = self .zb.host.get( * * data) return ret ########## 通过获取的hostid查找相关监控想itemid ################### def item_get( self , hostids = "10115" ): data = { "output" :[ "itemids" , "key_" ], "hostids" : hostids, } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | ret = self .zb.item.get( * * data) return ret ######### 通过itemid(传入itemid和i0表示flast类型)获取相关监控项的历史数据 ########### def history_get( self , itemid, i ,limit = 10 ): data = { "output" : "extend" , "history" : i, "itemids" : [itemid], "limit" : limit } ret = self .zb.history.get( * * data) return ret ###############添加主机并且指定到组(传入主机名,IP地址和组ID)##################### def add_zabbix_host( self ,hostname = "test_zabbix" ,ip = "192.168.10.100" ,groupid = "2" ): data = { "host" : hostname, "interfaces" : [ { "type" : 1 , "main" : 1 , "useip" : 1 , "ip" : ip, "dns" : "", "port" : "10050" } ], "groups" : [ { "groupid" : groupid } ] } ret = self .zb.host.create(data) return ret #####################查看现有模板####################### def get_template( self ): datalist = [] datadict = {} data = { "output" :[ "templateid" , "name" ] } ret = self .zb.template.get(data) for i in ret: datadict[i[ 'name' ]] = i[ 'templateid' ] datalist.append(datadict) return datalist #################### 关联主机到模板################################## def link_template( self , hostid = 10156 , templateids = 10001 ): data = { "hostid" :hostid, "templates" :templateids } ret = self .zb.host.update(data) return ret ################### 添加维护周期,,###################################### def create_maintenance( self ,name = "test" ,hostids = 10156 ,time = 2 ): data = { "name" : name, "active_since" : 1458142800 , "active_till" : 1489678800 , "hostids" : [ hostids ], "timeperiods" : [ { "timeperiod_type" : 0 , "period" : 3600 } ] } ret = self .zb.maintenance.create(data) self .host_status( 10130 , 1 ) return ret ################获取维护周期,,######################### def get_maintenance( self ): data = { "output" : "extend" , "selectGroups" : "extend" , "selectTimeperiods" : "extend" } ret = self .zb.maintenance.get(data) return ret ##############获取维护周期之后,通过传入maintenanceid删除维护周期########### def del_maintenance( self ,maintenanceids): return self .zb.maintenance.delete(maintenanceids) #########################添加维护周期时候需要吧zabbix_host设置成非监控状态################## def host_status( self , hostid, status): data = { "hostid" :hostid, "status" :status } return self .zb.host.update(data) ###########通过hostids删除主机id,顺带也删除模板######### def host_del( self ,hostids = 10155 ): return self .zb.host.delete(hostids) if __name__ = = "__main__" : zabbix_server = Zabbix() #print zabbix_server.get_hostgroup() #print zabbix_server.get_hostid() #print zabbix_server.item_get(10156) #data = zabbix_server.history_get("24889",0) #print zabbix_server.get_hostgroup() #print zabbix_server.add_zabbix_host() #data = zabbix_server.get_template() #print data[0]['Template OS Linux'] #print zabbix_server.link_template() #print zabbix_server.create_maintenance() # print zabbix_server.host_del(10155) #print zabbix_server.get_maintenance() print zabbix_server.del_maintenance( 15 ) |
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Docker 基础 : 网络配置
大量的互联网应用服务包含多个服务组件,这往往需要多个容器之间通过网络通信进行相互配合。Docker 目前提供了映射容器端口到宿主主机和容器互联机制来为容器提供网络服务。接下来我们将讲述 Docker 的网络功能,包括使用端口映射机制来将容器内应用服务提供给外部网络,以及通过容器互联系统让多个容器之间进行快捷的网络通信。 端口映射实现访问容器 从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的。当容器中运行了一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数来指定端口映射。当使用 -P 参数时,Docker 会随机选择一个主机可用的端口映射至容器内部开放的网络端口: $dockerrun-d-Ptraining/webapppythonapp.py 使用 docker ps 命令查看一下映射结果: 我这里主机的 32768 端口映射到了容器的 5000 端口。此时访问主机的 32768 端口就可以访问容器内 web 应用提供的内容。-p (小写)参数则可以指定要映射的主机端口。注意,在一个指定的主机端口上只...
- 下一篇
Spark on Angel:Spark机器学习的核心加速器
Spark on Angel:Spark机器学习的核心加速器 Spark的核心概念是RDD,而RDD的关键特性之一是其不可变性,来规避分布式环境下复杂的各种并行问题。这个抽象,在数据分析的领域是没有问题的,它能最大化的解决分布式问题,简化各种算子的复杂度,并提供高性能的分布式数据处理运算能力。 然而在机器学习领域,RDD的弱点很快也暴露了。机器学习的核心是迭代和参数更新。RDD凭借着逻辑上不落地的内存计算特性,可以很好的解决迭代的问题,然而RDD的不可变性,却非常不适合参数反复多次更新的需求。这本质上的不匹配性,导致了Spark的MLlib库,发展一直非常缓慢,从2015年开始就没有实质性的创新,性能也不好。 为此,Angel在设计生态圈的时候,优先考虑了Spark。在V1.0.0推出的时候,就已经具备了Spark on Angel的功能,基于Angel为Spark加上了PS功能,在不变中加入了变化的因素,可谓如虎添翼。 我们将以L-BFGS为例,来分析Spark在机器学习算法的实现上的问题,以及Spark on Angel是如何解决Spark在机器学习任务中的遇到的瓶颈,让Spark...
相关文章
文章评论
共有0条评论来说两句吧...