通过Nagios监控锐捷设备的CPU使用情况的Perl脚本Word下载.docx
- 文档编号:20426747
- 上传时间:2023-01-22
- 格式:DOCX
- 页数:22
- 大小:20.91KB
通过Nagios监控锐捷设备的CPU使用情况的Perl脚本Word下载.docx
《通过Nagios监控锐捷设备的CPU使用情况的Perl脚本Word下载.docx》由会员分享,可在线阅读,更多相关《通过Nagios监控锐捷设备的CPU使用情况的Perl脚本Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
4);
#SNMPDatas
#Genericwithhost-ressource-mib
my$base_proc="
1.3.6.1.2.1.25.3.3.1"
#oidforallprocinfo
my$proc_id="
1.3.6.1.2.1.25.3.3.1.1"
#listofprocessors(productID)
my$proc_load="
1.3.6.1.2.1.25.3.3.1.2"
#%timetheprocwasnotidleoverlastminute
#Linuxload
my$linload_table="
1.3.6.1.4.1.2021.10.1"
#net-snmploadtable
my$linload_name="
1.3.6.1.4.1.2021.10.1.2"
#text'
Load-1'
'
Load-5'
'
Load-15'
my$linload_load="
1.3.6.1.4.1.2021.10.1.3"
#effectiveloadtable
#Ciscocpu/load
my$cisco_cpu_5m="
1.3.6.1.4.1.9.2.1.58.0"
#CiscoCPUload(5min%)
my$cisco_cpu_1m="
1.3.6.1.4.1.9.2.1.57.0"
#CiscoCPUload(1min%)
my$cisco_cpu_5s="
1.3.6.1.4.1.9.2.1.56.0"
#CiscoCPUload(5sec%)
#Ciscocatalystcpu/load
my$ciscocata_cpu_5m="
.1.3.6.1.4.1.9.9.109.1.1.1.1.5.9"
my$ciscocata_cpu_1m="
.1.3.6.1.4.1.9.9.109.1.1.1.1.3.9"
my$ciscocata_cpu_5s="
.1.3.6.1.4.1.9.9.109.1.1.1.1.4.9"
#Ruijiecpu/load
my$ruijie_cpu_5m="
.1.3.6.1.4.1.4881.1.1.10.2.36.1.1.3.0"
#CPUload(5min%)
my$ruijie_cpu_1m="
.1.3.6.1.4.1.4881.1.1.10.2.36.1.1.2.0"
#CPUload(1min%)
my$ruijie_cpu_5s="
.1.3.6.1.4.1.4881.1.1.10.2.36.1.1.1.0"
#CPUload(5sec%)
#Netscreencpu/load
my$nsc_cpu_5m="
1.3.6.1.4.1.3224.16.1.4.0"
#NSCPUload(5min%)
my$nsc_cpu_1m="
1.3.6.1.4.1.3224.16.1.2.0"
#NSCPUload(1min%)
my$nsc_cpu_5s="
1.3.6.1.4.1.3224.16.1.3.0"
#NSCPUload(5sec%)
#AS/400CPU
my$as400_cpu="
1.3.6.1.4.1.2.6.4.5.1.0"
#AS400CPUload(10000=100%);
#Net-SNMPCPU
my$ns_cpu_idle="
1.3.6.1.4.1.2021.11.11.0"
#Net-snmpcpuidle
my$ns_cpu_user="
1.3.6.1.4.1.2021.11.9.0"
#Net-snmpusercpuusage
my$ns_cpu_system="
1.3.6.1.4.1.2021.11.10.0"
#Net-snmpsystemcpuusage
#ProcurveCPU
my$procurve_cpu="
1.3.6.1.4.1.11.2.14.11.5.1.9.6.1.0"
#ProcurveCPUCounter
#NokiaCPU
my$nokia_cpu="
1.3.6.1.4.1.94.1.21.1.7.1.0"
#NokiaCPU%usage
#BluecoatAppliance
my$bluecoat_cpu="
1.3.6.1.4.1.3417.2.4.1.1.1.4.1"
#Bluecoat%cpuusage.
#FortigateCPU
my$fortigate_cpu="
.1.3.6.1.4.1.12356.1.8.0"
#FortigateCPU%usage
#LinkproofAppliance
my$linkproof_cpu="
1.3.6.1.4.1.89.35.1.55.0"
#CPURE(RoutingEngineTasks)
#1.3.6.1.4.1.89.35.1.53.0:
Ressourceutilisation(%)ConsidersnetworkutilizationandinternalCPUutilization
#1.3.6.1.4.1.89.35.1.54:
CPUonly(%)
#1.3.6.1.4.1.89.35.1.55:
networkonly(%)
#HP-UXcpuusage(thankstokrizbfortheOIDs).
my$hpux_load_1_min="
1.3.6.1.4.1.11.2.3.1.1.3.0"
my$hpux_load_5_min="
1.3.6.1.4.1.11.2.3.1.1.4.0"
my$hpux_load_15_min="
1.3.6.1.4.1.11.2.3.1.1.5.0"
#validvalues
my@valid_types=("
stand"
"
netsc"
netsl"
as400"
cisco"
cata"
nsc"
fg"
bc"
nokia"
hp"
lp"
hpux"
ruijie"
);
#CPUOIDarray
my%cpu_oid=("
$ns_cpu_idle,"
$as400_cpu,"
$bluecoat_cpu,"
$nokia_cpu,"
$procurve_cpu,"
$linkproof_cpu,"
$fortigate_cpu,"
$ruijie_cpu_5m);
#Globals
my$Version='
1.3.2.1'
my$o_host=undef;
#hostname
my$o_community=undef;
#community
my$o_port=161;
#port
my$o_help=undef;
#wan'
tsomehelp?
my$o_verb=undef;
#verbosemode
my$o_version=undef;
#printversion
#checktype:
stand|netsc|netsl|as400|cisco|cata|nsc|fg|bc|nokia|hp|lp|hpux|ruijie
my$o_check_type="
#Endcompatibility
my$o_warn=undef;
#warninglevel
my@o_warnL=undef;
#warninglevelsforLinuxLoadorCiscoCPU
my$o_crit=undef;
#criticallevel
my@o_critL=undef;
#criticallevelforLinuxLoadorCiscoCPU
my$o_timeout=undef;
#Timeout(Default5)
my$o_perf=undef;
#Outputperformancedata
my$o_version2=undef;
#usesnmpv2c
#SNMPv3specific
my$o_login=undef;
#Loginforsnmpv3
my$o_passwd=undef;
#Passforsnmpv3
my$v3protocols=undef;
#V3protocollist.
my$o_authproto='
md5'
#Authprotocol
my$o_privproto='
des'
#Privprotocol
my$o_privpass=undef;
#privpassword
#functions
subp_version{print"
check_snmp_loadversion:
$Version\n"
}
subprint_usage{
print"
Usage:
$0[-v]-H<
host>
-C<
snmp_community>
[-2]|(-llogin-xpasswd[-Xpass-L<
authp>
<
privp>
])[-p<
port>
]-w<
warnlevel>
-c<
critlevel>
-T=[stand|netsl|netsc|as400|cisco|cata|nsc|fg|bc|nokia|hp|lp|hpux|ruijie][-f][-t<
timeout>
][-V]\n"
}
subisnnum{#Returntrueifargisnotanumber
my$num=shift;
if($num=~/^(\d+\.?
\d*)|(^\.\d+)$/){return0;
return1;
subhelp{
\nSNMPLoad&
CPUMonitorforNagiosversion"
$Version,"
\n"
GPLlicence,(c)2004-2007PatrickProy\n\n"
陈涛添加的对锐捷的监控.\n\n"
print_usage();
print<
<
EOT;
-v,--verbose
printextradebugginginformation
-h,--help
printthishelpmessage
-H,--hostname=HOST
nameorIPaddressofhosttocheck
-C,--community=COMMUNITYNAME
communitynameforthehost'
sSNMPagent(impliesv1protocol)
-2,--v2c
Usesnmpv2c
-l,--login=LOGIN;
-x,--passwd=PASSWD
Loginandauthpasswordforsnmpv3authentication
Ifnoprivpasswordexists,impliesAuthNoPriv
-X,--privpass=PASSWD
Privpasswordforsnmpv3(AuthPrivprotocol)
-L,--protocols=<
authproto>
privproto>
<
:
Authenticationprotocol(md5|sha:
defaultmd5)
Privprotocole(des|aes:
defaultdes)
-P,--port=PORT
SNMPport(Default161)
-w,--warn=INTEGER|INT,INT,INT
1valuecheck:
warninglevelforcpuinpercent(ononeminute)
3valuecheck:
commaseparatedlevelforloadorcpufor1min,5min,15min
-c,--crit=INTEGER|INT,INT,INT
criticallevelforcpuinpercent(ononeminute)
-T,--type=stand|netsl|netsc|as400|cisco|cata|bc|nokia|hp|lp|ruijie
CPUcheck:
stand:
standardMIBII(workswithWindows),
canhandlemultipleCPU.
netsl:
linuxloadprovidedbyNetSNMP(1,5&
15minutesvalues)
netsc:
cpuusagegivenbynet-snmp(100-idle)
as400:
as400CPUusage
cisco:
CiscoCPUusage
cata:
CiscocatalystCPUusage
nsc:
NetScreenCPUusage
fg:
FortigateCPUusage
bc:
BluecoatCPUusage
nokia:
NokiaCPUusage
hp:
HPprocurveswitchCPUusage
lp:
LinkproofCPUusage
hpux:
HP-UXload(1,5&
ruijie:
RuiJieCPUusage(5分钟的值)
-f,--perfparse
Perfparsecompatibleoutput
-t,--timeout=INTEGER
timeoutforSNMPinseconds(Default:
5)
-V,--version
printsversionnumber
EOT
#Forverboseoutput
subverb{my$t=shift;
print$t,"
ifdefined($o_verb);
subcheck_options{
Getopt:
Long:
Configure("
bundling"
GetOptions(
'
v'
=>
\$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_passwd,
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_check_type
);
#checkthe-Toption
my$T_option_valid=0;
foreach(@valid_types){if($_eq$o_check_type){$T_option_valid=1}};
if($T_option_valid==0)
{print"
Invalidchecktype(-T)!
exit$ERRORS{"
UNKNOWN"
}}
#Basicchecks
if(defined($o_timeout)&
&
(isnnum($o_timeout)||($o_timeout<
2)||($o_timeout>
60)))
{print"
Timeoutmustbe>
1and<
60!
if(!
defined($o_timeout)){$o_timeout=5;
if(defined($o_help)){help();
}};
if(defined($o_version)){p_version();
if(!
defined($o_host))#checkhostandfilter
{print_usage();
#checksnmpinformation
defined($o_community)&
(!
defined($o_login)||!
defined($o_passwd)))
Putsnmplogininfo!
if((defined($o_login)||defined($o_passwd))&
(defined($o_community)||defined($o_version2)))
Can'
tmixsnmpv1,2c,3protocols!
if(defined($v3protocols)){
defined($o_login)){print"
PutsnmpV3logininfowithprotocols!
my@v3proto=split(/,/,$v3protocols);
if((defined($v3proto[0]))&
($v3proto[0]ne"
"
)){$o_authproto=$v3proto[0];
}#Authprotocol
if(defined($v3proto[1])){$o_privproto=$v3proto[1];
}#Privprotocol
if((defined($v3proto[1]))&
defined($o_privpass))){
PutsnmpV3privlogininfowithprivprotocols!
#Checkwar
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通过 Nagios 监控 设备 CPU 使用 情况 Perl 脚本