文档章节

nagios插件check_io_utils.py

jastme
 jastme
发布于 2014/06/17 16:15
字数 324
阅读 404
收藏 3
点赞 0
评论 2
#!/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
粉丝 35
博文 125
码字总数 59916
作品 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
分布式icinga2安装与使用

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

葫芦咩
2015/05/18
0
0
监控利器Nagios之一:监控本地NFS和外部HTTP、MySQL服务

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

于学康
2017/06/20
0
0
nagios运维手册

nagios运维手册 1 前言 1.1 系统功能概述 Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出...

旋风桃子
2017/08/25
0
0
监控利器Nagios之二:Nagios的细致介绍和监控外部服务器的私有信息

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

于学康
2017/06/22
0
0
用SHELL脚本自动化安装Nagios服务器端和客户端的

公司的一个项目网站,上线几天就因为磁盘暴满而出了问题,由于其服务器都集中在某一IDC机房内,所以考虑部署套Nagios监控报警系统,考虑到其它项目网站可能有类似需求,所以将其安装过程整理...

余二五
2017/11/15
0
0
linux学习笔记-nagios监控的简单配置

第1章 nagios监控工具介绍及原理 1.1nagios监控工具介绍与优势 Nagios是一款开源的网络及服务的监控工具,其功能强大,灵活性强。能有效监控Window,Linux和Unix的主机各种状态信息,交换机、...

呀哈喽
2017/11/20
0
0
nagios/passive_check

---layout: post title: "nagios/passive_check" 术语 被监控机(MC:Monitor Client) 监控机 (MS:Monitor Server) 被动模式工作原理: 在被 MC 上面,使用nagios-plugins提供的插件,得...

行者深蓝
2014/10/10
0
0
监控之--使用NPRE监控Linux主机

作为Nagios的一个扩展功能插件,NRPE可在远程的linux主机上执行的插件程序。远程的liux服务器通过安装NRPE及Nagios的相关插件程序可以向Nagios服务端监控平台提供自身的情况例如:CPU负载,内...

CARYFLASH
2017/11/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

线程安全,底层实现原理和JMM

让多线程下的类安全起来:无状态、加锁、让类不可变、栈封闭(方法封装) 、安全的发布对象(不暴露成员) 死锁 一定发生在多个线程争夺多个资源里的情况下,发生的原因是每个线程拿到了某个(某...

这很耳东先生
5分钟前
0
0
MyBatis源码解读之延迟加载

1. 目的 本文主要解读MyBatis 延迟加载实现原理 2. 延迟加载如何使用 Setting 参数配置 设置参数 描述 有效值 默认值 lazyLoadingEnabled 延迟加载的全局开关。当开启时,所有关联对象都会延...

无忌
11分钟前
0
0
javascript 类变量的实现

代码如下: function echo(){ for(let i=0;i<arguments.length;i++) console.log(arguments[i]);}function extend(o, p){for (prop in p) {o[prop] = p[prop]}retur......

backbye
15分钟前
0
2
编程语言对比分析:Python与Java和JavaScript(图)

编程语言对比分析:Python与Java和JavaScript(图): 凭什么说“Python 太慢,Java 太笨拙,我讨厌 JavaScript”?[图] 编程语言生而为何? 我们人类从原始社会就是用语言表达自己,互相沟通...

原创小博客
24分钟前
0
0
Akka构建Reactive应用《one》

看到这Akka的官网,描述使用java或者scala构建响应式,并发和分布式应用更加简单,听着很高级的样子,下面的小字写着消息驱动,但是在quickstart里面又写容错事件驱动,就是这么钻牛角尖。 ...

woshixin
35分钟前
0
0
ffmpeg源码分析 (四)

io_open 承接上一篇,对于avformat_open_input的分析还差其中非常重要的一步,就是io_open,该函数用于打开FFmpeg的输入输出文件。 在init_input中有这么一句 if ((ret = s->io_open(s, &s-...

街角的小丑
37分钟前
0
0
String,StringBuffer ,StringBuilder的区别

不同点 一、基类不同 StringBuffer、StringBuilder 都继承自AbStractStringBuilder,String 直接继承自 Object 2、底层容器“不同” 虽然底层都是字符数组,但是String的是final修饰的不可变...

不开心的时候不要学习
52分钟前
0
0
nodejs 文件操作

写文件code // 加载文件模块var fs = require("fs");var content = 'Hello World, 你好世界!';//params 文件名,内容,编码,回调fs.writeFile('./hello.txt',content,'utf8',function (er......

yanhl
54分钟前
0
0
SpringBoot mybits 查询为0条数据 但是在Navicat 中可以查询到数据

1.页面请求: 数据库查询: 2018-07-16 17:56:25.054 DEBUG 17312 --- [nio-9010-exec-3] c.s.h.m.C.selectSelective : ==> Preparing: select id, card_number, customer_id, customer_nam......

kuchawyz
今天
0
0
译:Self-Modifying cod 和cacheflush

date: 2014-11-26 09:53 翻译自: http://community.arm.com/groups/processors/blog/2010/02/17/caches-and-self-modifying-code Cache处在CPU核心与内存存储器之间,它给我们的感觉是,它具......

我叫半桶水
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部