1、4);# SNMP Datas# Generic with host-ressource-mibmy $base_proc = 1.3.6.1.2.1.25.3.3.1 # oid for all proc infomy $proc_id = 1.3.6.1.2.1.25.3.3.1.1 # list of processors (product ID)my $proc_load = 1.3.6.1.2.1.25.3.3.1.2 # %time the proc was not idle over last minute# Linux load my $linload_table= 1.3.6
2、.1.4.1.2021.10.1 # net-snmp load tablemy $linload_name = 1.3.6.1.4.1.2021.10.1.2 # text Load-1,Load-5, Load-15my $linload_load = 1.3.6.1.4.1.2021.10.1.3 # effective load table# Cisco cpu/loadmy $cisco_cpu_5m = 1.3.6.1.4.1.9.2.1.58.0 # Cisco CPU load (5min %)my $cisco_cpu_1m = 1.3.6.1.4.1.9.2.1.57.0
3、# Cisco CPU load (1min %)my $cisco_cpu_5s = 1.3.6.1.4.1.9.2.1.56.0 # Cisco CPU load (5sec %)# Cisco catalyst cpu/loadmy $ciscocata_cpu_5m = .1.3.6.1.4.1.9.9.109.1.1.1.1.5.9my $ciscocata_cpu_1m = .1.3.6.1.4.1.9.9.109.1.1.1.1.3.9my $ciscocata_cpu_5s = .1.3.6.1.4.1.9.9.109.1.1.1.1.4.9# Ruijie cpu/loadm
4、y $ruijie_cpu_5m = .1.3.6.1.4.1.4881.1.1.10.2.36.1.1.3.0 # CPU load (5min %)my $ruijie_cpu_1m = .1.3.6.1.4.1.4881.1.1.10.2.36.1.1.2.0 # CPU load (1min %)my $ruijie_cpu_5s = .1.3.6.1.4.1.4881.1.1.10.2.36.1.1.1.0 # CPU load (5sec %)# Netscreen cpu/loadmy $nsc_cpu_5m = 1.3.6.1.4.1.3224.16.1.4.0 # NS CP
5、U load (5min %)my $nsc_cpu_1m = 1.3.6.1.4.1.3224.16.1.2.0 # NS CPU load (1min %)my $nsc_cpu_5s = 1.3.6.1.4.1.3224.16.1.3.0 # NS CPU load (5sec %)# AS/400 CPUmy $as400_cpu = 1.3.6.1.4.1.2.6.4.5.1.0 # AS400 CPU load (10000=100%);# Net-SNMP CPUmy $ns_cpu_idle = 1.3.6.1.4.1.2021.11.11.0 # Net-snmp cpu i
6、dlemy $ns_cpu_user = 1.3.6.1.4.1.2021.11.9.0 # Net-snmp user cpu usagemy $ns_cpu_system = 1.3.6.1.4.1.2021.11.10.0 # Net-snmp system cpu usage# Procurve CPUmy $procurve_cpu = 1.3.6.1.4.1.11.2.14.11.5.1.9.6.1.0 # Procurve CPU Counter# Nokia CPUmy $nokia_cpu = 1.3.6.1.4.1.94.1.21.1.7.1.0 # Nokia CPU %
7、 usage# Bluecoat Appliancemy $bluecoat_cpu = 1.3.6.1.4.1.3417.2.4.1.1.1.4.1 # Bluecoat %cpu usage.# Fortigate CPUmy $fortigate_cpu = .1.3.6.1.4.1.12356.1.8.0 # Fortigate CPU % usage# Linkproof Appliancemy $linkproof_cpu= 1.3.6.1.4.1.89.35.1.55.0 # CPU RE (Routing Engine Tasks)# 1.3.6.1.4.1.89.35.1.5
8、3.0 : Ressource utilisation (%) Considers network utilization and internal CPU utilization# 1.3.6.1.4.1.89.35.1.54 : CPU only (%)# 1.3.6.1.4.1.89.35.1.55 : network only (%)# HP-UX cpu usage (thanks to krizb for the OIDs).my $hpux_load_1_min=1.3.6.1.4.1.11.2.3.1.1.3.0my $hpux_load_5_min=1.3.6.1.4.1.1
9、1.2.3.1.1.4.0my $hpux_load_15_min=1.3.6.1.4.1.11.2.3.1.1.5.0# valid values my valid_types = (stand,netscnetslas400ciscocatanscfgbcnokiahplphpuxruijie);# CPU OID arraymy %cpu_oid = (,$ns_cpu_idle,$as400_cpu,$bluecoat_cpu,$nokia_cpu,$procurve_cpu,$linkproof_cpu,$fortigate_cpu,$ruijie_cpu_5m);# Globals
10、my $Version=1.3.2.1my $o_host = undef; # hostnamemy $o_community = undef; # communitymy $o_port = 161; # portmy $o_help= undef; # want some help ?my $o_verb= undef; # verbose modemy $o_version= undef; # print version# check type : stand | netsc | netsl | as400 | cisco | cata | nsc | fg | bc | nokia
11、| hp | lp | hpux | ruijiemy $o_check_type= # End compatibilitymy $o_warn= undef; # warning levelmy o_warnL= undef; # warning levels for Linux Load or Cisco CPUmy $o_crit= undef; # critical levelmy o_critL= undef; # critical level for Linux Load or Cisco CPUmy $o_timeout= undef; # Timeout (Default 5)
12、my $o_perf= undef; # Output performance datamy $o_version2= undef; # use snmp v2c# SNMPv3 specificmy $o_login= undef; # Login for snmpv3my $o_passwd= undef; # Pass for snmpv3my $v3protocols=undef; # V3 protocol list.my $o_authproto=md5 # Auth protocolmy $o_privproto=des # Priv protocolmy $o_privpass
13、= undef; # priv password# functionssub p_version print check_snmp_load version : $Versionn sub print_usage print Usage: $0 -v -H -C -2 | (-l login -x passwd -X pass -L ,) -p -w -c -T=stand|netsl|netsc|as400|cisco|cata|nsc|fg|bc|nokia|hp|lp|hpux|ruijie -f -t -Vnsub isnnum # Return true if arg is not
14、a number my $num = shift; if ( $num = /(d+.?d*)|(.d+)$/ ) return 0 ; return 1;sub help nSNMP Load & CPU Monitor for Nagios version ,$Version,nGPL licence, (c)2004-2007 Patrick Proynn陈涛添加的对锐捷的监控.nn print_usage(); print EOT;-v, -verbose print extra debugging information -h, -help print this help messa
15、ge-H, -hostname=HOST name or IP address of host to check-C, -community=COMMUNITY NAME community name for the hosts SNMP agent (implies v1 protocol)-2, -v2c Use snmp v2c-l, -login=LOGIN ; -x, -passwd=PASSWD Login and auth password for snmpv3 authentication If no priv password exists, implies AuthNoPr
16、iv -X, -privpass=PASSWD Priv password for snmpv3 (AuthPriv protocol)-L, -protocols=privproto $o_verb, verbose $o_verb, h $o_help, help = $o_help,H:s $o_host, hostname: $o_host,p:i $o_port, port: $o_port,C: $o_community, community: $o_community,l: $o_login, login: $o_login,x: $o_passwd, passwd: $o_pa
17、sswd,X: $o_privpass, privpass: $o_privpass,L: $v3protocols, protocols: $v3protocols, t: $o_timeout, timeout: $o_timeout,V $o_version, version $o_version,2 $o_version2, v2c $o_version2,c: $o_crit, critical: $o_crit,w: $o_warn, warn: $o_warn,f $o_perf, perfparse $o_perf,T: $o_check_type, type: $o_chec
18、k_type ); # check the -T option my $T_option_valid=0; foreach (valid_types) if ($_ eq $o_check_type) $T_option_valid=1 ; if ( $T_option_valid = 0 ) print Invalid check type (-T)! exit $ERRORSUNKNOWN # Basic checks if (defined($o_timeout) & (isnnum($o_timeout) | ($o_timeout 60) print Timeout must be
19、1 and 60 ! if (!defined($o_timeout) $o_timeout=5; if (defined ($o_help) ) help(); if (defined($o_version) p_version(); if ( ! defined($o_host) ) # check host and filter print_usage(); # check snmp informationdefined($o_community) & (!defined($o_login) | !defined($o_passwd) )Put snmp login info! if (
20、defined($o_login) | defined($o_passwd) & (defined($o_community) | defined($o_version2) )Cant mix snmp v1,2c,3 protocols! if (defined ($v3protocols) defined($o_login) print Put snmp V3 login info with protocols! my v3proto=split(/,/,$v3protocols); if (defined ($v3proto0) & ($v3proto0 ne ) $o_authproto=$v3proto0; # Auth protocol if (defined ($v3proto1) $o_privproto=$v3proto1; # Priv protocol if (defined ($v3proto1) &defined($o_privpass) Put snmp V3 priv login info with priv protocols! # Check war
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1