nagios-plugin(mem)

#!/usr/bin/env python

import sys
from optparse import OptionParser
import string

OK=0
WARNING=1
CRITICAL=2
UNKNOWN=3

unit = {‘t‘:2**40,‘g‘:2**30,‘m‘:2**20,‘k‘:2**10,‘b‘:1}

def opt():
    parser = OptionParser(usage="usage: %prog -w WARNING -c CRITICAL")
    parser.add_option("-c", default="100M", action="store", type="string", dest="critical")
    parser.add_option("-w", default="500M", action="store", type="string", dest="warning")
    return parser.parse_args()

def convertUnit(s):
    s = s.lower()
    lastchar = s[-1]
    num = int(s[:-1])
    if lastchar in unit:
        return num*unit[lastchar]
    else:
        return int(s)

def scaleUnit(d):
    for k,v in unit.items():
        num = d / float(v)
        if (0 < num < 2**10):
            return num,k

def getFreeMemory():
    with open(‘/proc/meminfo‘,‘r‘) as fd:
        for line in fd.readlines():
            if line.startswith(‘MemFree‘):
                k, v, u =  line.split()
                return int(v)*1024

def main():
    opts, args = opt()

    w = convertUnit(opts.warning)
    c = convertUnit(opts.critical)

    free_mem =  getFreeMemory()
    
    h_free, h_unit = scaleUnit(free_mem)

    if free_mem > w:
        print "OK, free:%s %s" %  (h_free, h_unit)
        sys.exit(OK)
    elif w >= free_mem > c:
        print "WARNING, free: %s %s" % (h_free, h_unit)
        sys.exit(WARNING)
    elif free_mem <= c:
        print "CRITICAL, free: %s %s" % (h_free, h_unit)
        sys.exit(CRITICAL)
    else:
        print "UNKNONW, free:%s %s" %  (h_free, h_unit)
        sys.exit(UNKNOWN)

if __name__ == "__main__":
    main()
时间: 2024-10-13 01:41:11

nagios-plugin(mem)的相关文章

nagios check_oracle plugin (add check temp tablespace)

#!/bin/sh # # [email protected] # 01/06/2000 # # This Nagios plugin was created to check Oracle status # export ORACLE_SID=test export ORACLE_BASE=/test/u01/app/oracle export ORACLE_UNQNAME=$ORACLE_SID export ORACLE_HOME=$ORACLE_BASE/product/11.2.4/d

完美集群监控组合ganglia和nagios

Ganglia是伯克利开发的一个集群监控软件.可以监视和显示集群中的节点的各种状态信息,比如如:cpu .mem.硬盘利用率, I/O负载.网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现. 而ganglia又依赖于一个web服务器用来显示集群状态,用rrdtool来存储数据和生成曲线图,需要xml解析因此需要expat,配置文件解析需要libconfuse.安装apche的httpd还需要支持php4以上,同时还有一些依赖软件. ganglia作为一款最常用的Linux环境中的监

企业级监控nagios实践

nagios 监控服务应用指南 小区:视频监控,保安 企业工作中为什么要部署监控系统 监控系统相当于哨兵的作用,监控几百台上千台服务器,监控系统非常重要. 监控系统都需要监控 1. 本地资源:负载uptime cpu(top,sar),磁盘(df),内存(free),io(iostat),raid,温度,passwd文件的变化,本地所有文件指纹识别 2. 网络服务:端口,url ,丢包,进程数,网络流量 3. 其他设备: 路由器.交换机端口流量,打印机,windows等 4. 业务数据:用户登录

Nagios利用NSClient++监控Windows主机

一.简介 1.获取更多的NSClient原理,请参考NSClient++官方站点 NSClient++官网:http://www.nsclient.org/ 2.NSClient++与NRPE NSClient++的工作原理 NRPE的工作原理 Nagios对Windows主机的监控主要有三种方法 第一种是NSclient++ 第二种是NRPE 第三种是SNMP(不是很常用) NSclient++与nrpe最大的区别就是: 1.被监控机上安装有nrpe,并且还有插件,最终的监控是由这些插件来进行

nagios原理及配置详解

1.Nagios如何监控Linux机器 NRPE总共由两部分组成:(1).check_nrpe插件,运行在监控主机上.服务器端安装详见:(2).NRPE daemon,运行在远程的linux主机上(通常就是被监控机)客户端具体安装详见: 图1按照上图,整个的监控过程如下:当Nagios需要监控某个远程linux主机的服务或者资源情况时:1).nagios会运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么.2).check_nrpe插件会通过SSL连接到远程的NRPE

Linux学习笔记:Nagios的安装

Nagios的官方Quickstart网址https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/quickstart-fedora.html 关于Nagios与其他服务器的关系图(最简单的描述) 之所以是最简单,是因为这里只是介绍最普遍的部署方式,还有一种集群模式这里暂不研究 方式一: 1)在Nagios服务器上部署Nagios Core套件 2)在Client端上安装Nagios Plugin套件和NRPE套件

nagios监控heartbeat

heartbeat架好后,我们就需要监控起来喽,下面我们就来了解下怎么监控. 首先来了解下几个命令,这几个命令在heartbeat安装后会自动加上,我们的监控脚本就用到这几个命令. [[email protected] libexec]# which cl_status /usr/bin/cl_status [[email protected] libexec]# cl_status listnodes #列出当前heartbeat集群中的节点 192.168.3.1 usvr-211 usvr

我们来看下 监控软件 Nagios 和 cacti 结合

来看下 两者区别 Cacti:在监控方面绘图比较不错,在流量与图型展现比较存在优势 Nagios:在故障分析比较不错,报警机制相对来说比较好,报警机制:邮箱.短信等,而且也比Cacti灵活:同时适用监控大量服务器以及服务器上面大批服务状态是否正常,重点不在图形化,而在状态故障的监控 1.安装相关的软件包 [[email protected] Desktop]# yum -y install httpd php gcc glibc glibc-common gd gd-devel libpng l

在CentOS 6.5下搭建Nagios

Nagios是一款很棒的监控工具,可以帮助你监控你的网络中的服务器等等,并且具有邮件问题提醒等功能,并且可以结合Nagios的硬件来监控机房的温度并实时查询和报警. 免费版的Nagios只能监控7台(记不清了,也可能是6台),但是对于小型的企业,重要的几台服务器被Nagios实时监控应该够用了. 配置环境:1)CentOS 6.5 作为监控主机,IP:10.0.0.30(根据自己公司需要改变) 2)客户机: windows server  2008R2 , windows 7, windows

Nagios监控nginx服务具体过程

1在nginx 服务器上安装nrpe客户端: Nginx的服务须要监控起来.不然万一down了而不及时修复,会影响web应用.例如以下web应用上面启动的nginx后台进程[[email protected] ~]# ps aux|grep nginxnobody   15294  0.0  0.0  22432  3464 ?        S    Jul03   0:05 nginx: worker process      nobody   15295  0.0  0.0  22432