2013-05-09 17:04:18 +02:00
|
|
|
#!/usr/bin/perl
|
|
|
|
# -*- perl -*-
|
|
|
|
# vim: ft=perl
|
|
|
|
|
|
|
|
=head1 NAME
|
|
|
|
|
|
|
|
snmp__netapp_cifs - Munin plugin to retrieve general cifs information from NetApp storage appliances.
|
|
|
|
|
|
|
|
=head1 APPLICABLE SYSTEMS
|
|
|
|
|
|
|
|
cifs should be reported by any NetApp storage appliance
|
|
|
|
with SNMP agent daemon activated. See na_snmp(8) for details.
|
|
|
|
|
|
|
|
=head1 CONFIGURATION
|
|
|
|
|
|
|
|
Unfortunately, SNMPv3 is not fully supported on all NetApp equipments.
|
|
|
|
For this reason, this plugin will use SNMPv2 by default, which is
|
|
|
|
insecure because it doesn't encrypt the community string.
|
|
|
|
|
|
|
|
The following parameters will help you get this plugin working :
|
|
|
|
|
|
|
|
[snmp_*]
|
|
|
|
env.community MyCommunity
|
|
|
|
|
|
|
|
If your community name is 'public', you should really worry about
|
|
|
|
security and immediately reconfigure your appliance.
|
|
|
|
|
|
|
|
Please see 'perldoc Munin::Plugin::SNMP' for further configuration.
|
|
|
|
|
|
|
|
=head1 INTERPRETATION
|
|
|
|
|
|
|
|
The plugin reports various cifs connections, users and open files.
|
|
|
|
|
|
|
|
=head1 MIB INFORMATION
|
|
|
|
|
|
|
|
This plugin requires support for the NETWORK-APPLIANCE-MIB issued by
|
|
|
|
Network Appliance. It reports the content of the cifs OID.
|
|
|
|
|
|
|
|
=head1 MAGIC MARKERS
|
|
|
|
|
|
|
|
#%# family=snmpauto
|
|
|
|
#%# capabilities=snmpconf
|
|
|
|
|
|
|
|
=head1 BUGS
|
|
|
|
|
|
|
|
This plugin wasn't tested on many hardware and only on Ontap 7.3.x.
|
|
|
|
|
|
|
|
=head1 AUTHOR
|
|
|
|
|
|
|
|
2013, Claudius Herder
|
|
|
|
NetApp is a registered trademark and Network Appliance is a trademark
|
|
|
|
of Network Appliance, Inc. in the U.S. and other countries.
|
|
|
|
|
|
|
|
=head1 LICENSE
|
|
|
|
|
|
|
|
GPLv2.
|
|
|
|
|
|
|
|
=cut
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
use Munin::Plugin::SNMP;
|
|
|
|
|
|
|
|
my %oids =
|
|
|
|
(
|
|
|
|
misc64NetRcvdBytes => 'NET_NETRCVDBYTES',
|
|
|
|
misc64NetSentBytes => 'NET_NETSENTBYTES',
|
|
|
|
);
|
|
|
|
|
|
|
|
if (defined $ARGV[0] and $ARGV[0] eq 'snmpconf')
|
|
|
|
{
|
|
|
|
print "require 1.3.6.1.4.1.789.1.2.2.1.0 [0-9]\n";
|
|
|
|
exit 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
my $session = Munin::Plugin::SNMP->session();
|
|
|
|
|
|
|
|
if (defined $ARGV[0] and $ARGV[0] eq "config")
|
|
|
|
{
|
|
|
|
my ($host, undef, undef, undef) = Munin::Plugin::SNMP->config_session();
|
|
|
|
print "host_name $host\n" unless $host eq 'localhost';
|
|
|
|
print "graph_title $host Network interface traffic\n";
|
|
|
|
print "graph_args --base 1000\n";
|
|
|
|
print "graph_vlabel Bytes in (-) / out (+) per \${graph_period}\n";
|
2017-02-22 19:44:59 +01:00
|
|
|
# graph_category san # To show plugin in Gallery also in this category
|
2013-05-09 17:04:18 +02:00
|
|
|
print "graph_category network\n";
|
|
|
|
print "graph_info This graph shows net stats for the $host NetApp equipment.\n";
|
|
|
|
print "graph_order misc64NetRcvdBytes misc64NetSentBytes\n";
|
|
|
|
print "misc64NetRcvdBytes.type COUNTER\n";
|
|
|
|
print "misc64NetRcvdBytes.min 0\n";
|
|
|
|
print "misc64NetRcvdBytes.graph no\n";
|
|
|
|
print "misc64NetRcvdBytes.label bps\n";
|
|
|
|
print "misc64NetSentBytes.type COUNTER\n";
|
|
|
|
print "misc64NetSentBytes.label bps\n";
|
|
|
|
print "misc64NetSentBytes.min 0\n";
|
|
|
|
print "misc64NetSentBytes.negative misc64NetRcvdBytes\n";
|
|
|
|
print "misc64NetSentBytes.info misc64NetRcvdBytes/misc64NetSentBytes\n";
|
|
|
|
exit 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
my $values = $session->get_hash
|
|
|
|
(
|
|
|
|
-baseoid => '1.3.6.1.4.1.789.1.2.2',
|
|
|
|
-cols =>
|
|
|
|
{
|
|
|
|
30 => 'misc64NetRcvdBytes',
|
|
|
|
31 => 'misc64NetSentBytes',
|
|
|
|
},
|
|
|
|
);
|
|
|
|
|
|
|
|
foreach my $k (keys %oids)
|
|
|
|
{
|
|
|
|
my $v = 'U';
|
|
|
|
$v = $values->{0}->{$k} if (defined $values);
|
|
|
|
print "$k.value $v\n";
|
|
|
|
}
|
|
|
|
|
|
|
|
exit 0;
|
|
|
|
|
|
|
|
__END__
|