#!/usr/bin/perl -w # # Copyright (C) 2004 Jimmy Olsen, Dagfinn Ilmari Mannsaaker # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; version 2 dated June, # 1991. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # # $Log$ # Revision 1.7b 2007/06/30 22:56 debizoh # # Set YAMAHA private MIB # .iso.org.dod.internet.private.enterprises.yamaha.yamahaRT.yamahaRTHardware.yrhCpuUtil5min # # .iso.org.dod.internet.private.enterprises.yamaha.yamahaRT.yamahaRTHardware.yrhMemoryUtil # # # Revision 1.7 2004/11/16 20:08:26 jimmyo # License cleanups. # # Revision 1.6 2004/09/08 15:25:33 ilmari # Use /usr/bin/perl in all perl shebang lines. # # Revision 1.5 2004/09/07 13:19:22 ilmari # SNMP plugins now honour the "host" environment variable if they can't deduce the hostname from zsh. # # Revision 1.4 2004/09/05 12:00:18 jimmyo # Set family and capabilities. # # Revision 1.3 2004/09/04 21:58:28 jimmyo # Set category and info fields. # # Revision 1.2 2004/09/03 22:56:51 jimmyo # Added support for SNMP probing. # # Revision 1.1 2004/05/01 10:50:53 jimmyo # New SNMP plugins users and load. # # Revision 1.1 2004/04/30 20:13:53 jimmyo # New SNMP plugin for number of procs. # # Revision 1.1 2004/04/29 22:29:57 jimmyo # New SNMP plugin for disk usage. # # Revision 1.3 2004/02/22 20:17:58 jimmyo # Typo fix # # Revision 1.2 2004/02/18 21:54:56 jimmyo # Did a bit of work on the snmp-thingie. # # Revision 1.1 2004/01/02 18:50:00 jimmyo # Renamed occurrances of lrrd -> munin # # Revision 1.1.1.1 2004/01/02 15:18:07 jimmyo # Import of LRRD CVS tree after renaming to Munin # # Revision 1.1 2003/12/19 20:53:45 jimmyo # Created by jo # # #%# family=snmpauto #%# capabilities=snmpconf use strict; use Net::SNMP; my $DEBUG = 0; my $MAXLABEL = 20; my $host = $ENV{host} || undef; my $port = $ENV{port} || 161; my $community = $ENV{community} || "public"; my $iface = $ENV{interface} || undef; my $version = $ENV{version} || undef; my $response; if (defined $ARGV[0] and $ARGV[0] eq "snmpconf") { print "require 1.3.6.1.4.1.1182.2.1.4 [0-9]\n"; # Number exit 0; } if ($0 =~ /^(?:|.*\/)snmp_([^_]+)_load$/) { $host = $1; if ($host =~ /^([^:]+):(\d+)$/) { $host = $1; $port = $2; } } elsif (!defined($host)) { print "# Debug: $0 -- $1\n" if $DEBUG; die "# Error: couldn't understand what I'm supposed to monitor."; } my ($session, $error); if (defined($version)) { ($session, $error) = Net::SNMP->session( -hostname => $host, -community => $community, -port => $port, -version => $version ); } else { ($session, $error) = Net::SNMP->session( -hostname => $host, -community => $community, -port => $port ); } if (!defined ($session)) { die "Croaking: $error"; } if (defined $ARGV[0] and $ARGV[0] eq "config") { print "host_name $host\n"; print "graph_title Memory usage graphlimit=100 graph_args --base 1000 -r --lower-limit 0 --upper-limit 100 graph_vlabel % graph_category system graph_info This graph shows the load average on the host. Load average is a rough way of estimating how hard the machine works. Optimally, a load average should be equal to or lower than the number of CPUs on the machine. memory.label memory memory.info The load average itself. This number is an average of the last 5 minutes. memory.draw AREA "; exit 0; } print "memory.value ", &get_single ($session, "1.3.6.1.4.1.1182.2.1.4.0"), "\n"; sub get_single { my $handle = shift; my $oid = shift; print "# Getting single $oid...\n" if $DEBUG; $response = $handle->get_request ($oid); if (!defined $response->{$oid}) { return undef; } else { return $response->{$oid}; } }