monitoring (cisco) routers
list Marco Avvisano
Someone have tried scripts to monitor cpu, memory and temperature for cisco routers, that work correctly in hobbit (also the rrd graphs)? I'm tryng bb-xsnmp script, but i have some problems. Marco
list Daniel J McDonald
▸
On Thu, 2005-03-24 at 18:26 +0100, Marco Avvisano wrote:
Someone have tried scripts to monitor cpu, memory and temperature for cisco routers, that work correctly in hobbit (also the rrd graphs)?
I do that using mrtg, and then run bbmrtg.pl to pull the stats into
hobbit.
Temperature monitoring has been flaky on Cisco for a long time - are you
using devices with good temperature reporting?
My cpu/memory template for mrtg:
$head_lines .= <<ECHO
#.....................................................................
# Router processor utilization.
#
ECHO
;
snmpMIB_to_OID("/usr/share/snmp/mibs/CISCO-SMI-V1SMI.my");
snmpMIB_to_OID("/usr/share/snmp/mibs/CISCO-TC-V1SMI.my");
snmpMIB_to_OID("/usr/share/snmp/mibs/CISCO-PROCESS-MIB-V1SMI.my");
my %cpu;
my (@temp) = snmpwalk($router_connect,'cpmCPUTotal5secRev');
foreach my $tempi(@temp) {
$tempi =~ /(\d+):\d/;
my $instance=$1;
my $target_name=$router_name.".cpu".$instance;
$cpu{$instance}++;
$target_lines .= <<CPU
Target[$target_name]:
cpmCPUTotal5secRev.$instance&cpmCPUTotal1minRev.$instance:
$router_connect
MaxBytes[$target_name]: 100
routers.cgi*ShortDesc[$target_name]: CPU # $instance
routers.cgi*Options[$target_name]: nototal
bb*host[$target_name]: $router_name
bb*svc[$target_name]: cpu
bb*red[$target_name]: 90
bb*yellow[$target_name]: 80
Options[$target_name]: gauge, unknaszero
Directory[$target_name]: $directory_name
WithPeak[$target_name]: wmy
YLegend[$target_name]: % Utilization
ShortLegend[$target_name]: %
Legend1[$target_name]: 5 Second Load
Legend2[$target_name]: 1 Minute Load
LegendI[$target_name]: 5sec :
LegendO[$target_name]: 1min :
Title[$target_name]: $sysname
PageTop[$target_name]: <H1>$sysname Processor Load</H1>
<TABLE>
<TR><TD>System:</TD><TD>$sysname </TD></TR>
<TR><TD>Location:</TD><TD>$syslocation </TD></TR>
</TABLE>
CPU
;
}
my (@temp) = snmpwalk($router_connect,'cpmCPUTotal5sec');
foreach my $tempi(@temp) {
$tempi =~ /(\d+):\d/;
my $instance=$1;
next if exists $cpu{$instance};
my $target_name=$router_name.".cpu".$instance;
$cpu{$instance}++;
$target_lines .= <<CPUOLD
Target[$target_name]:
cpmCPUTotal5sec.$instance&cpmCPUTotal1min.$instance:$route r_connect
MaxBytes[$target_name]: 100
routers.cgi*ShortDesc[$target_name]: CPU # $instance
routers.cgi*Options[$target_name]: nototal
bb*host[$target_name]: $router_name
bb*svc[$target_name]: cpu
bb*red[$target_name]: 90
bb*yellow[$target_name]: 80
Options[$target_name]: gauge, unknaszero
Directory[$target_name]: $directory_name
WithPeak[$target_name]: wmy
YLegend[$target_name]: % Utilization
ShortLegend[$target_name]: %
Legend1[$target_name]: 5 Second Load
Legend2[$target_name]: 1 Minute Load
LegendI[$target_name]: 5sec :
LegendO[$target_name]: 1min :
Title[$target_name]: $sysname
PageTop[$target_name]: <H1>$sysname Processor Load</H1>
<TABLE>
<TR><TD>System:</TD><TD>$sysname </TD></TR>
<TR><TD>Location:</TD><TD>$syslocation </TD></TR>
</TABLE>
CPUOLD
;
}
snmpMIB_to_OID("/usr/share/snmp/mibs/CISCO-QOS-PIB-MIB-V1SMI.my");
snmpMIB_to_OID("/usr/share/snmp/mibs/CISCO-MEMORY-POOL-MIB-V1SMI.my");
my (@temp) = snmpwalk($router_connect,'ciscoMemoryPoolName');
foreach my $tempi(@temp) {
$tempi =~ /(\d+):(.+)/;
my $instance=$1;
next if $2 !~ /Processor/;
my ($used, $free) =
snmpget($router_connect,'ciscoMemoryPoolUsed.'.$instance,
'ciscoMemoryPoolFree.'.$instance);
my $target_name=$router_name.".memory";
my $maxsize = $used+$free;
$target_lines .= <<DISK
#------------------------------------------------------------------------------- -------
# Memory Utilization
Target[$target_name]:
ciscoMemoryPoolFree.$instance&ciscoMemoryPoolLargestFree.$ instance:
$router_connect
YLegend[$target_name]: Bytes Free
Options[$target_name]: gauge, unknaszero
Directory[$target_name]: $directory_name
MaxBytes[$target_name]: $maxsize
ShortLegend[$target_name]: bytes
routers.cgi*ShortDesc[$target_name]: Memory
routers.cgi*Options[$target_name]: nototal
bb*host[$target_name]: $router_name
bb*svc[$target_name]: memory
bb*red[$target_name]: 5%:99%
bb*yellow[$target_name]: 7%:98%
Legend1[$target_name]: Free Mem
Legend2[$target_name]: Largest Block
LegendI[$target_name]: Free
LegendO[$target_name]: Block
WithPeak[$target_name]: ymw
Title[$target_name]: $sysname
PageTop[$target_name]: <H1>Memory on $sysname/H1>
<TABLE>
<TR><TD>System:</TD><TD>$sysname </TD></TR>
<TR><TD>Location:</TD><TD>$syslocation </TD></TR>
</TABLE>
DISK
;
}
I'm tryng bb-xsnmp script, but i have some problems. Marco
list David Garaway
I have been using bb-xsnmp with BB in the past and really like it. Since I rolled out HOBBIT the script isn't working. I really like bb-xsnmp because it displays port status and description so I know what speed and duplex and whats attached to each port. I haven't had time to figure out why its not working (it creates the log file but doesn't write anything in it) but will let you know when I do. Does anyone have any other suggestions of scripts they use to check among other things speed/duplex and port descriptions? Dave
▸
-----Original Message-----
From: Marco Avvisano [mailto:user-e09c0f3f8c70@xymon.invalid]
Sent: Thursday, March 24, 2005 9:26 AM
To: user-ae9b8668bcde@xymon.invalid
Subject: [hobbit] monitoring (cisco) routers
Someone have tried scripts to monitor cpu, memory and temperature for
cisco
routers, that work correctly in hobbit (also the rrd graphs)?
I'm tryng bb-xsnmp script, but i have some problems.
Marco
list Marco Avvisano
The bb-xsnmp script, use the bb-combo.sh program, to send the results. I try to copy it from the bb installation, but it not work. Someone have tried it in a hobbit installation? Perhaps there is a environment variable problem? Marco
▸
I have been using bb-xsnmp with BB in the past and really like it. Since I rolled out HOBBIT the script isn't working. I really like bb-xsnmp because it displays port status and description so I know what speed and duplex and whats attached to each port. I haven't had time to figure out why its not working (it creates the log file but doesn't write anything in it) but will let you know when I do. Does anyone have any other suggestions of scripts they use to check among other things speed/duplex and port descriptions? Dave -----Original Message----- From: Marco Avvisano [mailto:user-e09c0f3f8c70@xymon.invalid] Sent: Thursday, March 24, 2005 9:26 AM To: user-ae9b8668bcde@xymon.invalid Subject: [hobbit] monitoring (cisco) routers Someone have tried scripts to monitor cpu, memory and temperature for cisco routers, that work correctly in hobbit (also the rrd graphs)? I'm tryng bb-xsnmp script, but i have some problems. Marco
list Marco Avvisano
▸
----- Original Message ----- From: "Daniel J McDonald" <user-290ce4e24e19@xymon.invalid> To: "Hobbit List" <user-ae9b8668bcde@xymon.invalid> Sent: Friday, March 25, 2005 4:36 PM Subject: Re: [hobbit] monitoring (cisco) routers
On Thu, 2005-03-24 at 18:26 +0100, Marco Avvisano wrote:Someone have tried scripts to monitor cpu, memory and temperature for cisco routers, that work correctly in hobbit (also the rrd graphs)?I do that using mrtg, and then run bbmrtg.pl to pull the stats into hobbit. Temperature monitoring has been flaky on Cisco for a long time - are you using devices with good temperature reporting?
I monitor many cisco devices (especially 7000 series), and generally i not have temperature problems. Thanks for your mrtg files, but i'm tryng to find a good script that are compatible with hobbit graphs generation Marco
▸
My cpu/memory template for mrtg:
$head_lines .= <<ECHO
#.....................................................................
# Router processor utilization.
#
ECHO
;
snmpMIB_to_OID("/usr/share/snmp/mibs/CISCO-SMI-V1SMI.my");
snmpMIB_to_OID("/usr/share/snmp/mibs/CISCO-TC-V1SMI.my");
snmpMIB_to_OID("/usr/share/snmp/mibs/CISCO-PROCESS-MIB-V1SMI.my");
my %cpu;
my (@temp) = snmpwalk($router_connect,'cpmCPUTotal5secRev');
foreach my $tempi(@temp) {
$tempi =~ /(\d+):\d/;
my $instance=$1;
my $target_name=$router_name.".cpu".$instance;
$cpu{$instance}++;
$target_lines .= <<CPU
Target[$target_name]:
cpmCPUTotal5secRev.$instance&cpmCPUTotal1minRev.$instance:
$router_connect
MaxBytes[$target_name]: 100
routers.cgi*ShortDesc[$target_name]: CPU # $instance
routers.cgi*Options[$target_name]: nototal
bb*host[$target_name]: $router_name
bb*svc[$target_name]: cpu
bb*red[$target_name]: 90
bb*yellow[$target_name]: 80
Options[$target_name]: gauge, unknaszero
Directory[$target_name]: $directory_name
WithPeak[$target_name]: wmy
YLegend[$target_name]: % Utilization
ShortLegend[$target_name]: %
Legend1[$target_name]: 5 Second Load
Legend2[$target_name]: 1 Minute Load
LegendI[$target_name]: 5sec :
LegendO[$target_name]: 1min :
Title[$target_name]: $sysname
PageTop[$target_name]: <H1>$sysname Processor Load</H1>
<TABLE>
<TR><TD>System:</TD><TD>$sysname </TD></TR>
<TR><TD>Location:</TD><TD>$syslocation </TD></TR>
</TABLE>
CPU
;
}
my (@temp) = snmpwalk($router_connect,'cpmCPUTotal5sec');
foreach my $tempi(@temp) {
$tempi =~ /(\d+):\d/;
my $instance=$1;
next if exists $cpu{$instance};
my $target_name=$router_name.".cpu".$instance;
$cpu{$instance}++;
$target_lines .= <<CPUOLD
Target[$target_name]:
cpmCPUTotal5sec.$instance&cpmCPUTotal1min.$instance:$route r_connect
MaxBytes[$target_name]: 100
routers.cgi*ShortDesc[$target_name]: CPU # $instance
routers.cgi*Options[$target_name]: nototal
bb*host[$target_name]: $router_name
bb*svc[$target_name]: cpu
bb*red[$target_name]: 90
bb*yellow[$target_name]: 80
Options[$target_name]: gauge, unknaszero
Directory[$target_name]: $directory_name
WithPeak[$target_name]: wmy
YLegend[$target_name]: % Utilization
ShortLegend[$target_name]: %
Legend1[$target_name]: 5 Second Load
Legend2[$target_name]: 1 Minute Load
LegendI[$target_name]: 5sec :
LegendO[$target_name]: 1min :
Title[$target_name]: $sysname
PageTop[$target_name]: <H1>$sysname Processor Load</H1>
<TABLE>
<TR><TD>System:</TD><TD>$sysname </TD></TR>
<TR><TD>Location:</TD><TD>$syslocation </TD></TR>
</TABLE>
CPUOLD
;
}
snmpMIB_to_OID("/usr/share/snmp/mibs/CISCO-QOS-PIB-MIB-V1SMI.my");
snmpMIB_to_OID("/usr/share/snmp/mibs/CISCO-MEMORY-POOL-MIB-V1SMI.my");
my (@temp) = snmpwalk($router_connect,'ciscoMemoryPoolName');
foreach my $tempi(@temp) {
$tempi =~ /(\d+):(.+)/;
my $instance=$1;
next if $2 !~ /Processor/;
my ($used, $free) =
snmpget($router_connect,'ciscoMemoryPoolUsed.'.$instance,
'ciscoMemoryPoolFree.'.$instance);
my $target_name=$router_name.".memory";
my $maxsize = $used+$free;
$target_lines .= <<DISK
#--------------------------------------------------------------------------- ---- -------
# Memory Utilization Target[$target_name]: ciscoMemoryPoolFree.$instance&ciscoMemoryPoolLargestFree.$ instance: $router_connect YLegend[$target_name]: Bytes Free Options[$target_name]: gauge, unknaszero Directory[$target_name]: $directory_name MaxBytes[$target_name]: $maxsize ShortLegend[$target_name]: bytes routers.cgi*ShortDesc[$target_name]: Memory routers.cgi*Options[$target_name]: nototal bb*host[$target_name]: $router_name bb*svc[$target_name]: memory bb*red[$target_name]: 5%:99% bb*yellow[$target_name]: 7%:98% Legend1[$target_name]: Free Mem Legend2[$target_name]: Largest Block LegendI[$target_name]: Free LegendO[$target_name]: Block WithPeak[$target_name]: ymw Title[$target_name]: $sysname PageTop[$target_name]: <H1>Memory on $sysname/H1> <TABLE> <TR><TD>System:</TD><TD>$sysname </TD></TR> <TR><TD>Location:</TD><TD>$syslocation </TD></TR> </TABLE> DISK ; }I'm tryng bb-xsnmp script, but i have some problems. Marco