网卡监控脚本--nagios
#!/usr/bin/python26
#filename:check_traffic.py
#the python script function for monitoring network traffic.
'''
--help
example:
python26 check_traffic.py dev in out checknum
python26 check_traffic.py eth0 30000 30000 checknum
the limit unit is KB
'''
import sys,os,time
import psutil
if len(sys.argv) != 5:
print __doc__
sys.exit(3)
dev=sys.argv[1]
value_in=int(sys.argv[2])
value_out=int(sys.argv[3])
lineNum=sys.argv[4]
tmpFile=dev+"_traffic.log"
unit="KB/s"
###get script pwd
binPwd=os.path.dirname(os.path.realpath(__file__))
os.chdir(binPwd)
###get current network traffic
def getCurrentTraffic(dev):
device=dev
current=psutil.network_io_counters(pernic=True)
time.sleep(1)
current1=psutil.network_io_counters(pernic=True)
c_send=current[device][0]
c_rev=current[device][1]
sc_send=current1[device][0]
sc_rev=current1[device][1]
send=(sc_send-c_send)/1024
rev=(sc_rev-c_rev)/1024
witeLog(send,rev)
return send,rev
###write log file the network traffic
def witeLog(send,rev):
now=time.strftime("%Y-%m-%d %X")
f=file(tmpFile,'a')
f.write("%s,%s,%s\n" % (rev,send,now))
f.close()
def isTraffic():
X=[]
Y=[]
if len(open(tmpFile,'rU').readlines()) < int(lineNum):
print "The check num too less."
sys.exit(0)
lastData=os.popen("cat "+tmpFile+"|tail -n " + lineNum)
for tmp in lastData.readlines():
X.append(int(tmp.split(",")[0].strip('\n')))
Y.append(int(tmp.split(",")[1].strip('\n')))
X.sort()
Y.sort()
return X[0],Y[0]
###check tmpFile size
def isTmpFileSzie():
os.system("touch %s" % tmpFile)
if os.path.getsize(tmpFile)/1024 > 65535:
os.remove(tmpFile)
###check network traffic the value of is normal
def monitor():
getCurrentTraffic(dev)
isCheck=isTraffic()
if isCheck[0] < value_in and isCheck[1] < value_out:
print "network traffic ok, in: %s %s out: %s %s" % (isCheck[0],unit,isCheck[1],unit)
sys.exit(0)
elif isCheck[0] >= value_in or isCheck[1] >= value_out:
print "network traffic warning, in: %s %s out: %s %s" % (isCheck[0],unit,isCheck[1],unit)
sys.exit(1)
else:
print "UNKNOWN."
sys.exit(3)
def main():
isTmpFileSzie()
monitor()
if __name__=='__main__':
main()
网卡监控脚本--nagios的更多相关文章
- centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课
centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobacku ...
- nagios和zabbix自定义监控脚本
一. 自定义nagios监控脚本1. 在客户端上创建脚本/usr/local/nagios/libexec/check_disk.shvim /usr/local/nagios/libexec/ch ...
- [工具开发] keepalived使用nagios监控脚本
最近在做开发和办公环境的高可用,采用的是keepalived:keepalived基于Linux内核支持的LVS,既能实现高可用,又能实现负载均衡,非常实用. keepalived监控服务状态时可以用 ...
- Linux下针对服务器网卡流量和磁盘的监控脚本
1)实时监控网卡流量的通用脚本: [root@ceph-node1 ~]# cat /root/net_monit.sh #!/bin/bash PATH=/bin:/usr/bin:/sbin:/u ...
- Python 监控脚本(硬盘、cpu、内存、网卡、进程)
#磁盘使用率disk = psutil.disk_partitions()for i in disk: print "磁盘:%s 分区格式:%s"%(i.device,i ...
- 自定义nagios监控脚本---磁盘检测
自定义nagios监控脚本---磁盘检测 1. 在客户端上创建脚本/usr/local/nagios/libexec/check_disk.shvim /usr/local/nagios/libexe ...
- nginx+keepalived主辅切换(监控脚本在keepalived.conf中执行)
以前写过一篇,nginx+keepalived 双机互备的文章,写那篇文章的时候没有想过如果apache或者nginx 挂了,而 keepalived 或者 机器没有死,那么主辅是不会切换的,今天就研 ...
- 【不积跬步,无以致千里】五个常用的Linux监控脚本代码
为大家提供五个常用Linux监控脚本(查看主机网卡流量.系统状况监控.监控主机的磁盘空间,当使用空间超过90%就通过发mail来发警告.监控CPU和内存的使用情况.全方位监控主机),有需要的朋友不妨看 ...
- linux系统CPU,内存,磁盘,网络流量监控脚本
前序 1,#cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2,#vmstat –s 或者#vmstat 虚拟内存统计 3, #cat ...
随机推荐
- python学习--大数据与科学计算第三方库简介
大数据与科学计算 库名称 简介 pycuda/opencl GPU高性能并发计算 Pandas python实现的类似R语言的数据统计.分析平台.基于NumPy和Matplotlib开发的,主要用于 ...
- JAVA设计模式工厂模式
工厂模式: – 实现了创建者和调用者的分离. – 详细分类: • 简单工厂模式 • 工厂方法模式 • 抽象工厂模式• 面向对象设计的基本原则: – OCP(开闭原则,Open-Closed Princ ...
- python排序 基数排序
算法思想 基数排序通过按位比较(一般从最低位开始)将元素按照最低位的数放到10个桶中,当所有的元素都这样被处理一次后,在按从0到9的顺序将每个桶的元素再取出来(不关注其他位的,只关注当前位的)这样就完 ...
- css1.0~3.0背景图使用多张折叠的概念与方法
需求:使用多张图片作为页面的背景图: 首先需要了解background的属性以及细节知识:https://www.cnblogs.com/chenglj/p/7372996.html backgrou ...
- 【案例】大型摩托制造企业如何高效排产?看APS系统如何帮忙
江门市大长江集团有限公司(下文简称,大长江集团)创建于1991年11月,是豪爵控股下属子公司. 大长江生产计划管理从最初的电子表格Excel 公式辅助计算,发展到按公司业务需求,利用Excel VBA ...
- Linux的权限管理操作-Linux从入门到精通第七天(非原创)
文章大纲 一.权限概述二.权限设置三.属主与属组设置四.扩展五.学习资料下载六.参考文章 一.权限概述 总述:Linux系统一般将文件可存/取访问的身份分为3个类别:owner.group.other ...
- Linux操作系统的打包/归档工具介绍
Linux操作系统的打包/归档工具介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- 如何使用Activator.CreateInstance创建一个列表<T>,其中T在运行时是未知的?
参考网址:https://cloud.tencent.com/developer/ask/185965 using System; using System.Collections.Generic; ...
- 安装Visual Studio 时窗口闪过就退出
双击安装文件,窗口闪了下就退出了. 解决方法:控制面板 ———程序——程序和功能——打开或关闭Windows功能——关闭NET相关框架. 然后再次安装即可. 参考文献: VS安装程序一闪而过
- 《MySQL性能优化篇》阅读笔记
建表的时候,不要用null赋默认值,如:字符串的设置'',数据类型的设为0,不要将null设为默认值. 在MySQL中没有 full [outer] join,用union代替 各种 JOIN SQL ...