#!/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