} OK if ($ exit_val eq $ ERRORS { OK }); (defined ($ o_perf)) { | Load_1_min=$ load [0]%; $ o_warnL [0]; $ o_critL [0] raquo ;; load_5_min=$ load [1]%; $ o_warnL [1]; $ o_critL [1] raquo ;; laquo ; load_15_min=$ load [2]%; $ o_warnL [2]; $ o_critL [2] n raquo ;;
} else { n raquo ;;
}
$ exit_val;
}
########## Standard cpu usage check ############
# Get desctiption table $ resultat=(Net :: SNMP- gt; VERSION lt; 4)?
$ session- gt; get_table ($ base_proc)
: $ session- gt; get_table (Baseoid= gt; $ base_proc);
(! defined ($ resultat)) {( ERROR: Description table:% s. n raquo ;, $ session- gt; error);
$ session- gt; close; $ ERRORS { UNKNOWN };
}
$ session- gt; close;
($ cpu_used, $ ncpu)=(0,0); my $ key (keys% $ resultat) {( OID: $ key, Desc: $$ resultat {$ key} raquo ;); ($ key=~/$ proc_load /) {
$ cpu_used +=$$ resultat {$ key};
$ ncpu ++;
}
}
($ ncpu == 0) { Can not find CPU usage information: UNKNOWN n raquo ;; $ ERRORS { UNKNOWN };
}
$ cpu_used /=$ ncpu; $ ncpu CPU, raquo ;, $ ncpu == 1? load : Laquo; average load raquo ;; (% .1f %% , $ cpu_used);
$ exit_val=$ ERRORS { OK };
($ cpu_used gt; $ o_crit) { gt; $ o_crit%: CRITICAL raquo ;;
$ exit_val=$ ERRORS { CRITICAL };
} else {($ cpu_used gt; $ o_warn) { gt; $ o_warn%: WARNING raquo ;;
$ exit_val=$ ERRORS { WARNING };
}
} lt; $ o_warn%: OK if ($ exit_val eq $ ERRORS { OK });
(defined ($ o_perf))? | Cpu_prct_used=$ cpu_used%; $ o_warn; $ o_crit n
: print n raquo ;; $ exit_val;
/usr/lib/nagios/plugins/check_snmp_mem.pl
#!/usr/bin/perl -w
# nagios: -epn
############################## check_snmp_mem ########### ###
#
# Help: ./check_snmp_mem.pl -h
#
strict; Net :: SNMP; Getopt :: Long;
# Nagios specific
lib /usr/lib/nagios/plugins raquo ;; utils qw (% ERRORS $ TIMEOUT);
# my $ TIMEOUT=15;
# my %ERRORS=(laquo;OKraquo;=gt;0,laquo;WARNINGraquo;=gt;1,laquo;CRITICALraquo;=gt;2,laquo;UNKNOWNraquo;=gt;3,laquo;DEPENDENTraquo;=gt;4);
# SNMP Datas
# Net-snmp memory
$ nets_ram_free= 1.3.6.1.4.1.2021.4.6.0 raquo ;; # Real memory free $ nets_ram_total= 1.3.6.1.4.1.2021.4.5.0 raquo ;; # Real memory total $ nets_ram_cache= 1.3.6.1.4.1.2021.4.15.0 raquo ;; # Real memory cached $ nets_swap_free= 1.3.6.1.4.1.2021.4.4.0 raquo ;; # Swap memory free $ nets_swap_total= 1.3.6.1.4.1.2021.4.3.0 raquo ;; # Swap memory total @ nets_oids=($ nets_ram_free, $ nets_ram_total, $ nets_swap_free, $ nets_swap_total, $ nets_ram_cache);
# Cisco
$ cisco_mem_pool= 1.3.6.1.4.1.9.9.48.1.1.1 raquo ;; # Cisco memory pool $ cisco_index= 1.3.6.1.4.1.9.9.48.1.1.1.2 raquo ;; # Memory pool name and index $ cisco_valid= 1.3.6.1.4.1.9.9.48.1.1.1.4 raquo ;; # Valid memory if 1 $ cisco_used= 1.3.6.1.4.1.9.9.48.1.1.1.5 raquo ;; # Used memory $ cisco_free= 1.3.6.1.4.1.9.9.48.1.1.1.6 raquo ;; # Free memory
# .1: type, .2: name, .3: alternate, .4: valid, .5: used, .6: free, .7: max free
# HP Procurve
$ hp_mem_pool= 1.3.6.1.4.1.11.2.14.11.5.1.1.2.2.1.1 raquo ;; # HP memory pool $ hp_mem_index= 1.3.6.1.4.1.11.2.14.11.5.1.1.2.2.1.1.1 raquo ;; # Memory slot index $ hp_mem_total= 1.3.6.1.4.1.11.2.14.11.5.1.1.2.2.1.1.5 raquo ;; # Total Bytes $ hp_mem_free= 1.3.6.1.4.1.11.2.14.11.5.1.1.2.2.1.1.6 raquo ;; # Free Bytes $ hp_mem_free_seg= 1.3.6.1.4.1.11.2.14.11.5.1.1.2.2.1.1.3 raquo ;; # Free segments
# AS/400
# Windows NT/2K/(XP?)
# check_snmp_storage.pl -C lt; community gt;-H Lt; hostIP gt;-m ^ Virtual Memory $ -w lt; warn% gt;-c lt; crit% gt;
# Globals
...