if (isset($config['ignore_mount_removable']) && $config['ignore_mount_removable'] && $fstype == "hrStorageRemovableDisk") { $deny = TRUE; print_debug("skip(removable)"); } if (isset($config['ignore_mount_network']) && $config['ignore_mount_network'] && $fstype == "hrStorageNetworkDisk") { $deny = TRUE; print_debug("skip(network)"); } if (isset($config['ignore_mount_optical']) && $config['ignore_mount_optical'] && $fstype == "hrStorageCompactDisc") { $deny = TRUE; print_debug("skip(cd)"); } if (!$deny) { //32bit counters $size = snmp_dewrap32bit($storage['hrStorageSize']) * $units; $used = snmp_dewrap32bit($storage['hrStorageUsed']) * $units; $path = rewrite_storage($descr); // Find index from 'UCD-SNMP-MIB::dskTable' foreach ($cache_discovery['ucd-snmp-mib'] as $dsk) { if ($dsk['dskPath'] === $path) { // Using 64bit counters if available if (isset($dsk['dskTotalLow'])) { $dsk['units'] = 1024; $dsk['size'] = $dsk['dskTotalHigh'] * 4294967296.0 + $dsk['dskTotalLow']; $dsk['size'] *= $dsk['units']; if ($dsk['size'] - $size > $units) { // Use 64bit counters only if dskTotal bigger then hrStorageSize // This is try.. if, if, if and more if $hc = 1; $mib = 'UCD-SNMP-MIB'; $index = $dsk['dskIndex'];
<?php // HOST-RESOURCES-MIB - Storage Objects if (!is_array($storage_cache['hrstorage'])) { $storage_cache['hrstorage'] = snmpwalk_cache_oid($device, "hrStorageEntry", NULL, "HOST-RESOURCES-MIB:HOST-RESOURCES-TYPES"); if ($debug) { print_r($storage_cache); } } if (is_array($storage_cache['hrstorage']) && !is_array($storage_cache['dsk'])) { $storage_cache['dsk'] = snmpwalk_cache_oid($device, 'dskEntry', NULL, 'UCD-SNMP-MIB'); } $entry = $storage_cache['hrstorage'][$storage['storage_index']]; $storage['units'] = $entry['hrStorageAllocationUnits']; $storage['used'] = snmp_dewrap32bit($entry['hrStorageUsed']) * $storage['units']; $storage['size'] = snmp_dewrap32bit($entry['hrStorageSize']) * $storage['units']; // hrStorageDescr.8 = /mnt/Media, type: zfs, dev: Media // hrStorageDescr.31 = / list($path) = explode(',', $storage['storage_descr']); // Find index from 'dskTable' foreach ($storage_cache['dsk'] as $dsk) { if ($dsk['dskPath'] === $path) { //Using 64bit counters if available if (isset($dsk['dskTotalLow'])) { $storage['size'] = $dsk['dskTotalLow'] * 1024; $storage['used'] = $dsk['dskUsedLow'] * 1024; } break; } } $storage['free'] = $storage['size'] - $storage['used'];
print_debug("Found peer IP: {$peer_ip} (AS{$peer_as}, LocalIP: {$local_ip})"); } //else { echo('nope'); } } } } if ($cisco_version !== 2) { // All MIBs except CISCO-BGP4-MIB $peers_data = snmpwalk_cache_oid($device, 'bgpPeerRemoteAs', array(), 'BGP4-MIB'); //$peers_data = snmpwalk_cache_oid($device, 'bgpPeerRemoteAddr', $peers_data, 'BGP4-MIB'); $peers_data = snmpwalk_cache_oid($device, 'bgpPeerLocalAddr', $peers_data, 'BGP4-MIB'); $peers_data = snmpwalk_cache_oid($device, 'bgpPeerIdentifier', $peers_data, 'BGP4-MIB'); $peers_data = snmpwalk_cache_oid($device, 'bgpPeerAdminStatus', $peers_data, 'BGP4-MIB'); echo "BGP4-MIB "; foreach ($peers_data as $peer_ip => $entry) { $peer_as = snmp_dewrap32bit($entry['bgpPeerRemoteAs']); // Dewrap for 32bit ASN $local_ip = $entry['bgpPeerLocalAddr']; if ($peer_ip == '0.0.0.0') { $peer_ip = ''; } $peer = array('id' => $entry['bgpPeerIdentifier'], 'local_ip' => $local_ip, 'ip' => $peer_ip, 'as' => $peer_as, 'admin_status' => $entry['bgpPeerAdminStatus']); if (!isset($p_list[$peer_ip][$peer_as]) && is_bgp_peer_valid($peer, $device)) { print_debug("Found peer IP: {$peer_ip} (AS{$peer_as}, LocalIP: {$local_ip})"); $peerlist[] = $peer; $p_list[$peer_ip][$peer_as] = 1; } } } if ($vendor_mib) { $vendor_bgp = snmpwalk_cache_oid($device, $vendor_PeerRemoteAs, array(), $vendor_mib, NULL, OBS_SNMP_ALL_NUMERIC_INDEX);
foreach ($vendor_oids[$device['os']] as $v => $val) { ${$v} = $val; } $use_vendor = TRUE; } else { $use_vendor = FALSE; } unset($bgp_peers, $cisco_peers, $vendor_peers); $bgpLocalAs = snmp_get($device, 'bgpLocalAs.0', '-Oqvn', 'BGP4-MIB', mib_dirs()); if ($use_vendor && $bgpLocalAs == '0') { // On JunOS and some other BGP4-MIB::bgpLocalAs.0 is always '0'. $v_bgpLocalAs = trim(snmp_walk($device, $vendor_PeerLocalAs, '-Oqvn', $vendor_mib, $vendor_mib_dir)); list($bgpLocalAs) = explode("\n", $v_bgpLocalAs); } if (is_numeric($bgpLocalAs) && $bgpLocalAs != '0') { $bgpLocalAs = snmp_dewrap32bit($bgpLocalAs); // Dewrap for 32bit ASN if ($use_vendor) { // Fetch specific vendor counters only if have IPv6 addresses (see down) // Vendor specific prefix counters $vendor_counters = snmpwalk_cache_oid($device, $vendor_PeerAcceptedPrefixes, array(), $vendor_mib, $vendor_mib_dir); $vendor_counters = snmpwalk_cache_oid($device, $vendor_PeerDeniedPrefixes, $vendor_counters, $vendor_mib, $vendor_mib_dir); $vendor_counters = snmpwalk_cache_oid($device, $vendor_PeerAdvertisedPrefixes, $vendor_counters, $vendor_mib, $vendor_mib_dir); } $use_cisco_v2 = FALSE; if ($device['os_group'] == 'cisco') { // Check Cisco cbgpPeer2Table first $cisco_peers = snmpwalk_cache_oid($device, 'cbgpPeer2State', array(), 'CISCO-BGP4-MIB', mib_dirs('cisco')); if (count($cisco_peers) > 0) { $use_cisco_v2 = TRUE; }
<?php /** * Observium * * This file is part of Observium. * * @package observium * @subpackage poller * @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited * */ $mib = 'HH3C-ENTITY-EXT-MIB'; if (!is_array($cache_storage[$mib])) { $cache_storage[$mib] = snmpwalk_cache_multi_oid($device, 'hh3cEntityExtMemUsage', array(), $mib); $cache_storage[$mib] = snmpwalk_cache_multi_oid($device, 'hh3cEntityExtMemSize', $cache_storage[$mib], $mib); } else { print_debug("Cached!"); } $index = $mempool['mempool_index']; $cache_mempool = $cache_storage[$mib][$index]; $mempool['total'] = snmp_dewrap32bit($cache_mempool['hh3cEntityExtMemSize']); $mempool['perc'] = $cache_mempool['hh3cEntityExtMemUsage']; // EOF
* @subpackage discovery * @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited * */ // HH3C-ENTITY-EXT-MIB::hh3cEntityExtMemUsage.30 = INTEGER: 58 // HH3C-ENTITY-EXT-MIB::hh3cEntityExtMemUsage.36 = INTEGER: 59 // HH3C-ENTITY-EXT-MIB::hh3cEntityExtMemUsage.42 = INTEGER: 58 // HH3C-ENTITY-EXT-MIB::hh3cEntityExtMemUsage.48 = INTEGER: 58 $oids = array('hh3cEntityExtMemUsage', 'hh3cEntityExtMemSize'); $mempool_array = array(); foreach ($oids as $oid) { $mempool_array = snmpwalk_cache_multi_oid($device, $oid, $mempool_array, $mib); if (!$GLOBALS['snmp_status']) { break; } } if (is_array($mempool_array)) { $mempool_array = snmpwalk_cache_oid($device, 'entPhysicalName', $mempool_array, 'ENTITY-MIB'); foreach ($mempool_array as $index => $entry) { $entry['hh3cEntityExtMemSize'] = snmp_dewrap32bit($entry['hh3cEntityExtMemSize']); if (is_numeric($entry['hh3cEntityExtMemUsage']) && $entry['hh3cEntityExtMemSize'] > 0) { $descr = $entry['entPhysicalName']; $percent = $entry['hh3cEntityExtMemUsage']; $total = $entry['hh3cEntityExtMemSize']; $used = $total * $percent / 100; discover_mempool($valid['mempool'], $device, $index, $mib, $descr, 1, $total, $used); } } } unset($mempool_array, $index, $descr, $total, $used, $chassis_count, $percent); // EOF
* * @package observium * @subpackage discovery * @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited * */ if (!isset($cache_discovery['host-resources-mib'])) { $cache_discovery['host-resources-mib'] = snmpwalk_cache_oid($device, "hrStorageEntry", array(), "HOST-RESOURCES-MIB:HOST-RESOURCES-TYPES"); } //$debug_stats = array('total' => 0, 'used' => 0); if (count($cache_discovery['host-resources-mib'])) { foreach ($cache_discovery['host-resources-mib'] as $index => $entry) { $descr = $entry['hrStorageDescr']; $units = $entry['hrStorageAllocationUnits']; $total = snmp_dewrap32bit($entry['hrStorageSize']); $used = snmp_dewrap32bit($entry['hrStorageUsed']); $deny = TRUE; switch ($entry['hrStorageType']) { case 'hrStorageVirtualMemory': case 'hrStorageRam': case 'hrStorageOther': case 'hrStorageTypes.20': case 'nwhrStorageDOSMemory': case 'nwhrStorageMemoryAlloc': case 'nwhrStorageMemoryPermanent': case 'nwhrStorageCacheBuffers': case 'nwhrStorageCacheMovable': case 'nwhrStorageCacheNonMovable': case 'nwhrStorageCodeAndDataMemory': case 'nwhrStorageIOEngineMemory': case 'nwhrStorageMSEngineMemory':
/** * @dataProvider providerSnmpDewrap32bit */ public function testSnmpDewrap32bit($result, $value) { $this->assertSame($result, snmp_dewrap32bit($value)); }
* @subpackage discovery * @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited * */ // HPN-ICF-ENTITY-EXT-MIB::hpnicfEntityExtMemUsage.30 = INTEGER: 58 // HPN-ICF-ENTITY-EXT-MIB::hpnicfEntityExtMemUsage.36 = INTEGER: 59 // HPN-ICF-ENTITY-EXT-MIB::hpnicfEntityExtMemUsage.42 = INTEGER: 58 // HPN-ICF-ENTITY-EXT-MIB::hpnicfEntityExtMemUsage.48 = INTEGER: 58 $oids = array('hpnicfEntityExtMemUsage', 'hpnicfEntityExtMemSize'); $mempool_array = array(); foreach ($oids as $oid) { $mempool_array = snmpwalk_cache_multi_oid($device, $oid, $mempool_array, 'ENTITY-MIB:HPN-ICF-ENTITY-EXT-MIB'); if (!$GLOBALS['snmp_status']) { break; } } if (is_array($mempool_array)) { $mempool_array = snmpwalk_cache_oid($device, 'entPhysicalName', $mempool_array, 'ENTITY-MIB:HPN-ICF-ENTITY-EXT-MIB'); foreach ($mempool_array as $index => $entry) { $entry['hpnicfEntityExtMemSize'] = snmp_dewrap32bit($entry['hpnicfEntityExtMemSize']); if (is_numeric($entry['hpnicfEntityExtMemUsage']) && $entry['hpnicfEntityExtMemSize'] > 0) { $descr = $entry['entPhysicalName']; $percent = $entry['hpnicfEntityExtMemUsage']; $total = $entry['hpnicfEntityExtMemSize']; $used = $total * $percent / 100; discover_mempool($valid['mempool'], $device, $index, $mib, $descr, 1, $total, $used); } } } unset($mempool_array, $index, $descr, $total, $used, $chassis_count, $percent); // EOF
<?php /** * Observium * * This file is part of Observium. * * @package observium * @subpackage poller * @copyright (C) 2006-2013 Adam Armstrong, (C) 2013-2016 Observium Limited * */ if (!is_array($cache_storage['host-resources-mib'])) { $cache_storage['host-resources-mib'] = snmpwalk_cache_oid($device, 'hrStorageEntry', array(), 'HOST-RESOURCES-MIB:HOST-RESOURCES-TYPES'); } else { print_debug('Cached!'); } $index = $mempool['mempool_index']; $entry = $cache_storage['host-resources-mib'][$index]; $mempool['mempool_precision'] = $entry['hrStorageAllocationUnits']; $mempool['used'] = intval(snmp_dewrap32bit($entry['hrStorageUsed'])); // if hrStorageUsed not set, use 0 $mempool['total'] = snmp_dewrap32bit($entry['hrStorageSize']); // EOF