$ucd_oids = array(); if ($storage['storage_hc']) { if ($cache_storage['ucd-snmp-mib-walked']['storage_hc'] !== TRUE) { $ucd_oids = array('dskTotalHigh', 'dskTotalLow', 'dskUsedHigh', 'dskUsedLow', 'dskAvailHigh', 'dskAvailLow'); $cache_storage['ucd-snmp-mib-walked']['storage_hc'] = TRUE; } } else { if ($cache_storage['ucd-snmp-mib-walked']['storage'] !== TRUE) { $ucd_oids = array('dskTotal', 'dskUsed', 'dskAvail'); $cache_storage['ucd-snmp-mib-walked']['storage'] = TRUE; } } $index = $storage['storage_index']; $storage['units'] = 1024; // Hardcode units. foreach ($ucd_oids as $oid) { $cache_storage['ucd-snmp-mib'] = snmpwalk_cache_multi_oid($device, $oid, $cache_storage['ucd-snmp-mib'], 'UCD-SNMP-MIB'); } foreach (array('size' => 'dskTotal', 'used' => 'dskUsed', 'free' => 'dskAvail') as $param => $oid) { if ($storage['storage_hc']) { $storage[$param] = snmp_size64_high_low($cache_storage['ucd-snmp-mib'][$index][$oid . 'High'], $cache_storage['ucd-snmp-mib'][$index][$oid . 'Low']); $storage[$param] *= $storage['units']; } else { $storage[$param] = $cache_storage['ucd-snmp-mib'][$index][$oid] * $storage['units']; } } if ($storage['storage_hc'] && $storage['size'] - $storage['used'] - $storage['free'] > 100) { $storage['used'] = $storage['size'] - $storage['free']; } // F.u. BSNMPd // EOF
* Observium * * This file is part of Observium. * * @package observium * @subpackage poller * @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited * */ $index = $storage['storage_index']; if (!is_array($cache_storage['NIMBLE-MIB'])) { foreach (array('volSizeLow', 'volSizeHigh', 'volUsageLow', 'volUsageHigh', 'volOnline') as $param) { $cache_storage['NIMBLE-MIB'] = snmpwalk_cache_oid($device, $param, $cache_storage['NIMBLE-MIB'], 'NIMBLE-MIB'); } if (OBS_DEBUG > 1 && count($cache_storage['NIMBLE-MIB'])) { print_vars($cache_storage['NIMBLE-MIB']); } } $entry = $cache_storage['NIMBLE-MIB'][$index]; // FIXME, probably need additional field for storages like OperStatus up/down $ignore = in_array($entry['volOnline'], array('0', 'false')) ? 1 : 0; if ($storage['storage_ignore'] != $ignore) { force_discovery($device, 'storage'); } $storage['units'] = 1048576; // Hardcode units. In MIB is written that bytes, but really Mbytes $storage['size'] = snmp_size64_high_low($entry['volSizeHigh'], $entry['volSizeLow']) * $storage['units']; $storage['used'] = snmp_size64_high_low($entry['volUsageHigh'], $entry['volUsageLow']) * $storage['units']; $storage['free'] = $storage['size'] - $storage['used']; unset($index, $entry, $ignore); // EOF
echo " {$mib} "; /* Available data: Array ( [gpfsFileSystemName] => scratch_gs [gpfsFileSystemStatus] => recovered [gpfsFileSystemXstatus] => OFW [gpfsFileSystemTotalSpaceL] => 1946157056 [gpfsFileSystemTotalSpaceH] => 94 [gpfsFileSystemNumTotalInodesL] => 402653184 [gpfsFileSystemNumTotalInodesH] => 0 [gpfsFileSystemFreeSpaceL] => 37208064 [gpfsFileSystemFreeSpaceH] => 26 [gpfsFileSystemNumFreeInodesL] => 326910126 [gpfsFileSystemNumFreeInodesH] => 0 ) */ foreach ($cache_discovery['gpfs-mib'] as $index => $storage) { $fstype = "gpfs"; $descr = "/" . $storage['gpfsFileSystemName']; $hc = 1; $size = snmp_size64_high_low($storage['gpfsFileSystemTotalSpaceH'], $storage['gpfsFileSystemTotalSpaceL']) * 1024; $free = snmp_size64_high_low($storage['gpfsFileSystemFreeSpaceH'], $storage['gpfsFileSystemFreeSpaceL']) * 1024; $used = $size - $free; discover_storage($valid['storage'], $device, $index, $fstype, $mib, $descr, 1024, $size, $used, array('storage_hc' => $hc)); unset($deny, $fstype, $descr, $size, $used, $free, $percent, $hc); } unset($index, $storage); }
<?php /** * Observium * * This file is part of Observium. * * @package observium * @subpackage poller * @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited * */ echo ' GPFS-MIB: '; $index = $storage['storage_index']; if (!is_array($cache_storage['gpfs-mib'])) { foreach (array('gpfsFileSystemTotalSpaceL', 'gpfsFileSystemTotalSpaceH', 'gpfsFileSystemFreeSpaceL', 'gpfsFileSystemFreeSpaceH') as $param) { $cache_storage['gpfs-mib'] = snmpwalk_cache_oid($device, $param, $cache_storage['gpfs-mib'], 'GPFS-MIB'); } if (OBS_DEBUG && count($cache_storage['gpfs-mib'])) { print_vars($cache_storage['gpfs-mib']); } } $entry = $cache_storage['gpfs-mib'][$index]; $storage['units'] = 1024; // Hardcode units. $storage['size'] = snmp_size64_high_low($entry['gpfsFileSystemTotalSpaceH'], $entry['gpfsFileSystemTotalSpaceL']) * 1024; $storage['free'] = snmp_size64_high_low($entry['gpfsFileSystemFreeSpaceH'], $entry['gpfsFileSystemFreeSpaceL']) * 1024; $storage['used'] = $storage['size'] - $storage['free']; unset($index, $entry); // EOF
unset($deny, $fstype, $descr, $size, $used, $units, $path, $dsk, $hc); } } else { if (count($cache_discovery['ucd-snmp-mib'])) { // Discover 'UCD-SNMP-MIB' if 'HOST-RESOURCES-MIB' empty. $mib = 'UCD-SNMP-MIB'; foreach ($cache_discovery['ucd-snmp-mib'] as $index => $dsk) { $hc = 0; $fstype = $dsk['dskDevice']; $descr = $dsk['dskPath']; $units = 1024; $deny = FALSE; // Using 64bit counters if available if (isset($dsk['dskTotalLow'])) { $hc = 1; $size = snmp_size64_high_low($dsk['dskTotalHigh'], $dsk['dskTotalLow']); $size *= $units; $used = snmp_size64_high_low($dsk['dskUsedHigh'], $dsk['dskUsedLow']); $used *= $units; } else { $size = $dsk['dskTotal'] * $units; $used = $dsk['dskUsed'] * $units; } if (!$deny && is_numeric($index)) { discover_storage($valid['storage'], $device, $index, $fstype, $mib, $descr, $units, $size, $used, array('storage_hc' => $hc)); } unset($deny, $fstype, $descr, $size, $used, $units, $hc); } } } // EOF
* @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited * */ $mib = 'NIMBLE-MIB'; //$cache_discovery[$mib] $oids = snmpwalk_cache_oid($device, 'volName', array(), $mib); if (count($oids)) { foreach (array('volSizeLow', 'volSizeHigh', 'volUsageLow', 'volUsageHigh', 'volOnline') as $oid) { $oids = snmpwalk_cache_oid($device, $oid, $oids, $mib); } if (OBS_DEBUG > 1) { print_vars($oids); } foreach ($oids as $index => $storage) { $hc = 1; $fstype = 'volume'; $descr = $storage['volName']; $units = 1048576; // Hardcode units. In MIB is written that bytes, but really Mbytes // FIXME, probably need additional field for storages like OperStatus up/down $ignore = in_array($storage['volOnline'], array('0', 'false')) ? 1 : 0; $deny = FALSE; $size = snmp_size64_high_low($storage['volSizeHigh'], $storage['volSizeLow']) * $units; $used = snmp_size64_high_low($storage['volUsageHigh'], $storage['volUsageLow']) * $units; if (!$deny && is_numeric($index)) { discover_storage($valid['storage'], $device, $index, $fstype, $mib, $descr, $units, $size, $used, array('storage_hc' => $hc, 'storage_ignore' => $ignore)); } } } unset($oids, $deny, $fstype, $descr, $size, $used, $units, $hc); // EOF