From a9c5f3ca12cb06580f91fbf733e4f5e56098cfda Mon Sep 17 00:00:00 2001 From: Adam Amstrong Date: Fri, 21 Nov 2008 14:44:29 +0000 Subject: [PATCH] important fixes to interface polling git-svn-id: http://www.observium.org/svn/observer/trunk@312 61d68cd4-352d-0410-923a-c4978735b2b8 --- includes/discovery/interfaces.php | 10 +- includes/functions.php | 1 - includes/polling/interfaces.inc.php | 12 +- includes/static-config.php | 3 + mibs/.index | 168 ++++++++++++++-------------- 5 files changed, 100 insertions(+), 94 deletions(-) diff --git a/includes/discovery/interfaces.php b/includes/discovery/interfaces.php index f6a3302f6..de151291b 100755 --- a/includes/discovery/interfaces.php +++ b/includes/discovery/interfaces.php @@ -17,9 +17,13 @@ $entry = trim($entry); list($ifIndex, $ifName) = explode("||", $entry); - $ifDescr = $config['snmpget'] . " -O qv -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'] . " ifAlias.$ifIndex"; - $ifDescr = str_replace("No Such Object available on this agent at this OID", "", $ifDescr); - $ifDescr = str_replace("No Such Instance currently exists at this OID", "", $ifDescr); + + if($config['ifdescr'][$device['os']]) { + $ifDescr = shell_exec($config['snmpget'] . " -O qv -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname'] . " ifAlias.$ifIndex"); + $ifDescr = str_replace("No Such Object available on this agent at this OID", "", $ifDescr); + $ifDescr = str_replace("No Such Instance currently exists at this OID", "", $ifDescr); + } else { $ifDescr = trim(str_replace("\"", "", $ifName)); } + if(!strstr($entry, "irtual")) { $ifName = trim(str_replace("\"", "", $ifName)); diff --git a/includes/functions.php b/includes/functions.php index ad1687d44..6cffcd977 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -17,7 +17,6 @@ include_once($config['install_dir'] . "/includes/print-functions.php"); include_once($config['install_dir'] . "/includes/billing-functions.php"); include_once($config['install_dir'] . "/includes/cisco-entities.php"); include_once($config['install_dir'] . "/includes/syslog.php"); -#include_once($config['install_dir'] . "/includes/ipv6-functions.php"); function mres($string) { // short function wrapper because the real one is stupidly long and ugly. aestetics. diff --git a/includes/polling/interfaces.inc.php b/includes/polling/interfaces.inc.php index 33f341ea2..cf8dcce7b 100644 --- a/includes/polling/interfaces.inc.php +++ b/includes/polling/interfaces.inc.php @@ -19,27 +19,28 @@ while ($interface = mysql_fetch_array($interface_query)) { echo("Looking at " . $interface['ifDescr'] . " on " . $device['hostname'] . "\n"); $snmp_cmd = $config['snmpget'] . " -O qv -" . $device['snmpver'] . " -c " . $device['community'] . " " . $device['hostname']; - $snmp_cmd .= " ifAdminStatus." . $interface['ifIndex'] . " ifOperStatus." . $interface['ifIndex'] . " ifAlias." . $interface['ifIndex']; + $snmp_cmd .= " ifAdminStatus." . $interface['ifIndex'] . " ifOperStatus." . $interface['ifIndex'] . " ifAlias." . $interface['ifIndex'] . " ifName." . $interface['ifIndex']; $snmp_output = trim(`$snmp_cmd`); $snmp_output = str_replace("No Such Object available on this agent at this OID", "", $snmp_output); $snmp_output = str_replace("No Such Instance currently exists at this OID", "", $snmp_output); $snmp_output = str_replace("\"", "", $snmp_output); - list($ifAdminStatus, $ifOperStatus, $ifAlias) = explode("\n", $snmp_output); + list($ifAdminStatus, $ifOperStatus, $ifAlias, $ifName) = explode("\n", $snmp_output); if ($ifAlias == " ") { $ifAlias = str_replace(" ", "", $ifAlias); } $ifAlias = trim(str_replace("\"", "", $ifAlias)); $ifAlias = trim($ifAlias); + $ifDescr = trim(str_replace("\"", "", $ifDescr)); + $ifDescr = trim($ifDescr); + + if(!$ifDescr) { $ifDescr = $ifName; } $older_rrdfile = "rrd/" . $device['hostname'] . "." . $interface['ifIndex'] . ".rrd"; $rrdfile = $host_rrd . "/" . $interface['ifIndex'] . ".rrd"; if(is_file($older_rrdfile) && !is_file($rrdfile)) { rename($older_rrdfile, $rrdfile); echo("Moving $older_rrdfile to $rrdfile"); } - - - if(!is_file($rrdfile)) { $woo = `rrdtool create $rrdfile \ DS:INOCTETS:COUNTER:600:0:12500000000 \ @@ -63,7 +64,6 @@ while ($interface = mysql_fetch_array($interface_query)) { if( file_exists("includes/polling/interface-" . $device['os'] . ".php") ) { include("includes/polling/interface-" . $device['os'] . ".php"); } - if ( $interface['ifAlias'] != $ifAlias ) { $update .= $seperator . "`ifAlias` = '$ifAlias'"; $seperator = ", "; diff --git a/includes/static-config.php b/includes/static-config.php index b7cadd23c..74f43bb27 100644 --- a/includes/static-config.php +++ b/includes/static-config.php @@ -1,5 +1,8 @@