本代码linux、window平台通用。

Python3.6编译的话Windows2008会提示缺少运行库,安装VC2015运行库需要提前安装sp1补丁。可直接用Python2.7编译。

linux平台还可以监控load average,我在这里没写。以前方法比较笨,让shell执行uptime,awk过滤。我想用正则匹配第一个浮点数应该很简单。

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#GuoYabin
import os,sys,psutil,time def my_system():
return(sys.platform) def zabbix_bin():
if my_system() == 'win32':
zabbix='C:\\zabbix\\zabbix_sender.exe'
else:
zabbix='/usr/local/zabbix/bin/zabbix_sender'
return(zabbix) def my_ip():
ip_dict=psutil.net_if_addrs().items()
#ip=[]
for key,value in ip_dict:
for i in value:
if '10.1' in i.address:
#ip.append(key,i.address) #返回多IP的字典
return(key,i.address) def my_mem():
my_mem=psutil.virtual_memory()
return (my_mem.percent) def my_cpu():
return (psutil.cpu_percent(interval=0.5)) def my_tcp():
if my_system() == 'win32':
my_tcp=int(os.popen('netstat -n |find /C "ESTAB"').read())
else:
my_tcp=int(os.popen("ss -s |grep -o '[0-9]*[1-9]'|awk 'NR==4'").read())
return(my_tcp) def my_disk():
if my_system() == 'win32':
panfu=psutil.disk_partitions()[1].device #盘符
else:
panfu='/usr/local'
my_disk=psutil.disk_usage(panfu).percent
return(my_disk) def my_network():
old_net_out=psutil.net_io_counters(pernic=True)[my_ip()[0]][0]
old_net_in=psutil.net_io_counters(pernic=True)[my_ip()[0]][1]
time.sleep(1) #这里要浪费1秒了,有更好的办法吗?
new_net_out=psutil.net_io_counters(pernic=True)[my_ip()[0]][0]
new_net_in=psutil.net_io_counters(pernic=True)[my_ip()[0]][1]
net_out=new_net_out - old_net_out
net_in=new_net_in - old_net_in
return(net_out,net_in) if __name__=='__main__':
report_url='10.1.2.61'
zabbix_key=['CPU_usage_rate','Network_In','Network_Out','TCP_Estab','Disk_usage_rate','Memory_usage_rate']
zabbix_value=[my_cpu(),my_network()[1],my_network()[0],my_tcp(),my_disk(),my_mem()]
for i in range(6):
os.system("%s -z %s -s %s -k %s -o %s" %(zabbix_bin(),report_url,my_ip()[1],zabbix_key[i],zabbix_value[i]))

  

  

无耻的求一下赞助

zabbix主动上报的python脚本的更多相关文章

  1. zabbix主动上报mysql数据库内容

    zabbix_sender命令支持主动上报数据,web服务端添加对应机器和采集器即可. 2015年刚接触zabbix时候,用的上报sqlserver脚本是select数据后插入到临时表,bcp下载到本 ...

  2. Zabbix 邮箱告警(Python脚本)

    Python 脚本内容 #!/bin/env python #coding:utf- import smtplib from email.mime.text import MIMEText from ...

  3. 项目上使用的每月1日自动导出Zabbix性能数据的python脚本

    基于zabbix-manager python2.7 #!/usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "life&q ...

  4. 通过python脚本和zabbix配合监控zookeeper的节点数

    通过python脚本和zabbix配合监控zookeeper的节点数 需求描述: 在日常zabbix监控zookeeper的时候,无法通过shell来获取zookeeper的具体节点信息,没有开放具体 ...

  5. zabbix 利用python脚本实现钉钉告警

    Zabbix 利用python脚本实现钉钉告警 1.安装python3.6环境 2.创建python脚本 cd local/zabbix-4.0.3/share/zabbix/alertscripts ...

  6. Zabbix之Python脚本端口自动发现

    Zabbix监控服务端口,可以手动添加配置,但是如果一个服务器上需要监控的端口数较多,那么利用Zabbix自动发现,比较高效,下面是自动发现port的Python脚本. #!/usr/bin/pyth ...

  7. zabbix 调用python脚本监控 磁盘剩余空间(创建模版,创建监控项,创建触发器)

    主要 记录一下  使用zabbix 自己创建模版.监控项.触发器,并调用python脚本. 需求: 监控备份机磁盘剩余空间(windows系统) 一.安装zabbix_agent 比较简单 修改配置文 ...

  8. 使用python脚本配置zabbix发送报警邮件

    #前提得在zabbix_server配置文件中配置触发脚本的目录,例如,我配置的在/usr/local/zabbix/server/scripts目录下 编写python脚本如下 因为我的服务器在腾讯 ...

  9. zabbix增加手机短信、邮件监控的注意要点,SSL邮件发送python脚本

    1.短信接口文档: URL http://xxx.com/interfaces/sendMsg.htm Method POST Description 文字短信调用接口 Request Param L ...

随机推荐

  1. 用 node.js 创建第一个Hello World

    如果我们使用PHP来编写后端的代码时,需要Apache(xampp) 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi.从这个角度看,整个"接收 HTTP ...

  2. 1724: [Usaco2006 Nov]Fence Repair 切割木板

    1724: [Usaco2006 Nov]Fence Repair 切割木板 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 854  Solved: 42 ...

  3. java关于map用来筛选的用法

    我有一个实体 PropTemplateItem{id,名称,父节点,模版id},父节点为root是定义为根节点. 例如数据: 001,颜色,root,123 002,白色,001,123 003,红色 ...

  4. IOS本地日志记录方案

    我们在项目中日志记录这块也算是比较重要的,有时候用户程序出什么问题,光靠服务器的日志还不能准确的找到问题. 现在一般记录日志有几种方式: 1.使用第三方工具来记录日志,如腾讯的Bugly,它是只把程序 ...

  5. html5常用英语单词

    Aabsolute 绝对active 激活的align 对齐alpha 半透明度animation 卡通片绘制auto 自动aside 偏栏 Bbackground 背景bgcolor 背景颜色blo ...

  6. JS中undefined与null的有趣 关系

    今天学习中遇到了一个有意思的问题. var obj = undefined 我们将一个对象设置为undefined typeof(obj)>>undefined 结果是undefined, ...

  7. 初用Linux, 安装Ubuntu16.04+NVIDIA387+CUDA8.0+cudnn5.1+TensorFlow1.0.1

    因为最近Deep Learning十分热门, 装一下TensorFlow学习一下. 本文主要介绍安装流程, 将自己遇到的问题说明出来, 并记录自己如何处理, 原理方面并没有能力解释. 由于本人之前从来 ...

  8. 用Visual Studio Code Debug世界上最好的语言

    前言 这阵子因缘巧合接手了一个辣鸡项目,是用世界上最好的拍黄片写的,项目基本是另一个小伙伴在撸码,我就兼职打杂和发布做点运维的工作. 然后昨天项目上了测试版之后,一用起来Error满天飞了.让小伙伴查 ...

  9. Web Storage

    前面的话 Web存储最初作为HTML5的一部分被定义成API形式,但是后来被剥离出来作为独立的一份标准了.该标准目前还在草案阶段,但其中一部分内容已经被包括IE8在内的所有主流浏览器(可交互地)实现了 ...

  10. 解决在eclipse中写ImageView时有警告的问题

    Eclipse中写了一个android程序其中main.xml中ImageView哪行是个黄叹号!不知道为什么? 解决办法: android:contentDescription="@str ...