diff --git a/README b/README index 056316d25..6f850eeee 100644 --- a/README +++ b/README @@ -9,6 +9,16 @@ Observer is an auto-discovering network monitoring system. It's designed to be an easily-navigable interface to the health of your network. +Planned Features +---------------- + +* Full IPv6 capabilities +* Pseudowire (MPLS/L2TP) tracking +* MPLS IP-VPN tracking +* 6500/7600 non-MSFC CPU tracking (pfc/dfc et al) +* 6500/7600 non-MSFC memory tracking +* 95th and metered usage tracking + Installation ------------ diff --git a/discover-cdp.php b/discover-cdp.php index ee042698c..1218f13be 100755 --- a/discover-cdp.php +++ b/discover-cdp.php @@ -26,7 +26,7 @@ while ($device = mysql_fetch_array($device_query)) { $ports = $snmp->getports(); $cdp = $snmp->explore_cdp($ports); - unset($cdp_links); + $cdp_links = ""; foreach (array_keys($cdp) as $key) { $port = $ports[$key]; diff --git a/discovery-test.php b/discovery-test.php index 90fb4e2eb..44b631cb3 100755 --- a/discovery-test.php +++ b/discovery-test.php @@ -36,7 +36,9 @@ while ($device = mysql_fetch_array($device_query)) { echo($device['hostname'] ."\n"); - include("includes/discovery/unix-memory.php"); +# include("includes/discovery/unix-memory.php"); + + include("cisco-vrf.php"); echo("\n"); $devices_polled++; } diff --git a/html/includes/dev-overview-data.inc.php b/html/includes/dev-overview-data.inc.php index 83dfdb361..e49f48674 100644 --- a/html/includes/dev-overview-data.inc.php +++ b/html/includes/dev-overview-data.inc.php @@ -4,7 +4,15 @@ $uptime = @mysql_result(mysql_query("SELECT `attrib_value` FROM `devices_attribs` WHERE `device_id` = '" . $device['device_id'] . "' AND `attrib_type` = 'uptime'"), 0); - echo(" + if(is_file("images/devices/" . $device['hardware'] . ".gif")) { + $dev_img = "
"; + } elseif (is_file("images/devices/" . $device['hardware'] . ".jpg")) { + $dev_img = "
"; + } else { unset($dev_img); } + + + + echo("$ddev_img diff --git a/html/includes/print-interface.inc b/html/includes/print-interface.inc index 1207fa5f8..08d18ebe4 100644 --- a/html/includes/print-interface.inc +++ b/html/includes/print-interface.inc @@ -47,7 +47,7 @@ } echo(""); - echo(" - - + + + diff --git a/html/pages/default.php b/html/pages/default.php index 4d2b34fc8..48a4b6070 100644 --- a/html/pages/default.php +++ b/html/pages/default.php @@ -154,8 +154,7 @@ if($_SESSION['userlevel'] >= '5') { $seperator = ","; } - $sql = "select * from interfaces as I, devices as D WHERE `ifAlias` like 'Transit: %' AND I.device_id = D.device_id AND D.hostname LIKE '%"; - $sql .= $config['mydomain'] . "' ORDER BY I.ifAlias"; + $sql = "select * from interfaces as I, devices as D WHERE `ifAlias` like 'Transit: %' AND I.device_id = D.device_id ORDER BY I.ifAlias"; $query = mysql_query($sql); unset ($seperator); while($interface = mysql_fetch_array($query)) { @@ -172,6 +171,9 @@ if($_SESSION['userlevel'] >= '5') { $seperator = ","; } + $interfaces['broadband'] = "2490,2509"; + $interfaces['wave_broadband'] = "2098"; + if($interfaces['transit']) { echo("', CENTER, LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 250);\" onmouseout=\"return nd();\" >". @@ -180,19 +182,19 @@ if($_SESSION['userlevel'] >= '5') { "&from=".$day."&to=".$now."&width=200&height=100'>"); } - if($interfaces['l2tp']) { - echo("', LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 250);\" onmouseout=\"return nd();\" >". - "
L2TP ADSL
". - "Broadband". + "
"); } - if($interfaces['voip']) { - echo("', LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 250);\" onmouseout=\"return nd();\" >". - "
VoIP to PSTN
". - "Wave Broadhand". + "
"); } diff --git a/html/pages/iftype.php b/html/pages/iftype.php index 8bd8d9f25..5759dff87 100644 --- a/html/pages/iftype.php +++ b/html/pages/iftype.php @@ -4,7 +4,7 @@ echo("
Operating System"); + echo(""); if($interface['ifOperStatus'] == "up") { $in_perc = @round($interface['in_rate']/$interface['ifSpeed']*100); diff --git a/html/pages/bgp.php b/html/pages/bgp.php index 1f33a2714..a9970853f 100644 --- a/html/pages/bgp.php +++ b/html/pages/bgp.php @@ -30,8 +30,9 @@ if($peerhost) { $peername = generatedevicelink($peerhost, shorthost($peerhost['hostname'])); } else { unset($peername); } echo("
$i
".generatedevicelink($peer, shorthost($peer['hostname']))."" . $peer['bgpLocalAddr'] . "
".generatedevicelink($peer, shorthost($peer['hostname']))."
-> " . $peer['bgpPeerIdentifier'] . "
".$peername."
$peer_type AS" . $peer['bgpPeerRemoteAs'] . "
" . $peer['astext'] . "
"); if($_GET['type']) { $type = $_GET['type']; - $sql = "select * from interfaces as I, devices as D WHERE `ifAlias` like '$type: %' AND I.device_id = D.device_id AND D.hostname LIKE '%" . $config['mydomain'] . "' ORDER BY I.ifAlias"; + $sql = "select * from interfaces as I, devices as D WHERE `ifAlias` like '$type: %' AND I.device_id = D.device_id ORDER BY I.ifAlias"; $query = mysql_query($sql); while($interface = mysql_fetch_array($query)) { $done = "yes"; diff --git a/includes/functions.php b/includes/functions.php index 0b5b899b8..47aa7c046 100755 --- a/includes/functions.php +++ b/includes/functions.php @@ -395,29 +395,30 @@ function humanmedia($media) { function humanspeed($speed) { - $speed = preg_replace("/^0$/", "-", $speed); - $speed = preg_replace("/^9000$/", "9Kbps", $speed); - $speed = preg_replace("/^48000$/", "48Kbps", $speed); - $speed = preg_replace("/^56000$/", "56Kbps", $speed); - $speed = preg_replace("/^64000$/", "64Kbps", $speed); - $speed = preg_replace("/^128000$/", "128Kbps", $speed); - $speed = preg_replace("/^256000$/", "256Kbps", $speed); - $speed = preg_replace("/^448000$/", "448Kbps", $speed); - $speed = preg_replace("/^512000$/", "512Kbps", $speed); - $speed = preg_replace("/^768000$/", "768Kbps", $speed); - $speed = preg_replace("/^1024000$/", "1Mbps", $speed); - $speed = preg_replace("/^2048000$/", "2Mbps", $speed); - $speed = preg_replace("/^4192000$/", "4Mbps", $speed); - $speed = preg_replace("/^10000000$/", "10Mbps", $speed); - $speed = preg_replace("/^34000000$/", "34Mbps", $speed); - $speed = preg_replace("/^45000000$/", "45Mbps", $speed); - $speed = preg_replace("/^54000000$/", "54Mbps", $speed); - $speed = preg_replace("/^100000000$/", "100Mbps", $speed); - $speed = preg_replace("/^155000000$/", "155Mbps", $speed); - $speed = preg_replace("/^622000000$/", "622Mbps", $speed); - $speed = preg_replace("/^1000000000$/", "1Gbps", $speed); - $speed = preg_replace("/^10000000000$/", "10Gbps", $speed); - $speed = preg_replace("/^4294967295$/", "", $speed); +# $speed = preg_replace("/^0$/", "-", $speed); +# $speed = preg_replace("/^9000$/", "9Kbps", $speed); +# $speed = preg_replace("/^48000$/", "48Kbps", $speed); +# $speed = preg_replace("/^56000$/", "56Kbps", $speed); +# $speed = preg_replace("/^64000$/", "64Kbps", $speed); +# $speed = preg_replace("/^128000$/", "128Kbps", $speed); +# $speed = preg_replace("/^256000$/", "256Kbps", $speed); +# $speed = preg_replace("/^448000$/", "448Kbps", $speed); +# $speed = preg_replace("/^512000$/", "512Kbps", $speed); +# $speed = preg_replace("/^768000$/", "768Kbps", $speed); +# $speed = preg_replace("/^1024000$/", "1Mbps", $speed); +# $speed = preg_replace("/^2048000$/", "2Mbps", $speed); +# $speed = preg_replace("/^4192000$/", "4Mbps", $speed); +# $speed = preg_replace("/^10000000$/", "10Mbps", $speed); +# $speed = preg_replace("/^34000000$/", "34Mbps", $speed); +# $speed = preg_replace("/^45000000$/", "45Mbps", $speed); +# $speed = preg_replace("/^54000000$/", "54Mbps", $speed); +# $speed = preg_replace("/^100000000$/", "100Mbps", $speed); +# $speed = preg_replace("/^155000000$/", "155Mbps", $speed); +# $speed = preg_replace("/^622000000$/", "622Mbps", $speed); +# $speed = preg_replace("/^1000000000$/", "1Gbps", $speed); +# $speed = preg_replace("/^10000000000$/", "10Gbps", $speed); +# $speed = preg_replace("/^4294967295$/", "", $speed); + $speed = formatRates($speed); if($speed == "") { $speed = "-"; } return $speed; } @@ -559,6 +560,7 @@ function fixifName ($inf) { $inf = str_replace("vlan", "Vlan", $inf); $inf = str_replace("ether", "Ether", $inf); $inf = str_replace("-802.1q Vlan subif", "", $inf); + $inf = str_replace("-802.1q", "", $inf); $inf = str_replace("tunnel", "Tunnel", $inf); $inf = str_replace("serial", "Serial", $inf); $inf = str_replace("-aal5 layer", " aal5", $inf); @@ -575,8 +577,10 @@ function fixifName ($inf) { function fixIOSFeatures($features){ + $features = preg_replace("/^PK9S$/", "IP w/SSH LAN Only", $features); $features = str_replace("LANBASEK9", "Lan Base Crypto", $features); $features = str_replace("LANBASE", "Lan Base", $features); + $features = str_replace("ADVENTERPRISEK9", "Advanced Enterprise Crypto", $features); $features = str_replace("ADVSECURITYK9", "Advanced Security Crypto", $features); $features = str_replace("K91P", "Provider Crypto", $features); $features = str_replace("K4P", "Provider Crypto", $features); @@ -584,13 +588,15 @@ function fixIOSFeatures($features){ $features = str_replace("ADVIPSERVICES", "Adv IP Services", $features); $features = str_replace("IK9P", "IP Plus Crypto", $features); $features = str_replace("SPSERVICESK9", "SP Services Crypto", $features); - $features = str_replace("PK9SV", "Provider Crypto", $features); + $features = preg_replace("/^PK9SV$/", "IP MPLS/IPV6 W/SSH + BGP", $features); $features = str_replace("IS", "IP Plus", $features); $features = str_replace("IPSERVICESK9", "IP Services Crypto", $features); $features = str_replace("BROADBAND", "Broadband", $features); $features = str_replace("IPBASE", "IP Base", $features); $features = str_replace("IPSERVICE", "IP Services", $features); $features = preg_replace("/^P$/", "Service Provider", $features); + $features = preg_replace("/^P11$/", "Broadband Router", $features); + $features = preg_replace("/^G4P5$/", "NRP", $features); $features = str_replace("JK9S", "Enterprise Plus Crypto", $features); $features = str_replace("IK9S", "IP Plus Crypto", $features); $features = str_replace("I6Q4L2", "Layer 2", $features); diff --git a/includes/polling/bgpPeer.inc.php b/includes/polling/bgpPeer.inc.php index 00f93f788..1b7f9a579 100755 --- a/includes/polling/bgpPeer.inc.php +++ b/includes/polling/bgpPeer.inc.php @@ -14,10 +14,11 @@ while($peer = mysql_fetch_array($peers)) { $peer_cmd = $config['snmpget'] . " -Ovq -" . $device['snmpver'] . " -c" . $device['community'] . " " . $device['hostname'] . " "; $peer_cmd .= "bgpPeerState." . $peer['bgpPeerIdentifier'] . " bgpPeerAdminStatus." . $peer['bgpPeerIdentifier'] . " bgpPeerInUpdates." . $peer['bgpPeerIdentifier'] . " bgpPeerOutUpdates." . $peer['bgpPeerIdentifier'] . " bgpPeerInTotalMessages." . $peer['bgpPeerIdentifier'] . " "; - $peer_cmd .= "bgpPeerOutTotalMessages." . $peer['bgpPeerIdentifier'] . " bgpPeerFsmEstablishedTime." . $peer['bgpPeerIdentifier'] . " bgpPeerInUpdateElapsedTime." . $peer['bgpPeerIdentifier'] . ""; + $peer_cmd .= "bgpPeerOutTotalMessages." . $peer['bgpPeerIdentifier'] . " bgpPeerFsmEstablishedTime." . $peer['bgpPeerIdentifier'] . " bgpPeerInUpdateElapsedTime." . $peer['bgpPeerIdentifier'] . " "; + $peer_cmd .= "bgpPeerLocalAddr." . $peer['bgpPeerIdentifier'] . ""; $peer_data = trim(`$peer_cmd`); - list($bgpPeerState, $bgpPeerAdminStatus, $bgpPeerInUpdates, $bgpPeerOutUpdates, $bgpPeerInTotalMessages, $bgpPeerOutTotalMessages, $bgpPeerFsmEstablishedTime, $bgpPeerInUpdateElapsedTime) = explode("\n", $peer_data); + list($bgpPeerState, $bgpPeerAdminStatus, $bgpPeerInUpdates, $bgpPeerOutUpdates, $bgpPeerInTotalMessages, $bgpPeerOutTotalMessages, $bgpPeerFsmEstablishedTime, $bgpPeerInUpdateElapsedTime, $bgpLocalAddr) = explode("\n", $peer_data); $peerrrd = $rrd_dir . "/" . $device['hostname'] . "/bgp-" . $peer['bgpPeerIdentifier'] . ".rrd"; @@ -37,7 +38,7 @@ while($peer = mysql_fetch_array($peers)) { rrdtool_update($peerrrd, "N:$bgpPeerOutUpdates:$bgpPeerInUpdates:$bgpPeerOutTotalMessages:$bgpPeerInTotalMesages:$bgpPeerFsmEstablishedTime"); $update = "UPDATE bgpPeers SET bgpPeerState = '$bgpPeerState', bgpPeerAdminStatus = '$bgpPeerAdminStatus', "; - $update .= "bgpPeerFsmEstablishedTime = '$bgpPeerFsmEstablishedTime', bgpPeerInUpdates = '$bgpPeerInUpdates' , bgpPeerOutUpdates = '$bgpPeerOutUpdates'"; + $update .= "bgpPeerFsmEstablishedTime = '$bgpPeerFsmEstablishedTime', bgpPeerInUpdates = '$bgpPeerInUpdates' , bgpLocalAddr = '$bgpLocalAddr' , bgpPeerOutUpdates = '$bgpPeerOutUpdates'"; $update .= " WHERE `device_id` = '".$device['device_id']."' AND bgpPeerIdentifier = '" . $peer['bgpPeerIdentifier'] . "'"; mysql_query($update);