munin-contrib/plugins/brocade/snmp__brocade_temp_module_

89 lines
2.7 KiB
Perl
Executable File

#!/usr/bin/perl -w
=head1 MAGIC MARKERS
#%# family=snmpauto
#%# capabilities=snmpconf
=cut
use strict;
use Munin::Plugin;
use Munin::Plugin::SNMP;
my $DEBUG=$ENV{'MUNIN_DEBUG'};
# This is the snmpwalk:
# snAgentTempSensorDescr.1.1 = STRING: "Line module 1, sensor 1 temperature"
# snAgentTempSensorDescr.1.2 = STRING: "Line module 1, sensor 2 temperature"
# snAgentTempSensorDescr.1.3 = STRING: "Line module 1, sensor 3 temperature"
# snAgentTempSensorDescr.1.4 = STRING: "Line module 1, sensor 4 temperature"
# snAgentTempSensorDescr.2.1 = STRING: "Line module 2, sensor 1 temperature"
# snAgentTempSensorDescr.2.2 = STRING: "Line module 2, sensor 2 temperature"
# snAgentTempSensorDescr.2.3 = STRING: "Line module 2, sensor 3 temperature"
# snAgentTempSensorDescr.2.4 = STRING: "Line module 2, sensor 4 temperature"
# snAgentTempSensorDescr.3.1 = STRING: "Active management module temperature"
# snAgentTempSensorDescr.3.2 = STRING: "Active management module temperature"
# snAgentTempValue.1.1 = INTEGER: 100
# snAgentTempValue.1.2 = INTEGER: 106
# snAgentTempValue.1.3 = INTEGER: 82
# snAgentTempValue.1.4 = INTEGER: 72
# snAgentTempValue.2.1 = INTEGER: 74
# snAgentTempValue.2.2 = INTEGER: 102
# snAgentTempValue.2.3 = INTEGER: 70
# snAgentTempValue.2.4 = INTEGER: 74
# snAgentTempValue.3.1 = INTEGER: 78
# snAgentTempValue.3.2 = INTEGER: 84
my $brcdIp = '1.3.6.1.4.1.1991';
my $snAgentTempTable = "$brcdIp.1.1.2.13.1";
my $snAgentTempSensorDescr = "$snAgentTempTable.1.3";
my $snAgentTempValue = "$snAgentTempTable.1.4";
if (defined $ARGV[0] and $ARGV[0] eq "snmpconf") {
print "index $snAgentTempTable.1.3.\n";
print "require $snAgentTempSensorDescr. [1-9]\n";
print "require $snAgentTempValue. [1-9]\n";
exit 0;
}
my $module = 0;
if ($Munin::Plugin::me =~ /_module_(\d+)$/) {
$module = $1;
} else {
die "Could not determine module number from ".$Munin::Plugin::me."\n";
}
my ($session,$error);
$session = Munin::Plugin::SNMP->session(-translate => [ -nosuchinstance => undef ]);
my $sensor = 1;
if ($ARGV[0] and $ARGV[0] eq "config") {
my ($host,undef,$version) = Munin::Plugin::SNMP->config_session();
print "host_name $host\n" unless $host eq 'localhost';
print "graph_title Module $module
graph_args --base 1000 --lower-limit 0
graph_vlabel °C
graph_category sensors
graph_scale no\n";
my $descr = undef;
while (defined ($descr = $session->get_single("$snAgentTempSensorDescr.$module.$sensor"))) {
print "sensor$sensor.label $descr\n";
$sensor ++;
}
exit 0;
}
my $value = undef;
while (defined ($value = $session->get_single("$snAgentTempValue.$module.$sensor"))) {
$value /= 2;
print "sensor$sensor.value $value\n";
$sensor++;
}
# vim:ft=perl