]> git.uio.no Git - check_openmanage.git/commitdiff
den gamle pnp-templaten
authortrondham <trondham@e53b7cee-c147-0410-b3a0-ae4c1fa63963>
Tue, 28 Jun 2011 10:13:44 +0000 (10:13 +0000)
committertrondham <trondham@e53b7cee-c147-0410-b3a0-ae4c1fa63963>
Tue, 28 Jun 2011 10:13:44 +0000 (10:13 +0000)
git-svn-id: svn+ssh://vcs-usit.uio.no/svnroot/usit-unix-intern/trunk/usit-nagios-plugins/trondham/check_openmanage@20432 e53b7cee-c147-0410-b3a0-ae4c1fa63963

check_openmanage_legacy.php [new file with mode: 0644]

diff --git a/check_openmanage_legacy.php b/check_openmanage_legacy.php
new file mode 100644 (file)
index 0000000..b1e073b
--- /dev/null
@@ -0,0 +1,221 @@
+<?php
+#
+# PNP4Nagios template for check_openmanage 
+# Author:      Trond Hasle Amundsen
+# Contact:     t.h.amundsen@usit.uio.no
+# Website:      http://folk.uio.no/trondham/software/check_openmanage.html
+# Date:        2010-03-16
+
+# Array with different colors
+$colors = array("0022ff", "22ff22", "ff0000", "00aaaa", "ff00ff",
+               "ffa500", "cc0000", "0000cc", "0080C0", "8080C0",
+               "FF0080", "800080", "688e23", "408080", "808000",
+               "000000", "00FF00", "0080FF", "FF8000", "800000",
+               "FB31FB");
+
+# Color for power usage in watts
+$PWRcolor = "66FF00";
+
+# Counters
+$count = 0;  # general counter
+$f = 0;      # fan probe counter
+$t = 0;      # temp probe counter
+$a = 0;      # amp probe counter
+$e = 0;      # enclosure counter
+
+# Flags
+$visited_fan  = 0;
+$visited_temp = 0;
+$visited_pwr  = 0;
+
+# Enclosure id
+$enclosure_id = '';
+
+# Default title
+$def_title = 'Dell OpenManage';
+
+# Loop through the performance data
+foreach ($DS as $i) {
+       
+    # AMPERAGE PROBE
+    if(preg_match('/^pwr_mon_/', $NAME[$i]) || preg_match('/^p\d+[aw]$/', $NAME[$i])) {
+
+       # Watt
+       if (preg_match('/system/', $NAME[$i]) || preg_match('/^p\d+w$/', $NAME[$i])) {
+       
+           # Long label
+           $NAME[$i] = preg_replace('/^pwr_mon_\d+_/', '', $NAME[$i]);
+           $NAME[$i] = preg_replace('/_/', ' ', $NAME[$i]);
+
+           # Short label
+           $NAME[$i] = preg_replace('/^p(\d+)w$/', 'Power Probe $1', $NAME[$i]);
+
+           ++$count;
+           $ds_name[$count] = "Power Consumption";
+           $vlabel = "Watt";
+
+           $title = $ds_name[$count];
+
+           $opt[$count] = "--slope-mode --vertical-label \"$vlabel\" --title \"$def_title: $title\" ";
+
+           if(isset($def[$count])){
+               $def[$count] .= "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
+           }
+           else {
+               $def[$count] = "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
+           }
+           $def[$count] .= "AREA:var$i#$PWRcolor:\"$NAME[$i]\" " ;
+           $def[$count] .= "LINE:var$i#000000: " ;
+           $def[$count] .= "GPRINT:var$i:LAST:\"%6.0lf W last \" ";
+           $def[$count] .= "GPRINT:var$i:MAX:\"%6.0lf W max \" ";
+           $def[$count] .= "GPRINT:var$i:AVERAGE:\"%6.2lf W avg \\n\" ";
+       }
+       # Ampere
+       elseif (preg_match('/current/', $NAME[$i]) || preg_match('/^p\d+a$/', $NAME[$i])) {
+
+           # Long label
+           $NAME[$i] = preg_replace('/^pwr_mon_\d+_/', '', $NAME[$i]);
+           $NAME[$i] = preg_replace('/_/', ' ', $NAME[$i]);
+           $NAME[$i] = preg_replace('/ current \d+$/', '', $NAME[$i]);
+           $NAME[$i] = preg_replace('/ps/', 'PowerSupply', $NAME[$i]);
+
+           # Short label
+           $NAME[$i] = preg_replace('/^p(\d+)a$/', 'Amperage Probe $1', $NAME[$i]);
+               
+           if ($visited_pwr == 0) {
+               ++$count;
+               $visited_pwr = 1;
+           }
+           $ds_name[$count] = "Amperage Probes";
+           $vlabel = "Ampere";
+
+           $title = $ds_name[$count];
+
+           $opt[$count] = "-X0 --lower-limit 0 --slope-mode --vertical-label \"$vlabel\" --title \"$def_title: $title\" ";
+           if(isset($def[$count])){
+               $def[$count] .= "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
+           }
+           else {
+               $def[$count] = "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
+           }
+           $def[$count] .= "LINE:var$i#".$colors[$a].":\"$NAME[$i]\" " ;
+           $def[$count] .= "AREA:var$i#".$colors[$a++]."20: " ;
+           $def[$count] .= "GPRINT:var$i:LAST:\"%4.2lf A last \" ";
+           $def[$count] .= "GPRINT:var$i:MAX:\"%4.2lf A max \" ";
+           $def[$count] .= "GPRINT:var$i:AVERAGE:\"%4.4lf A avg \\n\" ";
+       }
+    }
+    
+    # FANS (RPMs)
+    if(preg_match('/^fan_/', $NAME[$i]) || preg_match('/^f\d+$/', $NAME[$i])){
+       if ($visited_fan == 0) {
+           ++$count;
+           $visited_fan = 1;
+       }
+
+       # Long label
+       $NAME[$i] = preg_replace('/^fan_\d+_/', '', $NAME[$i]);
+       $NAME[$i] = preg_replace('/_rpm$/', '', $NAME[$i]);
+       $NAME[$i] = preg_replace('/_/', ' ', $NAME[$i]);
+
+       # Short label
+       $NAME[$i] = preg_replace('/^f(\d+)$/', 'Fan Probe $1', $NAME[$i]);
+
+       $ds_name[$count] = "Fan Speed";
+
+       $opt[$count] = "-X0 --slope-mode --vertical-label \"RPMs\" --title \"$def_title: Fan Speeds\" ";
+       if(isset($def[$count])){
+           $def[$count] .= "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
+       }
+       else {
+           $def[$count] = "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
+       }
+       $def[$count] .= "LINE:var$i#".$colors[$f++].":\"$NAME[$i]\" " ;
+       $def[$count] .= "GPRINT:var$i:LAST:\"%6.0lf RPM last \" ";
+       $def[$count] .= "GPRINT:var$i:MAX:\"%6.0lf RPM max \" ";
+       $def[$count] .= "GPRINT:var$i:AVERAGE:\"%6.2lf RPM avg \\n\" ";
+    }
+       
+    # TEMPERATURES (Celsius)
+    if(preg_match('/^temp_/', $NAME[$i]) || preg_match('/^t\d+$/', $NAME[$i])){
+       if ($visited_temp == 0) {
+           ++$count;
+           $visited_temp = 1;
+       }
+
+       # Long label
+       $NAME[$i] = preg_replace('/^temp_\d+_/', '', $NAME[$i]);
+       $NAME[$i] = preg_replace('/_/', ' ', $NAME[$i]);
+
+       # Short label
+       $NAME[$i] = preg_replace('/^t(\d+)$/', 'Temperature Probe $1', $NAME[$i]);
+
+       $ds_name[$count] = "Chassis Temperatures";
+
+       $warnThresh = "INF";
+       $critThresh = "INF";
+
+       if ($WARN[$i] != "") {
+           $warnThresh = $WARN[$i];
+       }
+       if ($CRIT[$i] != "") {
+           $critThresh = $CRIT[$i];
+       }
+
+       $opt[$count] = "--slope-mode --vertical-label \"Celsius\" --title \"$def_title: Chassis Temperatures\" ";
+       if(isset($def[$count])){
+           $def[$count] .= "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
+       }
+       else {
+           $def[$count] = "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
+       }
+       $def[$count] .= "LINE:var$i#".$colors[$t++].":\"$NAME[$i]\" " ;
+       $def[$count] .= "GPRINT:var$i:LAST:\"%6.0lf C last \" ";
+       $def[$count] .= "GPRINT:var$i:MAX:\"%6.0lf C max \" ";
+       $def[$count] .= "GPRINT:var$i:AVERAGE:\"%6.2lf C avg \\n\" ";
+    }
+       
+    # ENCLOSURE TEMPERATURES (Celsius)
+    if(preg_match('/^enclosure_(?P<id>.+?)_temp_\d+$/', $NAME[$i], $matches)
+       || preg_match('/^e(?P<id>.+?)t\d+$/', $NAME[$i], $matches)) {
+       $this_id = $matches['id'];
+
+       if ($enclosure_id != $this_id) {
+           $e = 0;
+           ++$count;
+           $enclosure_id = $this_id;
+       }
+
+       # Long label
+       $NAME[$i] = preg_replace('/^enclosure_.+?_temp_(\d+)$/', 'Probe $1', $NAME[$i]);
+
+       # Short label
+       $NAME[$i] = preg_replace('/^e.+?t(\d+)$/', 'Probe $1', $NAME[$i]);
+
+       $ds_name[$count] = "Enclosure $enclosure_id Temperatures";
+
+       $warnThresh = "INF";
+       $critThresh = "INF";
+
+       if ($WARN[$i] != "") {
+           $warnThresh = $WARN[$i];
+       }
+       if ($CRIT[$i] != "") {
+           $critThresh = $CRIT[$i];
+       }
+
+       $opt[$count] = "--slope-mode --vertical-label \"Celsius\" --title \"$def_title: Enclosure $enclosure_id Temperatures\" ";
+
+       if(isset($def[$count])){
+           $def[$count] .= "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
+       }
+       else {
+           $def[$count] = "DEF:var$i=$rrdfile:$DS[$i]:AVERAGE " ;
+       }
+       $def[$count] .= "LINE:var$i#".$colors[$e++].":\"$NAME[$i]\" " ;
+       $def[$count] .= "GPRINT:var$i:LAST:\"%6.0lf C last \" ";
+       $def[$count] .= "GPRINT:var$i:MAX:\"%6.0lf C max \" ";
+       $def[$count] .= "GPRINT:var$i:AVERAGE:\"%6.2lf C avg \\n\" ";
+    }
+}
+?>