Révision a8f7b903
brand new, perl based, hplog_t-a-hp-proliant-server-temperatures plugin which will automatically graph any number of sensors.
| plugins/sensors/hplog_t-a-hp-proliant-server-temperatures | ||
|---|---|---|
| 1 |
#!/bin/bash |
|
| 2 |
|
|
| 3 |
if [ "$1" == "config" ] ; then |
|
| 4 |
echo "graph_title HP server temperatures" |
|
| 5 |
echo "graph_vlabel celsius" |
|
| 6 |
echo "graph_category environment" |
|
| 7 |
echo "graph_info temperatures read using hpscan" |
|
| 8 |
echo "processor_zone.label Processor zone temperature" |
|
| 9 |
echo "io_zone.label I/O zone temperature" |
|
| 10 |
echo "processor0.label Processor 0 temperature" |
|
| 11 |
echo "processor1.label Processor 1 temperature" |
|
| 12 |
echo "psu_bay.label PSU bay temperature" |
|
| 13 |
exit 0 |
|
| 14 |
fi |
|
| 15 |
|
|
| 16 |
#ID TYPE LOCATION STATUS CURRENT THRESHOLD |
|
| 17 |
#1 ADM1022 Processor Zone Normal 104F/ 40C 143F/ 62C |
|
| 18 |
#2 ADM1022 CPU (1) Normal 96F/ 36C 163F/ 73C |
|
| 19 |
#3 ADM1022 I/O Zone Normal 118F/ 48C 154F/ 68C |
|
| 20 |
#4 ADM1022 CPU (2) Normal 127F/ 53C 163F/ 73C |
|
| 21 |
#5 ADM1022 Pwr. Supply Bay Normal 95F/ 35C 127F/ 53C |
|
| 22 |
|
|
| 23 |
CPUNUMBER=0 |
|
| 24 |
|
|
| 25 |
/sbin/hplog -t | ( while read a b c d e f g h i j k l m |
|
| 26 |
do |
|
| 27 |
if [ "$c" == "Processor" ] ; then |
|
| 28 |
echo -n "processor_zone.value " |
|
| 29 |
echo $g | sed 's/C//' |
|
| 30 |
elif [ "$c" == "I/O" ] ; then |
|
| 31 |
echo -n "io_zone.value " |
|
| 32 |
echo $g | sed 's/C//' |
|
| 33 |
elif [ "$c" == "CPU" ] ; then |
|
| 34 |
echo -n "processor$CPUNUMBER.value " |
|
| 35 |
echo $g | sed 's/C//' |
|
| 36 |
CPUNUMBER=`expr $CPUNUMBER + 1` |
|
| 37 |
elif [ "$c" == "Pwr." ] ; then |
|
| 38 |
echo -n "psu_bay.value " |
|
| 39 |
echo $h | sed 's/C//' |
|
| 40 |
fi |
|
| 41 |
|
|
| 42 |
done |
|
| 43 |
) |
|
| 1 |
#!/usr/bin/perl -w |
|
| 2 |
|
|
| 3 |
=head hplog_t |
|
| 4 |
|
|
| 5 |
DL 380 G6 |
|
| 6 |
ID TYPE LOCATION STATUS CURRENT THRESHOLD |
|
| 7 |
1 Basic Sensor Ambient Normal 68F/ 20C 105F/ 41C |
|
| 8 |
2 Basic Sensor CPU (1) Normal 104F/ 40C 179F/ 82C |
|
| 9 |
3 Basic Sensor CPU (2) Normal 104F/ 40C 179F/ 82C |
|
| 10 |
4 Basic Sensor Memory Board Normal 105F/ 41C 188F/ 87C |
|
| 11 |
5 Basic Sensor Memory Board Normal 105F/ 41C 188F/ 87C |
|
| 12 |
6 Basic Sensor Memory Board Normal 100F/ 38C 188F/ 87C |
|
| 13 |
7 Basic Sensor Memory Board Normal 98F/ 37C 188F/ 87C |
|
| 14 |
8 Basic Sensor Pwr. Supply Bay Normal 123F/ 51C 194F/ 90C |
|
| 15 |
9 Basic Sensor Pwr. Supply Bay Normal 105F/ 41C 149F/ 65C |
|
| 16 |
10 Basic Sensor I/O Zone Normal 125F/ 52C 194F/ 90C |
|
| 17 |
11 Basic Sensor I/O Zone Normal 114F/ 46C 158F/ 70C |
|
| 18 |
12 Basic Sensor I/O Zone Normal 131F/ 55C 194F/ 90C |
|
| 19 |
13 Basic Sensor I/O Zone Normal ---F/---C 158F/ 70C |
|
| 20 |
14 Basic Sensor I/O Zone Normal ---F/---C 158F/ 70C |
|
| 21 |
15 Basic Sensor I/O Zone Normal ---F/---C 158F/ 70C |
|
| 22 |
16 Basic Sensor I/O Zone Normal ---F/---C 158F/ 70C |
|
| 23 |
17 Basic Sensor I/O Zone Normal ---F/---C 158F/ 70C |
|
| 24 |
18 Basic Sensor I/O Zone Normal ---F/---C 158F/ 70C |
|
| 25 |
19 Basic Sensor Processor Zone Normal 95F/ 35C 158F/ 70C |
|
| 26 |
20 Basic Sensor Processor Zone Normal 95F/ 35C 158F/ 70C |
|
| 27 |
21 Basic Sensor Processor Zone Normal 105F/ 41C 176F/ 80C |
|
| 28 |
22 Basic Sensor Processor Zone Normal 102F/ 39C 176F/ 80C |
|
| 29 |
23 Basic Sensor I/O Zone Normal 118F/ 48C 170F/ 77C |
|
| 30 |
24 Basic Sensor Memory Board Normal 109F/ 43C 158F/ 70C |
|
| 31 |
25 Basic Sensor Memory Board Normal 98F/ 37C 158F/ 70C |
|
| 32 |
26 Basic Sensor Memory Board Normal 98F/ 37C 158F/ 70C |
|
| 33 |
27 Basic Sensor I/O Zone Normal ---F/---C 158F/ 70C |
|
| 34 |
28 Basic Sensor I/O Zone Normal ---F/---C 158F/ 70C |
|
| 35 |
29 Basic Sensor System Board Normal 109F/ 43C 140F/ 60C |
|
| 36 |
30 Basic Sensor I/O Zone Normal 168F/ 76C 230F/110C |
|
| 37 |
|
|
| 38 |
|
|
| 39 |
=cut |
|
| 40 |
|
|
| 41 |
use strict; |
|
| 42 |
|
|
| 43 |
|
|
| 44 |
|
|
| 45 |
|
|
| 46 |
open (HPLOGT,"/sbin/hplog -t |"); |
|
| 47 |
#open (HPLOGT,"<hplog_t-example"); |
|
| 48 |
my @hplog_t=<HPLOGT>; |
|
| 49 |
close HPLOGT; |
|
| 50 |
my %hplog; |
|
| 51 |
|
|
| 52 |
#print "@hplog_t"; |
|
| 53 |
|
|
| 54 |
if($ARGV[0] and $ARGV[0] eq "config") {
|
|
| 55 |
|
|
| 56 |
|
|
| 57 |
print "graph_title HP server temperatures\n"; |
|
| 58 |
print "graph_vlabel celsius\n"; |
|
| 59 |
print "graph_category sensors\n"; |
|
| 60 |
print "graph_info temperatures read using hplog -t\n"; |
|
| 61 |
|
|
| 62 |
} |
|
| 63 |
|
|
| 64 |
|
|
| 65 |
foreach (@hplog_t) |
|
| 66 |
{
|
|
| 67 |
|
|
| 68 |
#print; |
|
| 69 |
chomp; |
|
| 70 |
# will weed out ---C |
|
| 71 |
if (m@^\s*(\d+)\s+Basic Sensor\s+(\S+[\S\s]+?\S+)\s+(\S+)\s+\S+?/\s*(\d+)C\s+\S+?/\s*(\d+)C@) |
|
| 72 |
{
|
|
| 73 |
|
|
| 74 |
my $id=$1; |
|
| 75 |
my $label=$2; |
|
| 76 |
my $status=$3; |
|
| 77 |
my $temp=$4; |
|
| 78 |
my $maxtemp=$5; |
|
| 79 |
#print "$id $_\n"; |
|
| 80 |
|
|
| 81 |
#print "$id.label $label $id\n"; |
|
| 82 |
|
|
| 83 |
if($ARGV[0] and $ARGV[0] eq "config") {
|
|
| 84 |
|
|
| 85 |
print "id_$id.label $id:$label\n"; |
|
| 86 |
print "id_$id.critical $maxtemp\n"; |
|
| 87 |
} |
|
| 88 |
else |
|
| 89 |
{
|
|
| 90 |
|
|
| 91 |
print "id_$id.value $temp\n"; |
|
| 92 |
} |
|
| 93 |
|
|
| 94 |
} |
|
| 95 |
|
|
| 96 |
} |
|
| 97 |
|
|
| 98 |
|
|
| 99 |
|
|
Formats disponibles : Unified diff