文档章节

nagios插件check_io_utils.py

jastme
 jastme
发布于 2014/06/17 16:15
字数 324
阅读 414
收藏 3
#!/usr/bin/python
# -*- coding:utf-8 -*-
from optparse import OptionParser
import subprocess
import sys
"""
    Nagios plugin to report the io utils by shell command iostat
    by jastme
"""
parser = OptionParser(usage="%prog -w <warning threshold> -c <critical threshold> [ -h ]",version="%prog ")

parser.add_option("-d", "--partion",action="store", type="string", dest="partion", help="choose the parion from the disk")

parser.add_option("-w", "--warning",action="store", type="string", dest="warn_threshold", help="Warning threshold in percentage")

parser.add_option("-c", "--critical",action="store", type="string", dest="crit_threshold", help="Critical threshold in percentage")

(options, args) = parser.parse_args()

def ioutil():
    utils=subprocess.Popen("iostat -x 1 2 -d %s | grep %s | awk 'NR==2{print $NF}'" %(options.partion,options.partion),shell=True,stdout=subprocess.PIPE)
    utils.wait()
    utilss=utils.communicate()[0][:-1]
    return eval(utilss)

def jastme():
    util=ioutil()
    if not options.crit_threshold:
        print "UNKNOWN: Missing critical threshold value."
        sys.exit(3)
    if not options.warn_threshold:
        print "UNKNOWN: Missing warning threshold value."
        sys.exit(3)
    if int(util) >= int(options.crit_threshold):
        print "Criticl, the partion %s IO_utils is nearly %s%% | io_utils=%s%%;%s;%s;0" %(options.partion,util,util,options.warn_threshold,options.crit_threshold)
        sys.exit(2)

    elif int(options.crit_threshold) > int(util) >= int(options.warn_threshold):
        print "Warning, the partion %s IO_utils is nearly %s%% | io_utils=%s%%;%s;%s;0" %(options.partion,util,util,options.warn_threshold,options.crit_threshold)
        sys.exit(1)

    else:
        print "OK, the partion %s IO_utils is nearly %s%% | io_utils=%s%%;%s;%s;0" %(options.partion,util,util,options.warn_threshold,options.crit_threshold)
        sys.exit(0)

if __name__ == '__main__':
    jastme()

  1. 修改了一个bug,iostat命令第一次取的值是系统从重启到现在的平均值,所以我们选择第2次的值,这样才准确。

  2. 修复一个bug.  用eval来返回值,然后用整数来比较,字符串比较有BUG


© 著作权归作者所有

共有 人打赏支持
jastme
粉丝 36
博文 135
码字总数 61896
作品 0
成都
程序员
私信 提问
加载中

评论(2)

jastme
jastme

引用来自“perofu”的评论

这里"iostat -x -d %s | grep %s | awk '{print $14}'"的$14,明显不对,换成$NF会比较好
root@app10C:/usr/local/nagios/etc/objects# iostat -x -d sda1 | grep sda1 | awk '{print $14}' 0.01 这是可以的 $NF也行,你这个科学点,谢谢哈。
perofu
perofu
这里"iostat -x -d %s | grep %s | awk '{print $14}'"的$14,明显不对,换成$NF会比较好
Centos 7安装与配置nagios监控(一)

目 录 序言(必备知识) 一、安装规划 1.1系统环境 1.2所需软件包 二、配置安装环境 2.1同步时间 2.2禁用SElinux 2.3 xftp上传软件包 2.4安装邮件服务 三、监控主机安装 3.1安装nagios的运行环...

SEianG
2017/04/15
0
0
check_oracle_health

1、下载checkoraclehealth,从http://labs.consol.de/wp-content/uploads/2009/09/checkoraclehealth-1.6.3.tar.gz下载源文件。 #tar -zxvf checkoraclehealth-1.6.3.tar.gz #cd checkoracl......

shen2099201
2013/07/25
0
0
监控利器Nagios之一:监控本地NFS和外部HTTP、MySQL服务

监控利器Nagios之一:监控本地NFS和外部HTTP、MySQL服务 Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务...

于学康
2017/06/20
0
0
分布式icinga2安装与使用

目标 配置分布式的icinga2监控系统。分布式监控适用于服务器遍布在多个区域,且需要一个master做统一管理。 搭建环境 服务器 系统: ubuntu 15.04/ubuntu 14.04 icinga2主节点: 192.168.19.77...

葫芦咩
2015/05/18
0
0
监控利器Nagios之二:Nagios的细致介绍和监控外部服务器的私有信息

监控利器Nagios之二:Nagios的细致介绍和监控外部服务器的私有信息 Nagios的监控对象的定义和对被监控设备的动作命令是分开的。一个是主程序包,一个是插件包。先来说说nagios主程序nagios-...

于学康
2017/06/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jquery通过id显示隐藏

var $div3 = $('#div3'); 显示 $div3.show(); 隐藏 $div3.hide();

yan_liu
今天
3
0
《乱世佳人》读书笔记及相关感悟3900字

《乱世佳人》读书笔记及相关感悟3900字: 之前一直听「荔枝」,后来不知怎的转向了「喜马拉雅」,一听就是三年。上班的时候听房产,买房了以后听装修,兴之所至时听旅行,分手后听亲密关系,...

原创小博客
今天
3
0
大数据教程(9.6)map端join实现

上一篇文章讲了mapreduce配合实现join,本节博主将讲述在map端的join实现; 一、需求 实现两个“表”的join操作,其中一个表数据量小,一个表很大,这种场景在实际中非常常见,比如“订单日志...

em_aaron
今天
3
0
cookie与session详解

session与cookie是什么? session与cookie属于一种会话控制技术.常用在身份识别,登录验证,数据传输等.举个例子,就像我们去超市买东西结账的时候,我们要拿出我们的会员卡才会获取优惠.这时...

士兵7
今天
3
0
十万个为什么之为什么大家都说dubbo

Dubbo是什么? 使用背景 dubbo为什么这么流行, 为什么大家都这么喜欢用dubbo; 通过了解分布式开发了解到, 为适应访问量暴增,业务拆分后, 子应用部署在多台服务器上,而多台服务器通过可以通过d...

尾生
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部