mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	refactor: Remove all old style snmp calls (#7924)
This commit is contained in:
		
				
					committed by
					
						
						Neil Lathwood
					
				
			
			
				
	
			
			
			
						parent
						
							6d4ef1f50a
						
					
				
				
					commit
					046ed94f7c
				
			@@ -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);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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']));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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']);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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']);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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');
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user