在日常的监控运维中,因监控的内容较多,人较少的情况下,监控对本省的日常巡检成了一个重大的累赘(我们不可能每天对每一个检测项的状态进行检查,工作量,我的天呢),虽然我们可以使用zabbix自身报警,邮件等手段,但是,填写巡检表的时候,嘿嘿嘿,麻烦的让人想吐。监控自身巡检就成了必要的手段了。

由于时间问题和需求不定,我就暂将存在故障检测项的IP输出,未做处理(可以做成表格输出,大方,简洁,方便),还望抱歉。

前期准备:

1.修改zabbix的url,用户,密码

2.修改检测项目对应的key:keyinfo(巡检需要列出大量需要检测的key)

3.由于我含有多个省份xxxx,yyyy,可以酌情添加减少

#!/usr/bin/env python
# coding:utf-8
##########################
# Function : 该script可以针对部署的监控进行的检测,也可进行日常巡检
# Editer   : graysky
# Version  : 1.0.0
# Mail     : 714810243@qq.com
# Date     : 2016-08-14
##########################import json
import urllib2
import xlrd
class api_work:def __init__(self, url, user, passwd):self.url = urlself.user = userself.passwd = passwdself.login_authid = self.zabbix_login()def json_work(self, work_json):zabbix_header = {"Content-Type": "application/json"}self.work_json = work_jsonused_json = json.dumps(self.work_json)used_json_reques = urllib2.Request(self.url, used_json)for key in zabbix_header:used_json_reques.add_header(key, zabbix_header[key])try:used_json_result = urllib2.urlopen(used_json_reques)except Exception:print "Get failed"else:used_json_respones = json.loads(used_json_result.read())used_json_group = used_json_respones['result']used_json_result.close()return used_json_groupdef zabbix_login(self):login_json = {"jsonrpc": "2.0","method": "user.login","params": {"user": self.user, "password": self.passwd},"id": 0}login_authid = self.json_work(login_json)return login_authiddef get_hostinfo(self):hostinfo_group = {}host_json = {"jsonrpc": "2.0","method": "host.get","params": {"output": "extend",},"auth": self.zabbix_login(),"id": 0,}for hostinfo in self.json_work(host_json):hostinfo_group[hostinfo["hostid"]] = hostinfo["host"]return hostinfo_groupdef get_itemsinfo_by_hostidmonitor(self,hostid,monitor_key):itemsinfo_group = {}items_json = {"jsonrpc": "2.0","method": "item.get","params":{"output": "extend","hostids": hostid,"search":{"key_": monitor_key},"sortfield": "name"},"auth": self.login_authid,"id": 0}for itemsinfo in self.json_work(items_json):itemsinfo_group[itemsinfo['itemid']] = itemsinfo['status']return itemsinfo_group
if __name__ == "__main__":def provincework(provinceinfo,key_info):if provinceinfo == "xxxx":zabbix_url = "http://xxxx/zabbix/api_jsonrpc.php"zabbix_user = "Admin"zabbix_passwd = "xxxx"elif provinceinfo == "yyyy":zabbix_url = "http://yyyyy/zabbix/api_jsonrpc.php"zabbix_user = "Admin"zabbix_passwd = "yyyy"api_init = api_work(zabbix_url,zabbix_user,zabbix_passwd)hostinfogroup = api_init.get_hostinfo()'''for hostip in hostinfogroup.values():print hostip'''ItemsErrorHostIP = []for hostid in hostinfogroup.keys():itemsstatusinfo_group = api_init.get_itemsinfo_by_hostidmonitor(hostid,key_info)for itemsstatusinfo in itemsstatusinfo_group.values():if int(itemsstatusinfo) > 0 :ItemsErrorHostIP.append(hostinfogroup[hostid])return ItemsErrorHostIPprovincegroup = ['xxxx','yyyy']keyinfo = 'OS.Core.Dir.Change[/etc/init.d/]'for province in provincegroup:erroritemsipgroup = provincework(province,keyinfo)if len(erroritemsipgroup) == 0 :print "省份%s检测结果: 添加完成-通过 "%provinceelse:print "省份%s检测结果: 未添加完成-未通过IP如下:"%provincefor erroritemsip in erroritemsipgroup:type(erroritemsip)print "\t\t\t\t%s"%erroritemsip

转载于:https://blog.51cto.com/graysky/1844799

