1. 监控本机内存
    cd /usr/lib64/nagios/plugins
    touch check_mem.sh

    #!/bin/bash
    
    if [ "$1" = "-w" ] && [ "$2" -gt "" ] && [ "$3" = "-c" ] && [ "$4" -gt "" ]; then
    
            memTotal_b=`free -b |grep Mem |awk '{print $2}'`
    memFree_b=`free -b |grep Mem |awk '{print $4}'`
    memBuffer_b=`free -b |grep Mem |awk '{print $6}'`
    memCache_b=`free -b |grep Mem |awk '{print $7}'` memTotal_m=`free -m |grep Mem |awk '{print $2}'`
    memFree_m=`free -m |grep Mem |awk '{print $4}'`
    memBuffer_m=`free -m |grep Mem |awk '{print $6}'`
    memCache_m=`free -m |grep Mem |awk '{print $7}'` memUsed_b=$(($memTotal_b-$memFree_b-$memBuffer_b-$memCache_b))
    memUsed_m=$(($memTotal_m-$memFree_m-$memBuffer_m-$memCache_m)) memUsedPrc=$((($memUsed_b*)/$memTotal_b)) if [ "$memUsedPrc" -ge "$4" ]; then
    echo "Memory: CRITICAL Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_b;;;; USED=$memUsed_b;;;; CACHE=$memCache_b;;;; BUFFER=$memBuffer_b;;;;"
    $(exit )
    elif [ "$memUsedPrc" -ge "$2" ]; then
    echo "Memory: WARNING Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used!|TOTAL=$memTotal_b;;;; USED=$memUsed_b;;;; CACHE=$memCache_b;;;; BUFFER=$memBuffer_b;;;;"
    $(exit )
    else
    echo "Memory: OK Total: $memTotal_m MB - Used: $memUsed_m MB - $memUsedPrc% used|TOTAL=$memTotal_b;;;; USED=$memUsed_b;;;; CACHE=$memCache_b;;;; BUFFER=$memBuffer_b;;;;"
    $(exit )
    fi else
    echo "check_mem v1.1"
    echo ""
    echo "Usage:"
    echo "check_mem.sh -w <warnlevel> -c <critlevel>"
    echo ""
    echo "warnlevel and critlevel is percentage value without %"
    echo ""
    echo "Copyright (C) 2012 Lukasz Gogolin (lukasz.gogolin@gmail.com)"
    exit
    fi

    check_mem.sh Code

    chmod +x check_mem.sh
    测试check_mem脚本是否能正常使用
    ./check_mem.sh -w 80 -c 90
    修改commands.cfg配置
    vi /etc/nagios/objects/commands.cfg

    define command{
    command_name check_mem
    command_line $USER1$/check_mem.sh -w $ARG1$ -c $ARG2$
    }

    commands.cfg Code

    vi /etc/nagios/objects/localhost.cfg

    define service{
    use local-service,srv-pnp
    host_name localhost
    service_description check_mem
    check_command check_mem!!
    }

    localhost.cfg Code

  2. 监控被监控机内存使用情况
    拷贝check_mem文件到被监控机的/usr/lib64/nagios/plugins目录下
    scp check_mem root@serverip:/usr/lib64/nagios/plugins/
    修改nrpe.cfg
    vi /usr/local/nagios/etc/nrpe.cfg
    增加一行:command[check_mem]=/usr/lib64/nagios/plugins/check_mem.sh -w 80 -c 90  
    回到nagios监控机修改服务项
    vi /etc/nagios/objects/services.cfg
    增加如下监控代码
    define service{
    use generic-service
    host_name Nagios_Centos_Client1
    service_description Memery Monitoring
    check_command check_nrpe!check_mem
    }

    Check_mem Code

    nagios -v nagios.cfg
    重启nagios即可

