X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/4dca09e799a49d61e09a832a8d7bc23f2fc176a4..1751b31885773d33dcf3efb396f198f1d10a2221:/cookbooks/munin/files/default/plugins/hpasmcli2_ diff --git a/cookbooks/munin/files/default/plugins/hpasmcli2_ b/cookbooks/munin/files/default/plugins/hpasmcli2_ deleted file mode 100755 index 216999862..000000000 --- a/cookbooks/munin/files/default/plugins/hpasmcli2_ +++ /dev/null @@ -1,165 +0,0 @@ -#!/usr/bin/env perl -# -# Plugin to monitor Proliant server health status using hpasmcli. -# -# Config variables: -# user root -- requrired by hpasmcli -# env.hpasmcli -- path to hpasmcli executable (optional) -# env.degree -- Unit of temperatures (C or F / default value is C) -# -# -# Author: Tsuyoshi Wada -# -# v1.0 2007/12/08 - First version -# -# Copyright (c) 2007 Tsuyoshi Wada -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT -# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# Magic markers -#%# family=contrib -#%# capabilities=autoconf suggest - -use strict; - -my $hpasmcli = exists $ENV{hpasmcli} ? $ENV{hpasmcli} : undef; -$hpasmcli = `which hpasmcli` unless $hpasmcli; -chomp $hpasmcli; -$hpasmcli = undef unless -x $hpasmcli; -my @dirs = qw(/usr/bin /usr/sbin /usr/local/bin /usr/local/sbin); -until ($hpasmcli or @dirs == 0) { - my $dir = shift @dirs; - my $path = $dir.'/hpasmcli'; - $hpasmcli = $path if -x $path; -} -my $degree = exists $ENV{degree} ? $ENV{degree} : 'C'; -my $deg_name = $degree eq 'C' ? "Celsius": "Fahrenheit"; - -if (defined($ARGV[0])) { - if ($ARGV[0] eq 'autoconf') { - if ($hpasmcli and -x $hpasmcli) { - my @chk_result = `$hpasmcli -s \"help\"`; - if ($? eq "0") { - print "yes\n"; - exit 0; - } else { - my $reason = 'Unknown error'; - foreach my $line (@chk_result) { - if ($line =~ /^ERROR/i) { - chomp($line); - $reason = $line; - last; - } - } - print "no ($reason)\n"; - exit 1; - } - } else { - print "no (hpasmcli not found)\n"; - exit 1; - } - } elsif ($ARGV[0] eq 'suggest') { - print "temp\nfans\n"; - exit 0; - } -} - -$0 =~ /hpasmcli2_(.+)*$/; -my $show_target = $1; -my @show_result = `$hpasmcli -s \"show $show_target\"`; -my %output; - -if (defined($show_target) and $show_target eq 'temp') { - foreach my $line (@show_result) { - if ($line =~ /^#/) { - $line =~ s/\s+/ /g; - $line =~ s/^\s//g; - my ($sensor, $loc, $temp, $threshold) = split(/\s/, $line); - next if ($temp eq "-"); - $loc =~ s/\/|#//g; - $temp = $degree eq 'C' ? (split(/\//, $temp))[0] : (split(/\//, $temp))[1]; - $temp =~ s/C|F//g; - $threshold = $degree eq 'C' ? (split(/\//, $threshold))[0] : (split(/\//, $threshold))[1]; - $threshold =~ s/C|F//g; - $sensor =~s/#//g; - $output{$sensor} = { - 'location' => lc($loc), - 'temp' => $temp, - 'threshold' => $threshold - }; - } - } - if (defined($ARGV[0]) and $ARGV[0] eq 'config') { - print "graph_title hpasm: Temperature\n"; - print "graph_args --base 1000 -l 0\n"; - print "graph_vlabel Degrees in $deg_name\n"; - print "graph_category sensors\n"; - print "graph_info This graph shows the temperatures as reported by hpasmcli.\n"; - foreach my $key (sort keys %output) { - print "temp$key.label $output{$key}->{'location'}\n"; - print "temp$key.warning " . ($output{$key}->{'threshold'} * 0.85) . "\n"; - print "temp$key.critical $output{$key}->{'threshold'}\n"; - } - } else { - foreach my $key (sort keys %output) { - print "temp$key.value $output{$key}->{'temp'}\n"; - } - } -} elsif (defined($show_target) and $show_target eq 'fans') { - foreach my $line (@show_result) { - if ($line =~ /^#/) { - $line =~ s/\s+/ /g; - $line =~ s/^\s//g; - my ($fan, $loc, $present, $speed, $rate, $redundant, $partner, $pluggable) = split(/\s/, $line); - next if ($present ne "Yes"); - $loc =~ s/\/|#//g; - $rate =~ s/\%//g; - my $threshold = '100'; - $fan =~s/#//g; - $output{$fan} = { - 'location' => lc($loc), - 'rate' => $rate, - 'threshold' => $threshold - }; - } - } - if (defined($ARGV[0]) and $ARGV[0] eq 'config') { - print "graph_title hpasm: Fans\n"; - print "graph_args --base 1000 -l 0\n"; - print "graph_vlabel of max (%)\n"; - print "graph_category sensors\n"; - print "graph_info This graph shows the info of fans as reported by hpasmcli.\n"; - foreach my $key (sort keys %output) { - print "fan$key.label FAN$key $output{$key}->{'location'}\n"; - print "fan$key.warning " . ($output{$key}->{'threshold'} * 0.75) . "\n"; - print "fan$key.critical $output{$key}->{'threshold'}\n"; - } - } else { - foreach my $key (sort keys %output) { - print "fan$key.value $output{$key}->{'rate'}\n"; - } - } -} else { - die "Unknown target specified ($show_target)\n"; -} - -exit 0;