Munin::Node::SNMPConfig - Subroutines providing munin-node-configure's SNMP
scanning capabilities.
my $snmp = Munin::Node::SNMPConfig->new(
community => 'secret',
version => 1,
);
$snmp->probe_hosts(\%plugins);
- new(%arguments)
- Constructor. Valid arguments are:
- hosts
- The list of hosts to scan, in a format understood by
Munin::Node::Configure::HostEnumeration. Required.
- port
- Port to connect to. Default is 161.
- version
- The SNMP version to use. Default is '2c'.
- community
- The community string to use for SNMP version 1 or 2c. Default is
'public'.
- domain
- The Transport Domain to use for exchanging SNMP messages. The default is
UDP/IPv4. Possible values: 'udp', 'udp4', 'udp/ipv4'; 'udp6', 'udp/ipv6';
'tcp', 'tcp4', 'tcp/ipv4'; 'tcp6', 'tcp/ipv6'.
- username
- The SNMPv3 username to use.
- authpassword
- SNMPv3 Authentication password. Optional when encryption is also enabled,
in which case defaults to the privacy password
("privpassword"). The password is sent
encrypted (one way hash) over the network.
- authprotocol
- SNMPv3 Authentication protocol. One of 'md5' or 'sha' (HMAC-MD5-96,
RFC1321 and SHA-1/HMAC-SHA-96, NIST FIPS PIB 180, RFC2264). The default is
'md5'.
- privpassword
- SNMPv3 Privacy password to enable encryption. An empty ('') password is
considered as no password and will not enable encryption.
Privacy requires a v3privprotocol as well as a v3authprotocol
and a v3authpassword, but all of these are defaulted (to 'des', 'md5',
and the v3privpassword value, respectively) and may therefore be left
unspecified.
- privprotocol
- If the v3privpassword is set this setting controls what kind of encryption
is used to achieve privacy in the session. Only the very weak 'des'
encryption method is supported officially. The default is 'des'.
The implementing perl module (Net::SNMP) also supports '3des'
(CBC-3DES-EDE aka Triple-DES, NIST FIPS 46-3) as specified in IETF
draft-reeder-snmpv3-usm-3desede. Whether or not this works with any
particular device, we do not know.
- run_probes($plugins)
- Connects to each host in turn, and checks which plugins it supports, based
on the OIDs they reported during snmpconf. If all the requirements are
fulfilled, it will added to the corresponding plugin's suggestions list.
$plugins should be a
Munin::Node::Configure::PluginList object.