refactor: Remove all old style snmp calls (#7924)

This commit is contained in:
Tony Murray
2017-12-20 15:48:35 -06:00
committed by Neil Lathwood
parent 6d4ef1f50a
commit 046ed94f7c
7 changed files with 41 additions and 45 deletions

View File

@@ -1,9 +1,8 @@
<?php <?php
if ($device['os_group'] == 'cisco') { if ($device['os_group'] == 'cisco') {
$datas = shell_exec($config['snmpbulkwalk'].' -M '.$config['mibdir'].' -m CISCO-IP-STAT-MIB -Oqn '.snmp_gen_auth($device).' '.$device['hostname'].' cipMacSwitchedBytes'); $datas = snmp_walk($device, 'cipMacSwitchedBytes', '-Oqn', 'CISCO-IP-STAT-MIB');
// echo("$datas\n");
// echo("done\n");
foreach (explode("\n", $datas) as $data) { foreach (explode("\n", $datas) as $data) {
list($oid) = explode(' ', $data); list($oid) = explode(' ', $data);
$oid = str_replace('.1.3.6.1.4.1.9.9.84.1.2.1.1.4.', '', $oid); $oid = str_replace('.1.3.6.1.4.1.9.9.84.1.2.1.1.4.', '', $oid);

View File

@@ -82,14 +82,21 @@ if ($config['enable_bgp']) {
$peer_data .= "$v\n"; $peer_data .= "$v\n";
} }
} else { } else {
$peer_cmd = $config['snmpget'].' -M '.$config['mibdir'].' -m BGP4-MIB -OUvq '.snmp_gen_auth($device).' '.$device['hostname'].':'.$device['port'].' '; $oids = array(
$peer_cmd .= 'bgpPeerState.'.$peer['bgpPeerIdentifier'].' bgpPeerAdminStatus.'.$peer['bgpPeerIdentifier'].' bgpPeerInUpdates.'.$peer['bgpPeerIdentifier'].' bgpPeerOutUpdates.'.$peer['bgpPeerIdentifier'].' bgpPeerInTotalMessages.'.$peer['bgpPeerIdentifier'].' '; 'bgpPeerState.'.$peer['bgpPeerIdentifier'],
$peer_cmd .= 'bgpPeerOutTotalMessages.'.$peer['bgpPeerIdentifier'].' bgpPeerFsmEstablishedTime.'.$peer['bgpPeerIdentifier'].' bgpPeerInUpdateElapsedTime.'.$peer['bgpPeerIdentifier'].' '; 'bgpPeerAdminStatus.'.$peer['bgpPeerIdentifier'],
$peer_cmd .= 'bgpPeerLocalAddr.'.$peer['bgpPeerIdentifier'].''; 'bgpPeerInUpdates.'.$peer['bgpPeerIdentifier'],
$peer_data = trim(`$peer_cmd`); 'bgpPeerOutUpdates.'.$peer['bgpPeerIdentifier'],
'bgpPeerInTotalMessages.'.$peer['bgpPeerIdentifier'],
'bgpPeerOutTotalMessages.'.$peer['bgpPeerIdentifier'],
'bgpPeerFsmEstablishedTime.'.$peer['bgpPeerIdentifier'],
'bgpPeerInUpdateElapsedTime.'.$peer['bgpPeerIdentifier'],
'bgpPeerLocalAddr.'.$peer['bgpPeerIdentifier']
);
$peer_data = snmp_get_multi_oid($device, $oids, '-OUvq', 'BGP4-MIB');
}//end if }//end if
d_echo($peer_data); d_echo($peer_data);
list($bgpPeerState, $bgpPeerAdminStatus, $bgpPeerInUpdates, $bgpPeerOutUpdates, $bgpPeerInTotalMessages, $bgpPeerOutTotalMessages, $bgpPeerFsmEstablishedTime, $bgpPeerInUpdateElapsedTime, $bgpLocalAddr) = explode("\n", $peer_data); list($bgpPeerState, $bgpPeerAdminStatus, $bgpPeerInUpdates, $bgpPeerOutUpdates, $bgpPeerInTotalMessages, $bgpPeerOutTotalMessages, $bgpPeerFsmEstablishedTime, $bgpPeerInUpdateElapsedTime, $bgpLocalAddr) = array_values($peer_data);
$bgpLocalAddr = str_replace('"', '', str_replace(' ', '', $bgpLocalAddr)); $bgpLocalAddr = str_replace('"', '', str_replace(' ', '', $bgpLocalAddr));
} elseif ($device['os'] == 'junos') { } elseif ($device['os'] == 'junos') {
if (!isset($junos)) { if (!isset($junos)) {
@@ -193,7 +200,7 @@ if ($config['enable_bgp']) {
); );
$peer['update'] = array_diff($bgpPeers_fields, $peer); $peer['update'] = array_diff($bgpPeers_fields, $peer);
if ($peer['update']) { if ($peer['update']) {
dbUpdate($peer['update'], 'bgpPeers', '`device_id` = ? AND `bgpPeerIdentifier` = ?', array($device['device_id'], $peer['bgpPeerIdentifier'])); dbUpdate($peer['update'], 'bgpPeers', '`device_id` = ? AND `bgpPeerIdentifier` = ?', array($device['device_id'], $peer['bgpPeerIdentifier']));
} }

View File

@@ -2,14 +2,12 @@
$oid = $mempool['mempool_index']; $oid = $mempool['mempool_index'];
// FIXME snmp_get $oids = array(
$pool_cmd = $config['snmpget'].' -M '.$config['mibdir'].' -m CISCO-ENHANCED-MEMPOOL-MIB -O Uqnv '.snmp_gen_auth($device).' '.$device['hostname'].':'.$device['port']; "cempMemPoolUsed.$oid",
$pool_cmd .= " cempMemPoolUsed.$oid cempMemPoolFree.$oid cempMemPoolLargestFree.$oid"; "cempMemPoolFree.$oid",
$pool_cmd .= " | cut -f 1 -d ' '"; "cempMemPoolLargestFree.$oid",
);
$data = snmp_get_multi_oid($device, $oids, '-OUqnv', 'CISCO-ENHANCED-MEMPOOL-MIB');
d_echo("SNMP [ $pool_cmd ]\n"); list($mempool['used'], $mempool['free'], $mempool['largestfree']) = array_values($data);
$pool = shell_exec($pool_cmd);
list($mempool['used'], $mempool['free'], $mempool['largestfree']) = explode("\n", $pool);
$mempool['total'] = ($mempool['used'] + $mempool['free']); $mempool['total'] = ($mempool['used'] + $mempool['free']);

View File

@@ -2,14 +2,12 @@
$oid = $mempool['mempool_index']; $oid = $mempool['mempool_index'];
// FIXME snmp_get $oids = array(
$pool_cmd = $config['snmpget'].' -M '.$config['mibdir'].' -m CISCO-MEMORY-POOL-MIB -O Uqnv '.snmp_gen_auth($device).' '.$device['hostname'].':'.$device['port']; "ciscoMemoryPoolUsed.$oid",
$pool_cmd .= " ciscoMemoryPoolUsed.$oid ciscoMemoryPoolFree.$oid ciscoMemoryPoolLargestFree.$oid"; "ciscoMemoryPoolFree.$oid",
$pool_cmd .= " | cut -f 1 -d ' '"; "ciscoMemoryPoolLargestFree.$oid",
);
$data = snmp_get_multi_oid($device, $oids, '-OUqnv', 'CISCO-MEMORY-POOL-MIB');
d_echo("$pool_cmd"); list($mempool['used'], $mempool['free'], $mempool['largestfree']) = array_values($data);
$pool = shell_exec($pool_cmd);
list($mempool['used'], $mempool['free'], $mempool['largestfree']) = explode("\n", $pool);
$mempool['total'] = ($mempool['used'] + $mempool['free']); $mempool['total'] = ($mempool['used'] + $mempool['free']);

View File

@@ -1,21 +1,12 @@
<?php <?php
// FIXME snmp_ function! $hardware = snmp_get($device, 'sysObjectID.0', '-Oqvs', 'FOUNDRY-SN-AGENT-MIB:FOUNDRY-SN-ROOT-MIB');
$hardware = trim(
exec(
$config['snmpget'].' -M '.$config['mibdir'].' -O vqs -m FOUNDRY-SN-AGENT-MIB:FOUNDRY-SN-ROOT-MIB '.snmp_gen_auth($device).' '.$device['hostname'].':'.$device['port'].' sysObjectID.0'
)
);
$hardware = rewrite_ironware_hardware($hardware); $hardware = rewrite_ironware_hardware($hardware);
$version = trim( $version = snmp_get($device, 'snAgBuildVer.0', '-Oqvs', 'FOUNDRY-SN-AGENT-MIB:FOUNDRY-SN-ROOT-MIB');
exec(
$config['snmpget'].' -M '.$config['mibdir'].' -O vqs -m FOUNDRY-SN-AGENT-MIB:FOUNDRY-SN-ROOT-MIB '.snmp_gen_auth($device).' '.$device['hostname'].':'.$device['port'].' snAgBuildVer.0'
)
);
$version = str_replace('V', '', $version); $version = str_replace('V', '', $version);
$version = str_replace('"', '', $version); $version = str_replace('"', '', $version);
$serial = trim(snmp_get($device, 'snChasSerNum.0', '-Ovq', 'FOUNDRY-SN-AGENT-MIB'), '"'); $serial = snmp_get($device, 'snChasSerNum.0', '-Ovq', 'FOUNDRY-SN-AGENT-MIB');

View File

@@ -5,10 +5,13 @@ use LibreNMS\RRD\RrdDefinition;
$version = preg_replace('/(.+)\ version\ (.+)\ \(SN:\ (.+)\,\ (.+)\)/', '\\1||\\2||\\3||\\4', $poll_device['sysDescr']); $version = preg_replace('/(.+)\ version\ (.+)\ \(SN:\ (.+)\,\ (.+)\)/', '\\1||\\2||\\3||\\4', $poll_device['sysDescr']);
list($hardware,$version,$serial,$features) = explode('||', $version); list($hardware,$version,$serial,$features) = explode('||', $version);
$sess_cmd = $config['snmpget'].' -M '.$config['mibdir'].' -O qv '.snmp_gen_auth($device).' '.$device['hostname']; $oids = array(
$sess_cmd .= ' .1.3.6.1.4.1.3224.16.3.2.0 .1.3.6.1.4.1.3224.16.3.3.0 .1.3.6.1.4.1.3224.16.3.4.0'; '.1.3.6.1.4.1.3224.16.3.2.0',
$sess_data = shell_exec($sess_cmd); '.1.3.6.1.4.1.3224.16.3.3.0',
list ($sessalloc, $sessmax, $sessfailed) = explode("\n", $sess_data); '.1.3.6.1.4.1.3224.16.3.4.0',
);
$sess_data = snmp_get_multi_oid($device, $oids, '-Oqv');
list ($sessalloc, $sessmax, $sessfailed) = array_values($sess_data);
$rrd_def = RrdDefinition::make() $rrd_def = RrdDefinition::make()
->addDataset('allocate', 'GAUGE', 0, 3000000) ->addDataset('allocate', 'GAUGE', 0, 3000000)

View File

@@ -7,7 +7,7 @@ $hardware = $poll_device['sysDescr'];
$features = ''; $features = '';
// Filthy hack to get software version. may not work on anything but 585v7 :) // Filthy hack to get software version. may not work on anything but 585v7 :)
$loop = shell_exec($config['snmpget'].' -M '.$config['mibdir'].' -Ovq '.snmp_gen_auth($device).' '.$device['hostname'].' ifDescr.101'); $loop = snmp_get($device, 'ifDescr.101', '-Oqv');
if ($loop) { if ($loop) {
preg_match('@([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)@i', $loop, $matches); preg_match('@([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)@i', $loop, $matches);