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
            }
  • 相关阅读:
    每日一水 POJ8道水题
    编译和使用 MySQL C++ Connector
    j2ee model1模型完成分页逻辑的实现 详解!
    DB查询分析器访问EXCEL时,要在表名前后加上中括弧或双引号
    指向结构体变量的指针
    EOSS V3.0 企业运营支撑系统(基于RBAC原理的权限管理)
    MybatisGen1.0 Mybatis JavaBean Mapper生成工具
    The table name must be enclosed in double quotation marks or sqare bracket while accessing EXCEL by
    资源-Android:Android
    软件-开发软件:Android Studio
  • 原文地址:https://www.cnblogs.com/kaituorensheng/p/4881180.html
Copyright © 2011-2022 走看看