当前位置: 代码迷 >> 综合 >> nagios 监控内存-增加新插件方法
  详细解决方案

nagios 监控内存-增加新插件方法

热度:36   发布时间:2023-12-18 06:10:00.0

被监控端

1 在nagios-plugins-nrpe安装目录(如/usr/lib64/nagios/plugins/)添加插件check_mem.sh


[plain]  view plain copy
  1. #!/bin/bash  
  2. USAGE="`basename $0` [-w|--warning]<percent free> [-c|--critical]<percent free>"  
  3. THRESHOLD_USAGE="WARNING threshold must be greater than CRITICAL: `basename $0` $*"  
  4. calc=/tmp/memcalc  
  5. percent_free=/tmp/mempercent  
  6. critical=""  
  7. warning=""  
  8. STATE_OK=0  
  9. STATE_WARNING=1  
  10. STATE_CRITICAL=2  
  11. STATE_UNKNOWN=3  
  12. # print usage  
  13. if [[ $# -lt 4 ]]  
  14. then  
  15.         echo ""  
  16.         echo "Wrong Syntax: `basename $0` $*"  
  17.         echo ""  
  18.         echo "Usage: $USAGE"  
  19.         echo ""  
  20.         exit 0  
  21. fi  
  22. # read input  
  23. while [[ $# -gt 0 ]]  
  24.   do  
  25.         case "$1" in  
  26.                -w|--warning)  
  27.                shift  
  28.                warning=$1  
  29.         ;;  
  30.                -c|--critical)  
  31.                shift  
  32.                critical=$1  
  33.         ;;  
  34.         esac  
  35.         shift  
  36.   done  
  37.   
  38. # verify input  
  39. if [[ $warning -eq $critical || $warning -lt $critical ]]  
  40. then  
  41.         echo ""  
  42.         echo "$THRESHOLD_USAGE"  
  43.         echo ""  
  44.         echo "Usage: $USAGE"  
  45.         echo ""  
  46.         exit 0  
  47. fi  
  48. # Total memory available  
  49. total=`free -m | head -2 |tail -1 |gawk '{print $2}'`  
  50. # Total memory used  
  51. used=`free -m | head -2 |tail -1 |gawk '{print $3}'`  
  52. # Calc total minus used  
  53. free=`free -m | head -2 |tail -1 |gawk '{print $2-$3}'`  
  54. # normal values  
  55. #echo "$total"MB total  
  56. #echo "$used"MB used  
  57. #echo "$free"MB free  
  58. # make it into % percent free = ((free mem / total mem) * 100)  
  59. echo "5" > $calc # decimal accuracy  
  60. echo "k" >> $calc # commit  
  61. echo "100" >> $calc # multiply  
  62. echo "$free" >> $calc # division integer  
  63. echo "$total" >> $calc # division integer  
  64. echo "/" >> $calc # division sign  
  65. echo "*" >> $calc # multiplication sign  
  66. echo "p" >> $calc # print  
  67. percent=`/usr/bin/dc $calc|/bin/sed 's/^\./0./'|/usr/bin/tr "." " "|/usr/bin/gawk {'print $1'}`  
  68. #percent1=`/usr/bin/dc $calc`  
  69. #echo "$percent1"  
  70. if [[ "$percent" -le  $critical ]]  
  71.         then  
  72.                 echo "CRITICAL - $free MB ($percent%) Free Memory"  
  73.                 exit 2  
  74. fi  
  75. if [[ "$percent" -le  $warning ]]  
  76.         then  
  77.                 echo "WARNING - $free MB ($percent%) Free Memory"  
  78.                 exit 1  
  79. fi  
  80. if [[ "$percent" -gt  $warning ]]  
  81.         then  
  82.                 echo "OK - $free MB ($percent%) Free Memory"  
  83.                 exit 0  
  84. fi  

2.  chmod a+x   check_mem.sh


3. vi /etc/nagios/nrpe.cfg  增加command

command[check_mem]=/usr/lib64/nagios/plugins/check_mem.sh -w 10 -c 5


4. 在nagios服务器端/etc/nagios/objects/XXX.cfg添加服务

[plain]  view plain copy
  1. define service{  
  2. use generic-service  
  3. host_name 8.25.218.26  
  4. service_description check_mem  
  5. max_check_attempts 4  
  6. normal_check_interval 3  
  7. retry_check_interval 2  
  8. check_command check_nrpe!check_mem  
  9. }  

5. 验证配置: nagios  -v /etc/nagios/nagios.cfg


6. 重启nagios:   /etc/rc.d/init.d/nagios restart