zoukankan      html  css  js  c++  java
  • nagios监控linux主机监控内存脚本

    说明

    工作包括两部分监控端(一二三)和被监控端(四)

    一、nrpe.cfg中添加脚本

    nrpe.cfg中添加命令索引

    command[check_used_mem]=/usr/local/nagios/libexec/check_used_mem.sh 80 90
    

    说明:实际内存使用量超过80%警告;超过90%严重警告

    二、添加具体脚本

    参考脚本check_used_mem.sh

    warn=$1
    critical=$2
    all=`free | sed -n '2p' | awk '{print $2}'`
    used=`free | sed -n '3p' | awk '{print $3}'`
    let "c=$used*100/$all"
    if [[ $c -lt $warn ]]
    then 
        echo "used mem/total < $warn%  [used:$used, total:$total:$all]"
        exit 0
    elif [[ $c -lt $critical ]]
    then
        echo "used mem/total ≥$warn%  [used:$used, total:$total:$all]"
        exit 1
    else
        echo "used mem/total ≥$critical%  [used:$used, total:$total:$all]"
        exit 2
    fi

    解释:

    1. $1、$2分别指输入的第一、二个参数,比如:

    del.sh脚本内容为

    #/bin/bash
    echo $1
    • sh del.sh  a                        #第一个参数是a
    • chmod a+x  ./del.sh a         #第一个参数是a

    2. free用来查看内存的使用情况

    [root@xen_202_12 /]# free -m
                 total       used       free     shared    buffers     cached
    Mem:          3072       2459        612          0        207       1803
    -/+ buffers/cache:        447       2624
    Swap:         1913          0       1913
    • total 内存总数: 3072
    • used 已经使用的内存数: 2459
    • free 空闲的内存数: 612
    • shared 当前已经废弃不用,总是0
    • buffers: Buffer Cache内存数: 13220
    • cached: Page Cache内存数: 2720160

    关系:total = used + free

    第3行:
    -/+ buffers/cache的意思:
    -buffers/cache 的内存数: 447 (等于第1行的 used - buffers - cached)
    +buffers/cache 的内存数: 2624 (等于第1行的 free + buffers + cached)
    注:此处的内存数在用上面式子计算后,在大小上有一点点出入(还不知道是什么原因)。

    可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。

    3. sed -n '2p'指的是查找第二行

    4. awk '{print $2} 指的是第二列,其中默认以空格分隔。可以利用-F指定分隔符

    $echo 1b234b56b7 | awk -F 'b' '{print $2}'
    234

    5. 实用[[]],<用来比较字符串;-lt用来比较数字

    三、重启nrpe

    /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
    

    四、在监控端添加监控项

    define service {
            use                             generic-service
            host_name                       100.61.73.2,100,61,73.3
            service_description             内存
            check_command                   check_nrpe!check_used_mem
            notifications_enabled           1
            }
  • 相关阅读:
    Win7专业版系统下事件绑定的Command事件不执行
    Win8系统下报错:无法将字符串“*”转换为Length.
    C#创建job计划用于调用存储过程刷新数据
    with语句
    for in语句与for in语句输入顺序问题
    HighCharts日期及数值格式化
    在web.config文件中,增加“type="APP.Modules.CommandModule,CommandModules"”节点会导致awesome font字体图标显示为方框框
    String、StringBuffer与StringBuilder之间区别
    java使用maven创建springmvc web项目
    手机APP下单支付序列图
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/4881180.html
Copyright © 2011-2022 走看看