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'];
Example #3
0
                 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);
Example #4
0
     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':
Example #8
0
 /**
  * @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