Projet

Général

Profil

Révision a8f7b903

IDa8f7b9030f61336656806f8421a0aeba3c92c21c
Parent f51bde4b
Enfant d5b6a600

Ajouté par xavier renaut il y a plus de 13 ans

brand new, perl based, hplog_t-a-hp-proliant-server-temperatures plugin which will automatically graph any number of sensors.

Voir les différences:

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