利用zabbix API进行管理
zabbix 现在之所以那么流行,个人感觉跟zabbix 强大的API有一个很大的关系,利用API可以帮我们完成很多事情:
1、获取相关组,主机信息。
2、比如有人喜欢获取历史数据重新出图。
3、添加删除主机,绑定删除模板。
4、添加删除维护周期
这里我使用pipy提供的zabbix_client模块来进行,这样就不用我们自己去写登录函数,只要在模块开始指定用户名密码即可:
1、安装zabbix_client:
pip install zabbxi_client
2、API管理脚本,替换成自己用户名密码即可:
#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获取相关组内的所有主机 ###############
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,}
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)
zabbix视频请移步:http://www.roncoo.com/details/fb3050a5b34b42f39ccad83ebebc89c1
zabbix自动化课程目录(需求更新中):
1、zabbix生产环境如何使用
2、saltstack批量部署zabbix_agent
3、zabbix API简单使用讲解
4、web UI讲解
5、开始监控之添加一个简单的linux监控
6、zabbix 强大的内置key讲解
7、内置key的使用、 端口、用户数、磁盘读取状态出图
8、trigger表达式学习,实现用户登录数,端口检查告警
9、zabbix邮件告警设置与维护周期
10、zabbix自定义Key添加,tcp状态模板编写
11、自定义监控之、监控nginx解析与实现
12、自定义监控之php-fpm监控
13、自定义监控之mysql状态监控
14、自定义监控之缓存服务器memcached,redis监控
15、自动化之saltstack管理zabbix,批量推送key生效
16、zabbix自动发现绑定删除模板,自动注册
17、zabbix lld发现讲解以及端口发现监控告警出图
18、zabbix lld 发现web站点以及批量获取状态码
19、zabbix lld复习和监控磁盘的运行状况
20、zabbix生成环境规范和按月生成报表资源统计
21、微信公众号告警
转载于:https://blog.51cto.com/xiaoluoge/1827151
利用zabbix API进行管理相关推荐
- api查询所有记录 zabbix_利用zabbix—API查询zabbix监控项历史数据、均值、峰值详细讲解...
前言: 查询监控项历史数据,最常见的办法就是在页面查询,但是页面只能展现最近的500个数值,如果要查询历史数据比较久远或要形成数据表格进行分析,这个办法就不适用了,但是利用zabbix-API查询za ...
- 利用zabbix api批量添加数百台监控主机
利用zabbix api批量添加监控主机 在公司规模很庞大的时候,每次都手动添加监控主机将会很麻烦,我们可以利用zabbix的api去批量添加监控主机 本次我们将实现用一台主机虚拟出100台主机,并通 ...
- Zabbix——通过API接口管理Zabbix所监控主机
一.什么是API API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力 ...
- ZABBIX API简介及使用
API简介 Zabbix API开始扮演着越来越重要的角色,尤其是在集成第三方软件和自动化日常任务时.很难想象管理数千台服务器而没有自动化是多么的困难.Zabbix API为批量操作.第三方软件集成以 ...
- Zabbix(五)利用Zabbix部署onealert云告警平台
一.利用Zabbix部署onealert云告警平台 人的精力是有限的,当我们部署好zabbix监控,为监控主机添加各种监控项完毕之后,不可能时时刻刻去盯着我们的主机看,如果一个主机出现异常,我们该如何 ...
- C++利用MySQL API连接和操作数据库
1.C++连接和操作MySQL的方式 在Windows平台,我们可以使用ADO.ODBC或者MySQL API进行连接和操作.ADO (ActiveX Data Objects,ActiveX数据对象 ...
- 可视化接口管理平台 YApi,让你轻松搞定 API 的管理问题
随着开发的推进,各种各样的文档会接踵而来,比如:需求文档.架构文档.接口文档等等,我们通过 SVN.Git 等可以很方便的管理,面对需求的不断变化,我们需要不断的对各类文档进行维护.但在开发阶段,针对 ...
- 自动化运维(使用api自动化管理f5设备)
自动化运维(使用api自动化管理f5设备) 前言 F5 的API接口 关于认证 利用python实现自动化巡检 成果 附录(f5 api reference) 前言 利用F5设备自带的API,通过py ...
- 搭建API集成管理平台YApi
随着API数量越来越多,wiki已经体现不出优势了.冗长的文档资料让人难以维护,稍微一点小改动就需要对很多地方进行修改.最近一位前端大佬推荐了API集成管理平台YApi,上手后发现还挺不错的. YAp ...
最新文章
- C++实现九九乘法表
- 20以内分数化小数表_数与代数之小数
- 扇贝python课程打卡_Python爬虫:获取扇贝打卡信息
- SAP RETAIL MM42维护商品采购信息记录数据的缺陷
- centos7 安装图形界面、VNCserver
- mysql 接口访问_MySQL的数据库访问接口-阿里云开发者社区
- OSI网络七层模型简明教程
- 网络/系统调试维护笔记
- 【UnityEditor】制作一个unity ui 脚本自动生成器
- 表情识别相关论文摘要
- linux环境c语言实现who,Linux下C语言编程环境的搭建1
- Go语言——cap函数详解
- 第22章 常用存储器介绍
- bzoj 4008 亚瑟王 - 动态规划 - 概率与期望
- 农业大省吉林谋乡村全面振兴:农业强、农村美、农民富
- 播放器实战22 解决花屏与卡顿问题
- 中心差分法编程C语言,中心差分法的基本理论与程序设计.docx
- 稻盛和夫:经营为何需要哲学
- R统计-微生物群落结构差异分析及结果解读
- .net 应用服务GC时服务挂起几秒问题及解决办法