diff --git a/plugins/snmp/snmp__memory_win b/plugins/snmp/snmp__memory_win deleted file mode 100755 index 13112696..00000000 --- a/plugins/snmp/snmp__memory_win +++ /dev/null @@ -1,266 +0,0 @@ -#!/usr/bin/perl -w -# -# Copyright (C) 2004 Jimmy Olsen -# -# 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.10 2004/11/16 20:08:26 jimmyo -# License cleanups. -# -# Revision 1.9 2004/09/08 15:25:33 ilmari -# Use /usr/bin/perl in all perl shebang lines. -# -# Revision 1.8 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.7 2004/09/07 12:58:41 ilmari -# SNMP plugin "df" properly strips the label and serial number fromWindows drive labels. -# -# Revision 1.6 2004/09/05 12:00:18 jimmyo -# Set family and capabilities. -# -# Revision 1.5 2004/09/04 21:58:28 jimmyo -# Set category and info fields. -# -# Revision 1.4 2004/09/04 21:33:12 jimmyo -# Handle strange characters better. -# -# Revision 1.3 2004/09/04 21:08:16 jimmyo -# SNMP df plugin now talks Windowese. -# -# Revision 1.2 2004/09/03 22:56:51 jimmyo -# Added support for SNMP probing. -# -# 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 "index 1.3.6.1.2.1.25.2.3.1.1.\n"; - print "index 1.3.6.1.2.1.25.5.1.1.2.\n"; - print "require 1.3.6.1.2.1.25.5.1.1.2. [1-9]\n"; - print "require 1.3.6.1.2.1.25.2.2.0\n"; # memsize - print "require 1.3.6.1.2.1.25.2.3.1.2. 1.3.6.1.2.1.25.2.1.(2|3)\n"; # Type=fixed disk - print "require 1.3.6.1.2.1.25.2.3.1.5. [1-9]\n"; # Size > 0 - exit 0; -} - -if ($0 =~ /^(?:|.*\/)snmp_([^_]+)_memory_win$/) -{ - $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."; -} - -# Disk level -my $hrDeviceType = "1.3.6.1.2.1.25.3.2.1.2."; # Should be iso.3.6.1.2.1.25.3.1.6 (DiskStorage) -my $hrDiskStorageRemoveble = "1.3.6.1.2.1.25.3.6.1.3."; # Should be false (2). - # Windows reports 0. -my $hrDiskStorageCapacity = "1.3.6.1.2.1.25.3.6.1.4."; # Should be more than 0 - -# Partition level -my $hrPartitionFSIndex = "1.3.6.1.2.1.25.3.7.1.5."; # Should be more than 0 -my $hrFSMountPoint = "1.3.6.1.2.1.25.3.8.1.2."; # Used to look up filesystem - -# Filesystem level -my $hrStorageType = "1.3.6.1.2.1.25.2.3.1.2."; # Backup for hrFS* -my $hrStorageDesc = "1.3.6.1.2.1.25.2.3.1.3."; # Used as key from partitions -my $hrStorageSize = "1.3.6.1.2.1.25.2.3.1.5."; # Data point 1 -my $hrStorageUnit = "1.3.6.1.2.1.25.2.3.1.4."; # Data point 3 -my $hrStorageUsed = "1.3.6.1.2.1.25.2.3.1.6."; # Data point 2 - -# Memory -my $hrSWRunPerfMem = "1.3.6.1.2.1.25.5.1.1.2."; - - -my ($session, $error) = Net::SNMP->session( - -hostname => $host, - -community => $community, - -port => $port - ); - -if (!defined ($session)) -{ - die "Croaking: $error"; -} - -my %partitions; -my $stor_id; -$stor_id = get_by_regex ($session, $hrStorageType, "1.3.6.1.2.1.25.2.1.(3|2)"); -%partitions = (); - -foreach my $id (keys %$stor_id) -{ - my $part = get_single ($session, $hrStorageDesc . $id); - $partitions{$part}{storage} = $id; - $partitions{$part}{extinfo} = $part; - $stor_id->{$id} = $part; -} - -if (defined $ARGV[0] and $ARGV[0] eq "config") -{ - print "host_name $host\n"; - print "graph_title Windows memory usage\n"; - print "graph_args -l 0 --base 1024\n"; - print "graph_vlabel Bytes\n"; - print "graph_category system\n"; - print "graph_info This graph shows Windows memory usage in bytes.\n"; - - foreach my $part (keys %partitions) - { - print (&get_name_by_mp ($part), ".label $part Usage\n"); -# print (&get_name_by_mp ($part), ".warning 92\n"); -# print (&get_name_by_mp ($part), ".critical 98\n"); - print (&get_name_by_mp ($part) . "_s", ".label $part Size\n"); - print (&get_name_by_mp ($part) . "_s", ".graph no\n"); - } - print "pused.label In use by programs\n"; - print "pused.draw AREA\n"; - exit 0; -} - -foreach my $storage (keys %$stor_id) -{ - $partitions{$stor_id->{$storage}}{storage} = $storage; - $partitions{$stor_id->{$storage}}{size} = get_single ($session, $hrStorageSize . $storage); - $partitions{$stor_id->{$storage}}{unit} = get_single ($session, $hrStorageUnit . $storage); - $partitions{$stor_id->{$storage}}{used} = get_single ($session, $hrStorageUsed . $storage); -} - -foreach my $part (keys %partitions) -{ - print (&get_name_by_mp ($part), ".value ", $partitions{$part}{used}*$partitions{$part}{unit}, "\n"); - print (&get_name_by_mp ($part) . "_s", ".value ", $partitions{$part}{size}*$partitions{$part}{unit}, "\n"); -} -my $memsize = &get_single($session, "1.3.6.1.2.1.25.2.2.0") * 1024; -my $processes = get_by_regex($session, $hrSWRunPerfMem, "[1-9]"); -# the values -my $memtotal = 0; -while (my ($pid, $mem) = each(%$processes)) { - $memtotal += $mem; -} -$memtotal*=1024; -printf "pused.value $memtotal\n"; - -sub get_single -{ - my $handle = shift; - my $oid = shift; - - print "# Getting single $oid..." if $DEBUG; - - $response = $handle->get_request ($oid); - - if (!defined $response->{$oid}) - { - print "undef\n" if $DEBUG; - return undef; - } - else - { - print "\"$response->{$oid}\"\n" if $DEBUG; - return $response->{$oid}; - } -} - -sub get_by_regex -{ - my $handle = shift; - my $oid = shift; - my $regex = shift; - my $result = {}; - my $num = 0; - my $ret = $oid . "0"; - my $response; - - print "# Starting browse of $oid...\n" if $DEBUG; - - while (1) - { - if ($num == 0) - { - print "# Checking for $ret...\n" if $DEBUG; - $response = $handle->get_request ($ret); - } - if ($num or !defined $response) - { - print "# Checking for sibling of $ret...\n" if $DEBUG; - $response = $handle->get_next_request ($ret); - } - if (!$response) - { - return undef; - } - my @keys = keys %$response; - $ret = $keys[0]; - print "# Analyzing $ret (compared to $oid)...\n" if $DEBUG; - last unless ($ret =~ /^$oid/); - $num++; - next unless ($response->{$ret} =~ /$regex/); - @keys = split (/\./, $ret); - $result->{$keys[-1]} = ($1) ? $1 : $response->{$ret}; - print "# Index $num: ", $keys[-1], " (", $response->{$ret}, ")\n" if $DEBUG; - }; - return $result; -} - -sub get_name_by_mp -{ - my $mp = shift; - $mp =~ s/[^a-z0-9_]/_/gi; - $mp =~ tr/A-Z/a-z/; - return "p" . $mp; -} diff --git a/plugins/snmp/snmp_memory b/plugins/snmp/snmp_memory deleted file mode 100755 index 8f5f4ffa..00000000 --- a/plugins/snmp/snmp_memory +++ /dev/null @@ -1,174 +0,0 @@ -#!/usr/bin/perl -w -# -# Copyright (C) 2006 Lars Strand -# -# Munin plugin to monitor memory usage by use of SNMP. -# Based on snmp__df plugin. -# -# 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$ -# -#%# family=snmpauto -#%# capabilities=snmpconf - -use strict; -use Net::SNMP; - -my $DEBUG = 0; - -my $host = $ENV{host} || undef; -my $port = $ENV{port} || 161; -my $community = $ENV{community} || "public"; - -my $response; - -if (defined $ARGV[0] and $ARGV[0] eq "snmpconf") -{ - print "index 1.3.6.1.2.1.25.5.1.1.2.\n"; - print "require 1.3.6.1.2.1.25.5.1.1.2. [1-9]\n"; - print "require 1.3.6.1.2.1.25.2.2.0\n"; # memsize - exit 0; -} - -if ($0 =~ /^(?:|.*\/)snmp_([^_]+)_memory$/) -{ - $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."; -} - -# memory usage pr. process -my $hrSWRunPerfMem = "1.3.6.1.2.1.25.5.1.1.2."; - -my ($session, $error) = Net::SNMP->session( - -hostname => $host, - -community => $community, - -port => $port - ); - -if (!defined ($session)) -{ - die "Croaking: $error"; -} - -# total memory -my $memsize = &get_single($session, "1.3.6.1.2.1.25.2.2.0") * 1024; - -if (defined $ARGV[0] and $ARGV[0] eq "config") -{ - print "host_name $host\n"; - print "graph_title Memory usage\n"; - print "graph_category system\n"; - print "graph_vlabel Bytes\n"; - print "graph_info This grap shows memory usage.\n"; - - # some devices reports negative memtotal value - print "# Total memsize reported $memsize..." if $DEBUG; - - if ($memsize > 0) - { - print "graph_args --base 1024 -l 0 --upper-limit $memsize\n"; - } - else - { - print "graph_args --base 1024 -l 0\n"; - } - - print "memory.draw AREA\n"; - print "memory.label memory\n"; - - exit 0; -} - -my $processes = get_by_regex($session, $hrSWRunPerfMem, "[1-9]"); - -# the values -my $memtotal = 0; -while (my ($pid, $mem) = each(%$processes)) { - $memtotal += $mem; -} -$memtotal*=1024; -printf "memory.value $memtotal\n"; - -sub get_single -{ - my $handle = shift; - my $oid = shift; - - print "# Getting single $oid..." if $DEBUG; - - $response = $handle->get_request ($oid); - - if (!defined $response->{$oid}) - { - print "undef\n" if $DEBUG; - return undef; - } - else - { - print "\"$response->{$oid}\"\n" if $DEBUG; - return $response->{$oid}; - } -} - -sub get_by_regex -{ - my $handle = shift; - my $oid = shift; - my $regex = shift; - my $result = {}; - my $num = 0; - my $ret = $oid . "0"; - my $response; - - print "# Starting browse of $oid...\n" if $DEBUG; - - while (1) - { - if ($num == 0) - { - print "# Checking for $ret...\n" if $DEBUG; - $response = $handle->get_request ($ret); - } - if ($num or !defined $response) - { - print "# Checking for sibling of $ret...\n" if $DEBUG; - $response = $handle->get_next_request ($ret); - } - if (!$response) - { - return undef; - } - my @keys = keys %$response; - $ret = $keys[0]; - print "# Analyzing $ret (compared to $oid)...\n" if $DEBUG; - last unless ($ret =~ /^$oid/); - $num++; - next unless ($response->{$ret} =~ /$regex/); - @keys = split (/\./, $ret); - $result->{$keys[-1]} = $response->{$ret};; - print "# Index $num: ", $keys[-1], " (", $response->{$ret}, ")\n" if $DEBUG; - }; - return $result; -}