1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149
|
#!@@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.7 2004/11/16 20:08:26 jimmyo
# License cleanups.
#
# Revision 1.6 2004/09/08 15:25:33 ilmari
# Use @@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 $response;
if (defined $ARGV[0] and $ARGV[0] eq "snmpconf")
{
print "require 1.3.6.1.2.1.25.1.5.0 [0-9]\n"; # Number
exit 0;
}
if ($0 =~ /^(?:|.*\/)snmp_([^_]+)_users$/)
{
$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) = 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 Number of users
graph_args --base 1000 -l 0
graph_vlabel number of users
graph_scale no
graph_category system
graph_info This graph shows the number of users currently in to the system.
users.label users
users.draw LINE2
users.info Number of users logged in.
";
exit 0;
}
print "users.value ", &get_single ($session, "1.3.6.1.2.1.25.1.5.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};
}
}
|