nagios 自訂外掛程式demo

來源:互聯網
上載者:User

標籤:

#!/bin/bashloadavg=$( uptime | awk -F: ‘{print $4}‘ | xargs )load1int=$( echo $loadavg | cut -d "." -f 1 )load5int=$( echo $loadavg | awk -F, ‘{print $2}‘ | xargs | cut -d "." -f 1 )load15int=$( echo $loadavg | awk -F, ‘{print $3}‘ | xargs | cut -d "." -f 1 )load1=$( echo $loadavg | awk -F, ‘{print $1}‘ )load5=$( echo $loadavg | awk -F, ‘{print $2}‘ )load15=$( echo $loadavg | awk -F, ‘{print $3}‘ )output="Load Average: $loadavg | Load_1min=$load1, Load_5min=$load5, Load_15min=$load15" if [ $load1int -le 1 -a $load5int -le 1 -a $load15int -le 1 ]then    echo "OK- $output"    exit 0elif [ $load1int -le 2 -a $load5int -le 2 -a $load15int -le 2 ]then    echo "WARNING- $output"    exit 1elif [ $load1int -gt 2 -a $load5int -gt 2 -a $load15int -gt 2 ]then    echo "CRITICAL- $output"    exit 2elseecho "UNKNOWN- $output"exit 3fi#!/bin/ksh################################################################################# Sample Nagios plugin to monitor free memory on the local machine             ## Author: Daniele Mazzocchio (http://www.kernel-panic.it/)                     #################################################################################VERSION="Version 1.0"AUTHOR="(c) 2007-2009 Daniele Mazzocchio ([email protected])"PROGNAME=`/usr/bin/basename $0`# ConstantsBYTES_IN_MB=$(( 1024 * 1024 ))KB_IN_MB=1024# Exit codesSTATE_OK=0STATE_WARNING=1STATE_CRITICAL=2STATE_UNKNOWN=3# Helper functions #############################################################function print_revision {   # Print the revision number   echo "$PROGNAME - $VERSION"}function print_usage {   # Print a short usage statement   echo "Usage: $PROGNAME [-v] -w <limit> -c <limit>"}function print_help {   # Print detailed help information   print_revision   echo "$AUTHOR\n\nCheck free memory on local machine\n"   print_usage   /bin/cat <<__EOTOptions:-h   Print detailed help screen-V   Print version information-w INTEGER   Exit with WARNING status if less than INTEGER MB of memory are free-w PERCENT%   Exit with WARNING status if less than PERCENT of memory is free-c INTEGER   Exit with CRITICAL status if less than INTEGER MB of memory are free-c PERCENT%   Exit with CRITICAL status if less than PERCENT of memory is free-v   Verbose output__EOT}# Main ########################################################################## Total memory size (in MB)tot_mem=$(( `/sbin/sysctl -n hw.physmem` / BYTES_IN_MB))# Free memory size (in MB)free_mem=$(( `/usr/bin/vmstat | /usr/bin/tail -1 | /usr/bin/awk ‘{ print $5 }‘` / KB_IN_MB ))# Free memory size (in percentage)free_mem_perc=$(( free_mem * 100 / tot_mem ))# Verbosity levelverbosity=0# Warning thresholdthresh_warn=# Critical thresholdthresh_crit=# Parse command line optionswhile [ "$1" ]; do   case "$1" in       -h | --help)           print_help           exit $STATE_OK           ;;       -V | --version)           print_revision           exit $STATE_OK           ;;       -v | --verbose)           : $(( verbosity++ ))           shift           ;;       -w | --warning | -c | --critical)           if [[ -z "$2" || "$2" = -* ]]; then               # Threshold not provided               echo "$PROGNAME: Option ‘$1‘ requires an argument"               print_usage               exit $STATE_UNKNOWN           elif [[ "$2" = +([0-9]) ]]; then               # Threshold is a number (MB)               thresh=$2           elif [[ "$2" = +([0-9])% ]]; then               # Threshold is a percentage               thresh=$(( tot_mem * ${2%\%} / 100 ))           else               # Threshold is neither a number nor a percentage               echo "$PROGNAME: Threshold must be integer or percentage"               print_usage               exit $STATE_UNKNOWN           fi           [[ "$1" = *-w* ]] && thresh_warn=$thresh || thresh_crit=$thresh           shift 2           ;;       -?)           print_usage           exit $STATE_OK           ;;       *)           echo "$PROGNAME: Invalid option ‘$1‘"           print_usage           exit $STATE_UNKNOWN           ;;   esacdoneif [[ -z "$thresh_warn" || -z "$thresh_crit" ]]; then   # One or both thresholds were not specified   echo "$PROGNAME: Threshold not set"   print_usage   exit $STATE_UNKNOWNelif [[ "$thresh_crit" -gt "$thresh_warn" ]]; then   # The warning threshold must be greater than the critical threshold   echo "$PROGNAME: Warning free space should be more than critical free space"   print_usage   exit $STATE_UNKNOWNfiif [[ "$verbosity" -ge 2 ]]; then   # Print debugging information   /bin/cat <<__EOTDebugging information:  Warning threshold: $thresh_warn MB  Critical threshold: $thresh_crit MB  Verbosity level: $verbosity  Total memory: $tot_mem MB  Free memory: $free_mem MB ($free_mem_perc%)__EOTfiif [[ "$free_mem" -lt "$thresh_crit" ]]; then   # Free memory is less than the critical threshold   echo "MEMORY CRITICAL - $free_mem_perc% free ($free_mem MB out of $tot_mem MB)"   exit $STATE_CRITICALelif [[ "$free_mem" -lt "$thresh_warn" ]]; then   # Free memory is less than the warning threshold   echo "MEMORY WARNING - $free_mem_perc% free ($free_mem MB out of $tot_mem MB)"   exit $STATE_WARNINGelse   # There‘s enough free memory!   echo "MEMORY OK - $free_mem_perc% free ($free_mem MB out of $tot_mem MB)"   exit $STATE_OKfi

nagios 自訂外掛程式demo

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.