nagios 监控内存使用情况的更多相关文章

  1. Nagios 监控 Httpd 并发数插件

    工作需要监控Httpd并发数,找不到合适的插件,花时间研究了一下Nagios监控内存的脚本,做了一些修改,完成了脚本.监控内存脚本:http://www.cnblogs.com/Mrhuangrui/ ...

  2. nagios监控实用教程

    nagios监控实用教程 Nagios作为开源网络监视工具,它不但可以有效的监控内存.流量.数据库使用情况.它还可以Windows.Linux主机状态.本专题收录了有关Nagios监控相关文章,供大家 ...

  3. 通过JDK常用工具监控Java进程的内存占用情况

    目录 1 JDK 工具的使用 2 查看 GC 日志信息 3 添加 JMS 远程监控 Tomcat是一款常用的Web容器, 它是运行在 JVM(Java Virtual Machine) 中的一个Jav ...

  4. shell脚本监控系统负载、CPU和内存使用情况

    hostname >>/home/vmuser/xunjian/xj.logdf -lh >>/home/vmuser/xunjian/xj.logtop -b -n 1 | ...

  5. 监控JVM内存使用情况,剩余空间小于2M时报警

    一个简单的类,用来监控JVM内存使用情况,剩余空间小于2M时报警. import java.lang.management.ManagementFactory; import java.lang.ma ...

  6. top命令 Linux查看CPU和内存使用情况,cpu监控之一

    一.top命令 top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要.但是,它的缺点是会消耗很多系统资源. 在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分 ...

  7. 系统服务监控指标--load、CPU利用率、磁盘剩余空间、磁盘I/O、内存使用情况等

    介绍 大型互联网企业的背后,依靠的是成千上万台服务器日夜不停的运转,以支撑其业务的运转.宕机对于互联网企业来说,代价是沉重的,轻则影响用户体验,重则直接影响交易,导致交易下跌,并且给企业声誉造成不可挽 ...

  8. java监控JVM的内存使用情况等

    以下的程序监控参数的代码,有些是从网络上获取的,此处进行一个记录是为了以后如果要用到方便记录. 1.引入jar包,为了获取一些cpu的使用率等信息 <dependency> <gro ...

  9. Nagios监控部署(转)

    转自 http://kyhack.blog.51cto.com/490370/213355 ky.blog 一.nagios简介        nagios是一款用于系统和网络监控的应用程序,它可以在 ...

随机推荐

  1. E. Superhero Battle

    链接 [https://codeforces.com/contest/1141/problem/E] 题意 怪物开始的生命值,然后第i分钟生命值的变化 问什么时候怪物生命值为非正 分析 有一个巨大的坑 ...

  2. ImportError: DLL load failed: 找不到指定的模块。

    这里用的anacoda,报错是找不到DLL,可能是该DLL的环境变量没配置,配置系统环境变量: 重启一下pycharm,OK.

  3. Create a toolwindow for the VBA editor with .NET(C#).

    原始出处:http://www.cnblogs.com/Charltsing/p/VBEtoolwindow.html 最近有人问起使用C#在VBE插件中创建toolwindow的事情,由于VBE窗口 ...

  4. Vector源码分析

    Vector与ArrayList底层实现基本类似,底层都是用数组实现的,最大的不同是Vector是线程安全的.ArrayList源码分析请参考ArrayList源码分析 一.源码分析 基于jdk1.7 ...

  5. E: 无法打开锁文件 /var/lib/dpkg/lock-frontend - open (13: 权限不够)E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),请查看您是否正以 root 用户运行?

    一.解决方案 修改root密码,以root身份安装 sudo pwdroot root  # 输入新密码即可

  6. Docker常规防止容器自动退出

    [root@server-crm /]# docker attach songheng [root@fc0a891e1861 /]# cat /bin/auto_service.sh #!/bin/s ...

  7. React Native之倒计时组件的实现(ios android)

    React Native之倒计时组件的实现(ios android) 一,需求分析 1,app需实现类似于淘宝的活动倒计时,并在倒计时结束时,活动也结束. 2,实现订单倒计时,并在倒计时结束时,订单关 ...

  8. oracle创建表空间、创建用户、授权角色和导入导出用户数据

    使用数据库管理员身份登录 -- log as sysdba sqlplus / as sysdba; 创建临时表空间 -- create temporary tablespace create tem ...

  9. 【学亮IT手记】MySql行列转换案例

    create table score( name ), math int, english int ); ,); ,); ,); ,); SHOW tables; SELECT * from scor ...

  10. Oracle行列转换case when then方法案例

    select (select name from t_area where id=areaid) 区域, end) 一月, end) 二月, end) 三月, end) 四月, end) 五月, en ...