- Repository
- Munin (master)
- Last change
- 2019-09-30
- Graph Categories
- Family
- snmpauto
- Capabilities
- Language
- Perl
- License
- GPL-2.0-only
- Authors
snmp__cpuload
Name
snmp__cpuload - Munin plugin to monitor CPU usage by use of SNMP.
Applicable Systems
Any SNMP-capable device that reports the HOST-RESOURCES-MIB::hrProcessorLoad OID.
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.
Interpretation
The average, over the last minute, of the percentage of time that this processor was not idle.
Mib Information
This plugin requires support for the HOST-RESOURCES-MIB (RFC 2790). It reports the contents of the hrProcessorLoad OID for each entry in hrProcessorTable.
Magic Markers
#%# family=snmpauto
#%# capabilities=snmpconf
Bugs
None known.
Author
Copyright (C) 2006 Lars Strand
Documented and updated to use Munin::Plugin::SNMP by Matthew Boyle.
License
GPLv2.
#!/usr/bin/perl -w
=head1 NAME
snmp__cpuload - Munin plugin to monitor CPU usage by use of SNMP.
=head1 APPLICABLE SYSTEMS
Any SNMP-capable device that reports the
HOST-RESOURCES-MIB::hrProcessorLoad OID.
=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 average, over the last minute, of the percentage of time that
this processor was not idle.
=head1 MIB INFORMATION
This plugin requires support for the HOST-RESOURCES-MIB (RFC 2790). It
reports the contents of the hrProcessorLoad OID for each entry in
hrProcessorTable.
=head1 MAGIC MARKERS
#%# family=snmpauto
#%# capabilities=snmpconf
=head1 BUGS
None known.
=head1 AUTHOR
Copyright (C) 2006 Lars Strand
Documented and updated to use Munin::Plugin::SNMP by Matthew Boyle.
=head1 LICENSE
GPLv2.
=cut
use strict;
use Munin::Plugin::SNMP;
my $oid = '1.3.6.1.2.1.25.3.3.1.2';
if (defined $ARGV[0] and $ARGV[0] eq 'snmpconf') {
print "require ${oid}.\n";
exit 0;
}
my $session = Munin::Plugin::SNMP->session();
my $result = $session->get_entries(-columns => [ $oid ]);
my %cpus;
while (my ($oid, $value) = each %$result) {
my $index = (split /\./, $oid)[-1];
$cpus{$index} = $value;
}
if (defined $ARGV[0] and $ARGV[0] eq "config") {
my $host = $session->hostname;
print "host_name $host\n" unless ($host eq 'localhost');
print <<'EOC';
graph_title CPU usage
graph_category system
graph_args --upper-limit 100 -l 0
graph_vlabel %
graph_info This graph shows the CPU load on the system.
EOC
foreach my $cpu (sort(keys %cpus)) {
# CPU #1 will have $fieldname "cpu" to retain compatibility with
# old snmp_cpuload plugin.
my $cpun = $cpu;
$cpun = '' if $cpun == 1;
print "cpu$cpun.label CPU $cpu\n";
print "cpu$cpun.info CPU load on CPU $cpu\n";
}
exit 0;
}
# the values
while (my ($cpu, $load) = each(%cpus)) {
$cpu = '' if $cpu == 1;
print "cpu$cpu.value $load\n";
}