mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
fixes to many little things. collection of ospf neighbours (but we can't definitely work out what interface they're on, fucking mib is lame!)
git-svn-id: http://www.observium.org/svn/observer/trunk@2210 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
@@ -44,6 +44,7 @@ ALTER TABLE `ports` DROP INDEX `snmpid`;
|
||||
CREATE TABLE IF NOT EXISTS `ospf_areas` ( `device_id` int(11) NOT NULL, `ospfAreaId` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfAuthType` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `ospfImportAsExtern` varchar(128) COLLATE utf8_unicode_ci NOT NULL, `ospfSpfRuns` int(11) NOT NULL, `ospfAreaBdrRtrCount` int(11) NOT NULL, `ospfAsBdrRtrCount` int(11) NOT NULL, `ospfAreaLsaCount` int(11) NOT NULL, `ospfAreaLsaCksumSum` int(11) NOT NULL, `ospfAreaSummary` varchar(64) COLLATE utf8_unicode_ci NOT NULL, `ospfAreaStatus` varchar(64) COLLATE utf8_unicode_ci NOT NULL, UNIQUE KEY `device_area` (`device_id`,`ospfAreaId`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
CREATE TABLE IF NOT EXISTS `ospf_instances` ( `device_id` int(11) NOT NULL, `ospf_instance_id` int(11) NOT NULL, `ospfRouterId` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfAdminStat` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfVersionNumber` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfAreaBdrRtrStatus` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfASBdrRtrStatus` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfExternLsaCount` int(11) NOT NULL, `ospfExternLsaCksumSum` int(11) NOT NULL, `ospfTOSSupport` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfOriginateNewLsas` int(11) NOT NULL, `ospfRxNewLsas` int(11) NOT NULL, `ospfExtLsdbLimit` int(11) DEFAULT NULL, `ospfMulticastExtensions` int(11) DEFAULT NULL, `ospfExitOverflowInterval` int(11) DEFAULT NULL, `ospfDemandExtensions` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, UNIQUE KEY `device_id` (`device_id`,`ospf_instance_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
CREATE TABLE IF NOT EXISTS `ospf_ports` ( `device_id` int(11) NOT NULL, `interface_id` int(11) NOT NULL, `ospf_port_id` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfIfIpAddress` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfAddressLessIf` int(11) NOT NULL, `ospfIfAreaId` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfIfType` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `ospfIfAdminStat` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `ospfIfRtrPriority` int(11) DEFAULT NULL, `ospfIfTransitDelay` int(11) DEFAULT NULL, `ospfIfRetransInterval` int(11) DEFAULT NULL, `ospfIfHelloInterval` int(11) DEFAULT NULL, `ospfIfRtrDeadInterval` int(11) DEFAULT NULL, `ospfIfPollInterval` int(11) DEFAULT NULL, `ospfIfState` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `ospfIfDesignatedRouter` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `ospfIfBackupDesignatedRouter` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `ospfIfEvents` int(11) DEFAULT NULL, `ospfIfAuthKey` varchar(128) COLLATE utf8_unicode_ci DEFAULT NULL, `ospfIfStatus` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `ospfIfMulticastForwarding` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `ospfIfDemand` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, `ospfIfAuthType` varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL, UNIQUE KEY `device_id` (`device_id`,`interface_id`,`ospf_port_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
CREATE TABLE IF NOT EXISTS `ospf_nbrs` ( `device_id` int(11) NOT NULL, `interface_id` int(11) NOT NULL, `ospf_nbr_id` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfNbrIpAddr` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfNbrAddressLessIndex` int(11) NOT NULL, `ospfNbrRtrId` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfNbrOptions` int(11) NOT NULL, `ospfNbrPriority` int(11) NOT NULL, `ospfNbrState` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfNbrEvents` int(11) NOT NULL, `ospfNbrLsRetransQLen` int(11) NOT NULL, `ospfNbmaNbrStatus` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfNbmaNbrPermanence` varchar(32) COLLATE utf8_unicode_ci NOT NULL, `ospfNbrHelloSuppressed` varchar(32) COLLATE utf8_unicode_ci NOT NULL, UNIQUE KEY `device_id` (`device_id`,`ospf_nbr_id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
|
||||
CREATE TABLE IF NOT EXISTS `ports_stack` (`interface_id_high` INT NOT NULL ,`interface_id_low` INT NOT NULL) ENGINE = INNODB;
|
||||
ALTER TABLE `ports_stack` ADD `device_id` INT NOT NULL;
|
||||
ALTER TABLE `ports_stack` ADD `ifStackStatus` VARCHAR(32);
|
||||
|
@@ -17,7 +17,7 @@ if (is_numeric($id))
|
||||
$device = device_by_id_cache($port['device_id']);
|
||||
$title = generate_device_link($device);
|
||||
$title .= " :: Port ".generate_port_link($port);
|
||||
$title .= " :: " . $acc['mac'];
|
||||
$title .= " :: " . formatMac($acc['mac']);
|
||||
$auth = TRUE;
|
||||
|
||||
}
|
||||
|
@@ -272,6 +272,19 @@ foreach (array_keys($menu_sensors) as $item)
|
||||
<!-- <li><a class="menu2four" href="inventory/"><img src="images/16/bricks.png" border="0" align="absmiddle" /> Inventory</a></li> -->
|
||||
|
||||
<?php
|
||||
|
||||
$routing_count['bgp'] = mysql_result(mysql_query("SELECT COUNT(*) from `bgpPeers`"), 0);
|
||||
if ($routing_count['bgp']) { $datas[] = 'bgp'; }
|
||||
|
||||
$routing_count['ospf'] = mysql_result(mysql_query("SELECT COUNT(*) FROM `ospf_instances` WHERE `ospfAdminStat` = 'enabled'"), 0);
|
||||
if ($routing_count['ospf']) { $datas[] = 'ospf'; }
|
||||
|
||||
$routing_count['cef'] = mysql_result(mysql_query("SELECT COUNT(*) from `cef_switching`"), 0);
|
||||
if ($routing_count['cef']) { $datas[] = 'cef'; }
|
||||
|
||||
$routing_count['vrf'] = @mysql_result(mysql_query("SELECT COUNT(*) from `vrfs`"), 0);
|
||||
if($routing_count['vrf']) { $datas[] = 'vrf'; }
|
||||
|
||||
if ($_SESSION['userlevel'] >= '5')
|
||||
{
|
||||
echo('
|
||||
@@ -279,10 +292,19 @@ if ($_SESSION['userlevel'] >= '5')
|
||||
<table><tr><td>
|
||||
<ul>');
|
||||
|
||||
if ($config['enable_vrfs']) { echo('<li><a href="routing/vrf/"><img src="images/16/layers.png" border="0" align="absmiddle" /> VRFs</a></li> <li><hr width=140></li> '); }
|
||||
if ($_SESSION['userlevel'] >= '5' && $routing_count['vrf']) { echo('<li><a href="routing/vrf/"><img src="images/16/layers.png" border="0" align="absmiddle" /> VRFs</a></li> <li><hr width=140></li> '); }
|
||||
|
||||
if ($_SESSION['userlevel'] >= '5' && $routing_count['ospf'])
|
||||
{
|
||||
echo('
|
||||
<li><a href="routing/ospf/all/nographs/"><img src="images/16/text_letter_omega.png" border="0" align="absmiddle" /> OSPF Devices </a></li>
|
||||
<li><hr width=140></li>
|
||||
');
|
||||
}
|
||||
|
||||
|
||||
## BGP Sessions
|
||||
if ($_SESSION['userlevel'] >= '5' && (isset($config['enable_bgp']) && $config['enable_bgp']))
|
||||
if ($_SESSION['userlevel'] >= '5' && $routing_count['bgp'])
|
||||
{
|
||||
echo('
|
||||
<li><a href="routing/bgp/all/nographs/"><img src="images/16/link.png" border="0" align="absmiddle" /> BGP All Sessions </a></li>
|
||||
|
@@ -9,6 +9,8 @@ echo('<div style="clear: both;">');
|
||||
|
||||
print_optionbar_start('', '');
|
||||
|
||||
echo("<span style='font-weight: bold;'>Graphs</span> » ");
|
||||
|
||||
$sep = "";
|
||||
$query = mysql_query("SELECT * FROM device_graphs WHERE device_id = '".$device['device_id']."'");
|
||||
|
||||
|
@@ -13,7 +13,7 @@ $current = mysql_result(mysql_query("select count(*) from sensors WHERE sensor_c
|
||||
$freqs = mysql_result(mysql_query("select count(*) from sensors WHERE sensor_class='frequency' AND device_id = '" . $device['device_id'] . "'"), 0);
|
||||
$power = mysql_result(mysql_query("select count(*) from sensors WHERE sensor_class='power' AND device_id = '" . $device['device_id'] . "'"), 0);
|
||||
|
||||
|
||||
unset($datas);
|
||||
$datas[] = 'overview';
|
||||
if ($processor) { $datas[] = 'processor'; }
|
||||
if ($mempools) { $datas[] = 'mempool'; }
|
||||
@@ -42,6 +42,8 @@ $type_text['power'] = "Power";
|
||||
|
||||
print_optionbar_start();
|
||||
|
||||
echo("<span style='font-weight: bold;'>Health</span> » ");
|
||||
|
||||
if (!$_GET['opta']) { $_GET['opta'] = "overview"; }
|
||||
|
||||
unset($sep);
|
||||
|
@@ -1,19 +1,19 @@
|
||||
<?php
|
||||
|
||||
|
||||
#$datas[] = 'overview';
|
||||
unset($datas);
|
||||
|
||||
$routing_count['bgp'] = mysql_result(mysql_query("select count(*) from bgpPeers WHERE device_id = '" . $device['device_id'] . "'"), 0);
|
||||
if ($routing_count['bgp']) { $datas[] = 'bgp'; }
|
||||
$device_routing_count['bgp'] = mysql_result(mysql_query("select count(*) from bgpPeers WHERE device_id = '" . $device['device_id'] . "'"), 0);
|
||||
if ($device_routing_count['bgp']) { $datas[] = 'bgp'; }
|
||||
|
||||
$routing_count['ospf'] = mysql_result(mysql_query("select count(*) from ospf_ports WHERE device_id = '" . $device['device_id'] . "'"), 0);
|
||||
if ($routing_count['ospf']) { $datas[] = 'ospf'; }
|
||||
$device_routing_count['ospf'] = mysql_result(mysql_query("select count(*) from ospf_ports WHERE device_id = '" . $device['device_id'] . "'"), 0);
|
||||
if ($device_routing_count['ospf']) { $datas[] = 'ospf'; }
|
||||
|
||||
$routing_count['cef'] = mysql_result(mysql_query("select count(*) from cef_switching WHERE device_id = '" . $device['device_id'] . "'"), 0);
|
||||
if ($routing_count['cef']) { $datas[] = 'cef'; }
|
||||
$device_routing_count['cef'] = mysql_result(mysql_query("select count(*) from cef_switching WHERE device_id = '" . $device['device_id'] . "'"), 0);
|
||||
if ($device_routing_count['cef']) { $datas[] = 'cef'; }
|
||||
|
||||
$routing_count['vrf'] = @mysql_result(mysql_query("select count(*) from vrfs WHERE device_id = '" . $device['device_id'] . "'"), 0);
|
||||
if($routing_count['vrf']) { $datas[] = 'vrf'; }
|
||||
$device_routing_count['vrf'] = @mysql_result(mysql_query("select count(*) from vrfs WHERE device_id = '" . $device['device_id'] . "'"), 0);
|
||||
if($device_routing_count['vrf']) { $datas[] = 'vrf'; }
|
||||
|
||||
#$type_text['overview'] = "Overview";
|
||||
$type_text['bgp'] = "BGP";
|
||||
@@ -38,7 +38,7 @@ foreach ($datas as $type)
|
||||
echo('<span class="pagemenu-selected">');
|
||||
}
|
||||
|
||||
echo("<a href='".$config['base_url']."/device/".$device['device_id']."/routing/" . $type . ($_GET['optb'] ? "/" . $_GET['optb'] : ''). "/'> " . $type_text[$type] ." (".$routing_count[$type].")</a>");
|
||||
echo("<a href='".$config['base_url']."/device/".$device['device_id']."/routing/" . $type . ($_GET['optb'] ? "/" . $_GET['optb'] : ''). "/'> " . $type_text[$type] ." (".$device_routing_count[$type].")</a>");
|
||||
if ($_GET['opta'] == $type) { echo("</span>"); }
|
||||
$sep = " | ";
|
||||
}
|
||||
|
@@ -17,6 +17,8 @@ while($instance = mysql_fetch_assoc($query))
|
||||
$area_count = mysql_result(mysql_query("SELECT COUNT(*) FROM `ospf_areas` WHERE `device_id` = '".$device['device_id']."'"),0);
|
||||
$port_count = mysql_result(mysql_query("SELECT COUNT(*) FROM `ospf_ports` WHERE `device_id` = '".$device['device_id']."'"),0);
|
||||
$port_count_enabled = mysql_result(mysql_query("SELECT COUNT(*) FROM `ospf_ports` WHERE `ospfIfAdminStat` = 'enabled' AND `device_id` = '".$device['device_id']."'"),0);
|
||||
$nbr_count = mysql_result(mysql_query("SELECT COUNT(*) FROM `ospf_nbrs` WHERE `device_id` = '".$device['device_id']."'"),0);
|
||||
|
||||
|
||||
$query = "SELECT * FROM ipv4_addresses AS A, ports AS I WHERE ";
|
||||
$query .= "(A.ipv4_address = '".$peer['bgpPeerIdentifier']."' AND I.interface_id = A.interface_id)";
|
||||
@@ -35,7 +37,7 @@ while($instance = mysql_fetch_assoc($query))
|
||||
echo(' <td>' . $asbr . '</td>');
|
||||
echo(' <td>' . $area_count . '</td>');
|
||||
echo(' <td>' . $port_count . '('.$port_count_enabled.')</td>');
|
||||
echo(' <td>' . ($neighbour_count+0) . '</td>');
|
||||
echo(' <td>' . $nbr_count . '</td>');
|
||||
echo('</tr>');
|
||||
|
||||
echo('<tr bgcolor="'.$instance_bg.'">');
|
||||
|
@@ -2,12 +2,15 @@
|
||||
|
||||
print_optionbar_start();
|
||||
|
||||
echo("<div style='margin: auto; text-align: left; padding: 2px 5px; padding-left: 11px; clear: both; display:block; height:20px;'>
|
||||
echo("<span style='font-weight: bold;'>VLANs</span> » ");
|
||||
|
||||
echo("
|
||||
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/vlans/'>Basic</a> | Graphs :
|
||||
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/vlans/bits/'>Bits</a> |
|
||||
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/vlans/pkts/'>Packets</a> |
|
||||
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/vlans/nupkts/'>NU Packets</a> |
|
||||
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/vlans/errors/'>Errors</a> ");
|
||||
<a href='".$config['base_url']."/device/" . $device['device_id'] . "/vlans/errors/'>Errors</a>
|
||||
");
|
||||
|
||||
print_optionbar_end();
|
||||
|
||||
|
@@ -4,17 +4,7 @@ if ($_GET['optb'] == "graphs" || $_GET['optc'] == "graphs") { $graphs = "graphs"
|
||||
|
||||
#$datas[] = 'overview';
|
||||
|
||||
$routing_count['bgp'] = mysql_result(mysql_query("SELECT COUNT(*) from `bgpPeers`"), 0);
|
||||
if ($routing_count['bgp']) { $datas[] = 'bgp'; }
|
||||
|
||||
$routing_count['ospf'] = mysql_result(mysql_query("SELECT COUNT(*) FROM `ospf_instances` WHERE `ospfAdminStat` = 'enabled'"), 0);
|
||||
if ($routing_count['ospf']) { $datas[] = 'ospf'; }
|
||||
|
||||
$routing_count['cef'] = mysql_result(mysql_query("SELECT COUNT(*) from `cef_switching`"), 0);
|
||||
if ($routing_count['cef']) { $datas[] = 'cef'; }
|
||||
|
||||
$routing_count['vrf'] = @mysql_result(mysql_query("SELECT COUNT(*) from `vrfs`"), 0);
|
||||
if($routing_count['vrf']) { $datas[] = 'vrf'; }
|
||||
### $routing_count is populated by print-menubar.inc.php
|
||||
|
||||
#$type_text['overview'] = "Overview";
|
||||
$type_text['bgp'] = "BGP";
|
||||
|
@@ -31,7 +31,7 @@ while($instance = mysql_fetch_assoc($query))
|
||||
if($instance['ospfASBdrRtrStatus'] == "true") { $asbr = '<span style="color: #00aa00">yes</span>'; } else { $asbr = '<span style="color: #aaaaaa">no</span>'; }
|
||||
|
||||
echo('<tr bgcolor="'.$instance_bg.'">');
|
||||
echo(' <td class="list-large">'.generate_device_link($device). '</td>');
|
||||
echo(' <td class="list-large">'.generate_device_link($device, 0, "routing/ospf/"). '</td>');
|
||||
echo(' <td class="list-large">'.$instance['ospfRouterId'] . '</td>');
|
||||
echo(' <td>' . $enabled . '</td>');
|
||||
echo(' <td>' . $abr . '</td>');
|
||||
|
@@ -185,7 +185,7 @@ if($debug) {
|
||||
|
||||
### Loop array of entries and update
|
||||
if (is_array($ospf_ports_db)){
|
||||
foreach($ospf_ports_db as $ospf_port_db)
|
||||
foreach($ospf_ports_db as $ospf_port_id => $ospf_port_db)
|
||||
{
|
||||
if(is_array($ospf_ports_poll[$ospf_port_db['ospf_port_id']])) {
|
||||
$ospf_port_poll = $ospf_ports_poll[$ospf_port_db['ospf_port_id']];
|
||||
@@ -205,7 +205,7 @@ if (is_array($ospf_ports_db)){
|
||||
#log_event("$oid -> ".$this_port[$oid], $device, 'ospf', $port['interface_id']); ## FIXME
|
||||
}
|
||||
}
|
||||
if($update)
|
||||
if($ospf_port_update)
|
||||
{
|
||||
$query = "UPDATE `ospf_ports` SET `ospf_port_id` = '".$ospf_port_db['ospf_port_id']."'".$ospf_port_update." WHERE `device_id` = '".$device['device_id']."' AND `ospf_port_id` = '".$ospf_port_id."'";
|
||||
mysql_query($query);
|
||||
@@ -225,6 +225,97 @@ if (is_array($ospf_ports_db)){
|
||||
}
|
||||
}
|
||||
|
||||
#OSPF-MIB::ospfNbrIpAddr.172.22.203.98.0 172.22.203.98
|
||||
#OSPF-MIB::ospfNbrAddressLessIndex.172.22.203.98.0 0
|
||||
#OSPF-MIB::ospfNbrRtrId.172.22.203.98.0 172.22.203.128
|
||||
#OSPF-MIB::ospfNbrOptions.172.22.203.98.0 2
|
||||
#OSPF-MIB::ospfNbrPriority.172.22.203.98.0 0
|
||||
#OSPF-MIB::ospfNbrState.172.22.203.98.0 full
|
||||
#OSPF-MIB::ospfNbrEvents.172.22.203.98.0 6
|
||||
#OSPF-MIB::ospfNbrLsRetransQLen.172.22.203.98.0 1
|
||||
#OSPF-MIB::ospfNbmaNbrStatus.172.22.203.98.0 active
|
||||
#OSPF-MIB::ospfNbmaNbrPermanence.172.22.203.98.0 dynamic
|
||||
#OSPF-MIB::ospfNbrHelloSuppressed.172.22.203.98.0 false
|
||||
|
||||
echo(' Neighbours: ');
|
||||
|
||||
$ospf_nbr_oids_db = array('ospfNbrIpAddr', 'ospfNbrAddressLessIndex', 'ospfNbrRtrId', 'ospfNbrOptions', 'ospfNbrPriority', 'ospfNbrState', 'ospfNbrEvents', 'ospfNbrLsRetransQLen', 'ospfNbmaNbrStatus', 'ospfNbmaNbrPermanence', 'ospfNbrHelloSuppressed');
|
||||
$ospf_nbr_oids_rrd = array();
|
||||
$ospf_nbr_oids = array_merge($ospf_nbr_oids_db, $ospf_nbr_oids_rrd);
|
||||
|
||||
### Build array of existing entries
|
||||
$nbr_query = mysql_query("SELECT * FROM `ospf_nbrs` WHERE `device_id` = '".$device['device_id']."'");
|
||||
while($nbr_entry = mysql_fetch_assoc($nbr_query))
|
||||
{
|
||||
$ospf_nbrs_db[$nbr_entry['ospf_nbr_id']] = $nbr_entry;
|
||||
}
|
||||
|
||||
### Pull data from device
|
||||
$ospf_nbrs_poll = snmpwalk_cache_oid($device, "OSPF-MIB::ospfNbrEntry", array(), "OSPF-MIB");
|
||||
|
||||
foreach($ospf_nbrs_poll as $ospf_nbr_id => $ospf_nbr)
|
||||
{
|
||||
### If the entry doesn't already exist in the prebuilt array, insert into the database and put into the array
|
||||
if(!isset($ospf_nbrs_db[$ospf_nbr_id]))
|
||||
{
|
||||
mysql_query("INSERT INTO `ospf_nbrs` (`device_id`, `ospf_nbr_id`) VALUES ('".$device['device_id']."','".$ospf_nbr_id."') ");
|
||||
echo("+");
|
||||
$entry = mysql_fetch_assoc(mysql_query("SELECT * FROM `ospf_nbrs` WHERE `device_id` = '".$device['device_id']."' AND `ospf_nbr_id` = '".$ospf_nbr_id."'"));
|
||||
$ospf_nbrs_db[$entry['ospf_nbr_id']] = $entry;
|
||||
}
|
||||
}
|
||||
|
||||
if($debug) {
|
||||
echo("\nPolled: ");
|
||||
print_r($ospf_nbrs_poll);
|
||||
echo("Database: ");
|
||||
print_r($ospf_nbrs_db);
|
||||
echo("\n");
|
||||
}
|
||||
|
||||
### Loop array of entries and update
|
||||
if (is_array($ospf_nbrs_db)){
|
||||
foreach($ospf_nbrs_db as $ospf_nbr_id => $ospf_nbr_db)
|
||||
{
|
||||
if(is_array($ospf_nbrs_poll[$ospf_nbr_db['ospf_nbr_id']])) {
|
||||
$ospf_nbr_poll = $ospf_nbrs_poll[$ospf_nbr_db['ospf_nbr_id']];
|
||||
|
||||
$ospf_nbr_poll['interface_id'] = @mysql_result(mysql_query("SELECT A.`interface_id` FROM ipv4_addresses AS A, nbrs AS I WHERE A.ipv4_address = '".$ospf_nbr_poll['ospfNbrIpAddr']."' AND I.interface_id = A.interface_id AND I.device_id = '".$device['device_id']."'"),0);
|
||||
|
||||
if ($ospf_nbr_db['interface_id'] != $ospf_nbr_poll['interface_id'])
|
||||
{
|
||||
$ospf_nbr_update = " ";
|
||||
}
|
||||
|
||||
foreach ($ospf_nbr_oids as $oid)
|
||||
{ // Loop the OIDs
|
||||
echo($ospf_nbr_db[$oid]."|".$ospf_nbr_poll[$oid]."\n");
|
||||
if ($ospf_nbr_db[$oid] != $ospf_nbr_poll[$oid])
|
||||
{ // If data has changed, build a query
|
||||
$ospf_nbr_update .= ", `$oid` = '".mres($ospf_nbr_poll[$oid])."'";
|
||||
#log_event("$oid -> ".$this_nbr[$oid], $device, 'ospf', $nbr['interface_id']); ## FIXME
|
||||
}
|
||||
}
|
||||
if($ospf_nbr_update)
|
||||
{
|
||||
$query = "UPDATE `ospf_nbrs` SET `interface_id` = '".$ospf_nbr_poll['interface_id']."'".$ospf_nbr_update." WHERE `device_id` = '".$device['device_id']."' AND `ospf_nbr_id` = '".$ospf_nbr_id."'";
|
||||
mysql_query($query);
|
||||
if($debug) { echo("$query"); }
|
||||
echo("U");
|
||||
unset($ospf_nbr_update);
|
||||
} else {
|
||||
echo(".");
|
||||
}
|
||||
unset($ospf_nbr_poll);
|
||||
unset($ospf_nbr_db);
|
||||
$ospf_nbr_count++;
|
||||
} else {
|
||||
mysql_query("DELETE FROM `ospf_nbrs` WHERE `device_id` = '".$device['device_id']."' AND `ospf_nbr_id` = '".$ospf_nbr_db['ospf_nbr_id']."'");
|
||||
echo("-");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
## Create device-wide statistics RRD
|
||||
|
||||
$filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/" . safename("ospf-statistics.rrd");
|
||||
|
@@ -848,6 +848,8 @@ $config['graph_types']['device']['uptime']['section'] = 'system';
|
||||
$config['graph_types']['device']['uptime']['order'] = '0';
|
||||
$config['graph_types']['device']['uptime']['descr'] = 'System Uptime';
|
||||
|
||||
#$config['graph_types']['macaccounting']['bits']['descr'] = "MAC Accounting (Bits/sec)";
|
||||
#$config['graph_types']['macaccounting']['bits']['descr'] = "MAC Accounting (Packets/sec)";
|
||||
|
||||
### Device Types
|
||||
|
||||
|
Reference in New Issue
Block a user