From 031d4e669f779e1c66f8573d1f370b797b16c62e Mon Sep 17 00:00:00 2001 From: Andreas Thienemann Date: Wed, 7 Mar 2012 12:09:04 +0100 Subject: [PATCH] Plugin to check fanspeed readings from a Thecus NAS server. --- plugins/sensors/snmp__thecus_fans | 104 ++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100755 plugins/sensors/snmp__thecus_fans diff --git a/plugins/sensors/snmp__thecus_fans b/plugins/sensors/snmp__thecus_fans new file mode 100755 index 00000000..ec43e277 --- /dev/null +++ b/plugins/sensors/snmp__thecus_fans @@ -0,0 +1,104 @@ +#!/usr/bin/perl -w +# -*- cperl -*- + +=head1 NAME + +snmp__thecus_fans - Munin plugin to retrive fanspeed readings from a Thecus +NAS device running SNMP. + +=head1 APPLICABLE SYSTEMS + +All Thecus NAS devices which have the third party NETSNMPD module installed. +This is available at http://www.fajo.de/main/thecus/modules/netsnmpd + +=head1 CONFIGURATION + +As a rule SNMP plugins need site specific configuration. The default +configuration (shown here) will only work on insecure sites/devices. + + [snmp_*] + env.version 2 + env.community public + +In general SNMP is not very secure at all unless you use SNMP version +3 which supports authentication and privacy (encryption). But in any +case the community string for your devices should not be "public". + +Please see 'perldoc Munin::Plugin::SNMP' for further configuration +information. + +=head1 INTERPRETATION + +The plugin reports the current fan speed readings as reported by the thecusIO +module. + +=head1 MIB INFORMATION + +Private MIB + +=head1 MAGIC MARKERS + + #%# family=snmpauto + #%# capabilities=snmpconf + +=head1 VERSION + + 0.0.20120307 + +=head1 BUGS + +None known. + +=head1 AUTHOR + +Copyright (C) 2011 - 2012 Andreas Thienemann + +Based on the snmp__uptime plugin as a template. + +=head1 LICENSE + +GPLv2 or (at your option) any later version. + +=cut + +use strict; +use Munin::Plugin::SNMP; +use vars qw($DEBUG); + +$DEBUG = $ENV{'MUNIN_DEBUG'}; + +my $response; + +if (defined $ARGV[0] and $ARGV[0] eq "snmpconf") { + print "index 1.3.6.1.4.1.14822.101.21.\n"; + print "require 1.3.6.1.4.1.14822.101.21.5200.1.1.0 [0-9]\n"; + print "require 1.3.6.1.4.1.14822.101.21.5200.1.2.0 [0-9]\n"; + exit 0; +} + +if (defined $ARGV[0] and $ARGV[0] eq "config") { + my ($host) = Munin::Plugin::SNMP->config_session(); + print "host_name $host\n" unless $host eq 'localhost'; + print "graph_title Thecus Fans +graph_args --base 1000 -l 0 +graph_vlabel RPM +graph_info This graph shows the RPMs of the fans as reported by the ThecusIO module. +graph_category sensors +fan1.label Fan 1 +fan1.info Thecus CPU Fan +fan2.label Fan 2 +fan2.info Thecus System Fan +"; + exit 0; +} + +my $session = Munin::Plugin::SNMP->session(-translate => + [ -timeticks => 0x0 ]); + +my $fan1 = $session->get_single ("1.3.6.1.4.1.14822.101.21.5200.1.1.0") || 'U'; +my $fan2 = $session->get_single ("1.3.6.1.4.1.14822.101.21.5200.1.2.0") || 'U'; + +#print "Retrived uptime is '$uptime'\n" if $DEBUG; + +print "fan1.value ", $fan1, "\n"; +print "fan2.value ", $fan2, "\n";