56 lines
1.7 KiB
PHP
56 lines
1.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Observium
|
|
*
|
|
* This file is part of Observium.
|
|
*
|
|
* @package observium
|
|
* @subpackage discovery
|
|
* @copyright (C) Adam Armstrong
|
|
*
|
|
*/
|
|
|
|
if (!is_array($ns_sensor_array) && strpos($device['hardware'], 'NetScaler Virtual Appliance') === FALSE) {
|
|
$ns_sensor_array = [];
|
|
echo(" sysHealthCounterValue ");
|
|
$ns_sensor_array = snmpwalk_cache_oid($device, "sysHealthCounterValue", $ns_sensor_array, "NS-ROOT-MIB");
|
|
}
|
|
|
|
foreach ($ns_sensor_array as $descr => $data) {
|
|
$value = $data['sysHealthCounterValue'];
|
|
|
|
$oid = ".1.3.6.1.4.1.5951.4.1.1.41.7.1.2." . snmp_string_to_oid($descr);
|
|
|
|
if (strpos($descr, "Temp") !== FALSE) {
|
|
$scale = 1;
|
|
$type = "temperature";
|
|
} elseif (strpos($descr, "Fan") !== FALSE) {
|
|
$scale = 1;
|
|
$type = "fanspeed";
|
|
} elseif (strpos($descr, "Volt") !== FALSE) {
|
|
$scale = 0.001;
|
|
$type = "voltage";
|
|
} elseif (strpos($descr, "Vtt") !== FALSE) {
|
|
$scale = 0.001;
|
|
$type = "voltage";
|
|
} elseif (preg_match('/PowerSupply\dFailureStatus/', $descr)) {
|
|
$physical = 'power';
|
|
$type = "state";
|
|
} else {
|
|
continue;
|
|
} // Skip all other
|
|
|
|
if ($type == 'state') {
|
|
// FIXME, when will converted to definition-based, note that here used "named" index instead numeric
|
|
discover_status($device, $oid, $descr, 'netscaler-state', $descr, $value, ['entPhysicalClass' => $physical]);
|
|
} elseif (is_numeric($value) && $value !== '0') {
|
|
// FIXME, when will converted to definition-based, note that here used "named" index instead numeric
|
|
discover_sensor($type, $device, $oid, $descr, 'netscaler-health', $descr, $scale, $value);
|
|
}
|
|
}
|
|
|
|
unset($ns_sensor_array);
|
|
|
|
// EOF
|