zabbix-2.0.8日常巡检-检测项目状态相关推荐

  1. ubuntu 检测网络状态命令

    一.检测网络状态常用的基本命令 1)ifconfig命令被用于配置和显示Linux内核中网络接口的网络参数 ifconfig 输出结果如下: drew@ubun:~$ ifconfig eth0 Li ...

  2. 服务器日常巡检 项目,服务器日常巡检表

    服务器日常巡检表 内容精选 换一换 服务器上的ICAgent被卸载后,会影响该服务器的日志采集能力,请谨慎操作!云日志服务主机管理界面,仅支持卸载安装在Linux环境中的ICAgent,如果需要卸载安 ...

  3. CentOS-7部署安装Zabbix 3.0

    文章目录 **实验目的:** 部署安装Zabbix 3.0: 配置"主机名和hosts解析" 安装MySQL(CentOS-7中更名为 mariadb ) 使用官方yum源安装Za ...

  4. Zabbix分布式监控实战(一)——Zabbix 5.0监控平台搭建与被监控端的添加

    一.Zabbix概述 1.Zabbix简介  zabbix是一个基于WEB界面的提供 分布式系统监控以及网络监控功能 的企业级的开源解决方案.zabbix能监视各种网络参数,保证服务器系统的安全运营: ...

  5. 千锤百炼的绝缘胶板有哪些检测项目与标准?

    配电室及很多电力相关场所会用到绝缘橡胶板,人们在绝缘橡胶板上带电作业更安心放心,祛除安全隐患.日常中有黑色.红色.绿色.灰色等颜色的绝缘橡胶板,色泽饱满.拉伸度强,质量上佳,那么绝缘胶垫是如何辨别质量 ...

  6. Zabbix 3.0 从入门到精通(zabbix使用详解)

    第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源   网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性(也 ...

  7. 仅用CPU就能跑到1000FPS,这是开源的C++跨平台人脸检测项目

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:机器之心 总是被各种依赖环境蹂躏?看看这个 C++编写的跨平 ...

  8. 实战教程 | 车道线检测项目实战,霍夫变换 新方法 Spatial CNN

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 此文按照这样的逻辑进行撰写.分享机器学习.计算机视觉的基础知识,接着我们以一个实际的项目,带领大家自己 ...

  9. Zabbix 3.0 基础介绍 [一]

    zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利zabb ...

最新文章

  1. 记录Nginx模块开发
  2. Linux系统编程之--守护进程的创建和详解【转】
  3. c++学习笔记之异常
  4. java多功能钟_Java 11将包含更多功能
  5. 【软件开发底层知识修炼】二十七 C/C++中的指针与数组是不同的
  6. python-数据的维度与csv
  7. SpringMVC 框架系列之组件概述与配置详解
  8. WPF中一个控件绑定另一个控件的属性
  9. Android N代码暗示隐藏的“多窗口”模式
  10. C# Serilog日志框架
  11. 将CString转换成string ...
  12. 银行即将关闭直接代扣通道,第三方支付有麻烦了
  13. java学生成绩管理系统(GUI界面+文件保存+排序)
  14. ntdll.dll 0xc0000005
  15. 解决appium中Error: The port #8100 is occupied by an other process的问题
  16. 网易云--荣格心理学测验
  17. Python吴恩达深度学习作业15 -- YOLO原理及应用(自动驾驶——汽车检测)
  18. 一年规划: 服务器后端+分布式+微服务+具有产品思维,20210504
  19. 探寻江南虞山之美 尽享与观致7的一场约会
  20. SAP 银行存款设为 外币户 USD

热门文章

  1. java solr5.2_solr5.2.1-----环境搭建
  2. 微信游戏脑力大乱斗92一个计算机,微信脑力大乱斗答案大全_全关卡图文攻略_软吧...
  3. 华为p50 pro 鸿蒙,华为P50Pro确认!1英寸大底相机+首发鸿蒙:这才是华为最强实力...
  4. db2 9.7 64位_2020年使用2016年的第一代9.7英寸 Ipad pro?
  5. python内核死亡的原因_Kernel Panic常见原因以及解决方法
  6. react 流程图框架_【赠书】Preact(React)核心原理详解Preact(React) 核心原理解析...
  7. 服务器网站链接ip限制,apache服务器对同一IP地址的连接限制
  8. 计算机应用类专业综合知识模拟试题,2015年湖南省对口升学计算机应用类专业综合知识试题(真题)...
  9. 怎么激活linux系统远程桌面休眠状态,如何从命令行挂起/休眠?
  10. 集合 Collection 与迭代器 Iterator