zoukankan      html  css  js  c++  java
  • nagios 监控内存使用情况

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

      #!/bin/bash
      
      if [ "$1" = "-w" ] && [ "$2" -gt "0" ] && [ "$3" = "-c" ] && [ "$4" -gt "0" ]; 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*100)/$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 2)
              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 1)
              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 0)
              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!80!90
              }
      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即可

  • 相关阅读:
    (十六)字段表集合
    (十五)类索引
    (十四)访问标志 Access_flags
    (一)单例模式
    (二十三)IDEA 构建一个springboot工程,以及可能遇到的问题
    (十三)class文件结构:常量池(转)
    Hive优化
    标签整理
    一些学习资料
    jstree树形菜单
  • 原文地址:https://www.cnblogs.com/Mrhuangrui/p/4585615.html
Copyright © 2011-2022 走看看