PHP前端开发

Python如何实现Zabbix-API监控(附代码)

百变鹏仔 3小时前 #Python
文章标签 如何实现

本篇文章给大家带来的内容是关于Python如何实现Zabbix-API监控(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

 做运维的朋友应该知道,公司idc机房经常有上架、下架、报修和报废的服务器。如果服务器数量很多的时候很容易造成监控遗漏。
大的互联网公司把监控系统和cmdb(资产管理系统|配置管理数据库系统)集成在一起,当上架一台新机器的时候cmdb里面会记录相关的信息,zabbix根据cmdb里面信息自动link相关的模块,添加|删除监控。很多小的公司没有资产管理系统,但作为监控的负责人应该每天知道上架了哪些新的机器,确保能添加到zabbix监控里面。
首先给大家说一下脚本思路:
1)通过nmap工具扫描网段,扫描出已经使用的ip地址。
2)通过nmap检测已经扫描ip的3389或者22端口是否开放,可以判断那些事windows机器,那些是linux机器。
3)linux下面通过ssh + hostname命令找出linux主机名。
4)windows下面通过nmblookup -a 命令找出windows主机名。
5)用python脚本读扫描结果文件,把主机名写到列表里面。
6)用zabbix python api 调用已经监控的主机名,写到列表里面。
7)两个列表取交集,用for循环判断哪些主机名没有监控。
8)发邮件通知监控负责人。

下面我分享一下我写的Python写的脚本,其中scan_machine.sh是我调用的用Shell写的关于Nmap扫描的脚本,scan_hostname.log是Nmap扫描的结果,里面内容是IP 主机名。

#!/usr/bin/env python#create by:sfzhang 20140820#coding=utf-8import os,sysimport jsonimport urllib2import datetime,timefrom urllib2 import URLErrornmap_cmd = "/shell/machine/scan_machine.sh"def runCmd(command):    global mail_cmd    mail_cmd = '''mail -s "Report on not monitor Hosts of Zabbix" shifeng_zhang88 <p>把脚本添加到crontab,每台会收到关于那些主机没有添加监控的信息。</p><p><img src="https://img.php.cn/upload/article/000/000/009/4314dad72a77933d772a5cba2bba874d-1.png" alt=""></p><p>总结:</p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/00968c3c2c15"   style="max-width:90%" rel="nofollow" target="_blank">Python免费学习笔记(深入)</a>”;</p><p>1)Zabbix API相关信息可以查看官方详细资料。</p><p>2)通过该脚本可以知道那些主机没有添加监控,希望对大家有帮助。</p>