tidied things

git-svn-id: http://www.observium.org/svn/observer/trunk@252 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
Adam Amstrong
2008-09-25 13:54:58 +00:00
parent d0f2fddd02
commit 8a059f80d3
10 changed files with 74 additions and 44 deletions

10
README
View File

@@ -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. 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 Installation
------------ ------------

View File

@@ -26,7 +26,7 @@ while ($device = mysql_fetch_array($device_query)) {
$ports = $snmp->getports(); $ports = $snmp->getports();
$cdp = $snmp->explore_cdp($ports); $cdp = $snmp->explore_cdp($ports);
unset($cdp_links); $cdp_links = "";
foreach (array_keys($cdp) as $key) { foreach (array_keys($cdp) as $key) {
$port = $ports[$key]; $port = $ports[$key];

View File

@@ -36,7 +36,9 @@ while ($device = mysql_fetch_array($device_query)) {
echo($device['hostname'] ."\n"); echo($device['hostname'] ."\n");
include("includes/discovery/unix-memory.php"); # include("includes/discovery/unix-memory.php");
include("cisco-vrf.php");
echo("\n"); $devices_polled++; echo("\n"); $devices_polled++;
} }

View File

@@ -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); $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 = "<div style='float: left;'><img src='images/devices/" . $device['hardware'] . ".gif' align=absmiddle></img></div>";
} elseif (is_file("images/devices/" . $device['hardware'] . ".jpg")) {
$dev_img = "<div style='float: left;'><img src='images/devices/" . $device['hardware'] . ".jpg' align=absmiddle></img></div>";
} else { unset($dev_img); }
echo("$ddev_img
<table width=100%> <table width=100%>
<tr> <tr>
<td class=list-bold>Operating System</td> <td class=list-bold>Operating System</td>

View File

@@ -47,7 +47,7 @@
} }
echo("</span>"); echo("</span>");
echo("</td><td width=100>"); echo("</td><td width=120>");
if($interface['ifOperStatus'] == "up") { if($interface['ifOperStatus'] == "up") {
$in_perc = @round($interface['in_rate']/$interface['ifSpeed']*100); $in_perc = @round($interface['in_rate']/$interface['ifSpeed']*100);

View File

@@ -30,8 +30,9 @@
if($peerhost) { $peername = generatedevicelink($peerhost, shorthost($peerhost['hostname'])); } else { unset($peername); } if($peerhost) { $peername = generatedevicelink($peerhost, shorthost($peerhost['hostname'])); } else { unset($peername); }
echo("<tr bgcolor=$bg_colour> echo("<tr bgcolor=$bg_colour>
<td width=30><span class=list-large><center>$i</center></span></td> <td width=10></td>
<td width=150>".generatedevicelink($peer, shorthost($peer['hostname']))."</td> <td width=150><span class=list-large>" . $peer['bgpLocalAddr'] . "</span><br />".generatedevicelink($peer, shorthost($peer['hostname']))."</td>
<td width=30>-></td>
<td width=150><span class=list-large>" . $peer['bgpPeerIdentifier'] . "</span><br />".$peername."</td> <td width=150><span class=list-large>" . $peer['bgpPeerIdentifier'] . "</span><br />".$peername."</td>
<td width=50><b>$peer_type</b></td> <td width=50><b>$peer_type</b></td>
<td><strong>AS" . $peer['bgpPeerRemoteAs'] . "</strong><br />" . $peer['astext'] . "</td> <td><strong>AS" . $peer['bgpPeerRemoteAs'] . "</strong><br />" . $peer['astext'] . "</td>

View File

@@ -154,8 +154,7 @@ if($_SESSION['userlevel'] >= '5') {
$seperator = ","; $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 = "select * from interfaces as I, devices as D WHERE `ifAlias` like 'Transit: %' AND I.device_id = D.device_id ORDER BY I.ifAlias";
$sql .= $config['mydomain'] . "' ORDER BY I.ifAlias";
$query = mysql_query($sql); $query = mysql_query($sql);
unset ($seperator); unset ($seperator);
while($interface = mysql_fetch_array($query)) { while($interface = mysql_fetch_array($query)) {
@@ -172,6 +171,9 @@ if($_SESSION['userlevel'] >= '5') {
$seperator = ","; $seperator = ",";
} }
$interfaces['broadband'] = "2490,2509";
$interfaces['wave_broadband'] = "2098";
if($interfaces['transit']) { if($interfaces['transit']) {
echo("<a onmouseover=\"return overlib('<img src=\'graph.php?type=multi_bits&interfaces=".$interfaces['transit']. echo("<a onmouseover=\"return overlib('<img src=\'graph.php?type=multi_bits&interfaces=".$interfaces['transit'].
"&from=".$day."&to=".$now."&width=400&height=150\'>', CENTER, LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 250);\" onmouseout=\"return nd();\" >". "&from=".$day."&to=".$now."&width=400&height=150\'>', 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'></a>"); "&from=".$day."&to=".$now."&width=200&height=100'></a>");
} }
if($interfaces['l2tp']) { if($interfaces['broadband']) {
echo("<a onmouseover=\"return overlib('<img src=\'graph.php?type=multi_bits&interfaces=".$interfaces['l2tp']. echo("<a onmouseover=\"return overlib('<img src=\'graph.php?type=multi_bits&interfaces=".$interfaces['broadband'].
"&from=".$day."&to=".$now."&width=400&height=150\'>', LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 250);\" onmouseout=\"return nd();\" >". "&from=".$day."&to=".$now."&width=400&height=150\'>', LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 250);\" onmouseout=\"return nd();\" >".
"<div style='font-size: 18px; font-weight: bold;'>L2TP ADSL</div>". "<div style='font-size: 18px; font-weight: bold;'>Broadband</div>".
"<img src='graph.php?type=multi_bits&interfaces=".$interfaces['l2tp']. "<img src='graph.php?type=multi_bits&interfaces=".$interfaces['broadband'].
"&from=".$day."&to=".$now."&width=200&height=100'></a>"); "&from=".$day."&to=".$now."&width=200&height=100'></a>");
} }
if($interfaces['voip']) { if($interfaces['wave_broadband']) {
echo("<a onmouseover=\"return overlib('<img src=\'graph.php?type=multi_bits&interfaces=".$interfaces['voip']. echo("<a onmouseover=\"return overlib('<img src=\'graph.php?type=multi_bits&interfaces=".$interfaces['wave_broadband'].
"&from=".$day."&to=".$now."&width=400&height=150\'>', LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 250);\" onmouseout=\"return nd();\" >". "&from=".$day."&to=".$now."&width=400&height=150\'>', LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 250);\" onmouseout=\"return nd();\" >".
"<div style='font-size: 18px; font-weight: bold;'>VoIP to PSTN</div>". "<div style='font-size: 18px; font-weight: bold;'>Wave Broadhand</div>".
"<img src='graph.php?type=multi_bits&interfaces=".$interfaces['voip']. "<img src='graph.php?type=multi_bits&interfaces=".$interfaces['wave_broadband'].
"&from=".$day."&to=".$now."&width=200&height=100'></a>"); "&from=".$day."&to=".$now."&width=200&height=100'></a>");
} }

View File

@@ -4,7 +4,7 @@ echo("<table cellpadding=7 cellspacing=0 class=devicetable width=100%>");
if($_GET['type']) { if($_GET['type']) {
$type = $_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); $query = mysql_query($sql);
while($interface = mysql_fetch_array($query)) { while($interface = mysql_fetch_array($query)) {
$done = "yes"; $done = "yes";

View File

@@ -395,29 +395,30 @@ function humanmedia($media) {
function humanspeed($speed) { function humanspeed($speed) {
$speed = preg_replace("/^0$/", "-", $speed); # $speed = preg_replace("/^0$/", "-", $speed);
$speed = preg_replace("/^9000$/", "9Kbps", $speed); # $speed = preg_replace("/^9000$/", "9Kbps", $speed);
$speed = preg_replace("/^48000$/", "48Kbps", $speed); # $speed = preg_replace("/^48000$/", "48Kbps", $speed);
$speed = preg_replace("/^56000$/", "56Kbps", $speed); # $speed = preg_replace("/^56000$/", "56Kbps", $speed);
$speed = preg_replace("/^64000$/", "64Kbps", $speed); # $speed = preg_replace("/^64000$/", "64Kbps", $speed);
$speed = preg_replace("/^128000$/", "128Kbps", $speed); # $speed = preg_replace("/^128000$/", "128Kbps", $speed);
$speed = preg_replace("/^256000$/", "256Kbps", $speed); # $speed = preg_replace("/^256000$/", "256Kbps", $speed);
$speed = preg_replace("/^448000$/", "448Kbps", $speed); # $speed = preg_replace("/^448000$/", "448Kbps", $speed);
$speed = preg_replace("/^512000$/", "512Kbps", $speed); # $speed = preg_replace("/^512000$/", "512Kbps", $speed);
$speed = preg_replace("/^768000$/", "768Kbps", $speed); # $speed = preg_replace("/^768000$/", "768Kbps", $speed);
$speed = preg_replace("/^1024000$/", "1Mbps", $speed); # $speed = preg_replace("/^1024000$/", "1Mbps", $speed);
$speed = preg_replace("/^2048000$/", "2Mbps", $speed); # $speed = preg_replace("/^2048000$/", "2Mbps", $speed);
$speed = preg_replace("/^4192000$/", "4Mbps", $speed); # $speed = preg_replace("/^4192000$/", "4Mbps", $speed);
$speed = preg_replace("/^10000000$/", "10Mbps", $speed); # $speed = preg_replace("/^10000000$/", "10Mbps", $speed);
$speed = preg_replace("/^34000000$/", "34Mbps", $speed); # $speed = preg_replace("/^34000000$/", "34Mbps", $speed);
$speed = preg_replace("/^45000000$/", "45Mbps", $speed); # $speed = preg_replace("/^45000000$/", "45Mbps", $speed);
$speed = preg_replace("/^54000000$/", "54Mbps", $speed); # $speed = preg_replace("/^54000000$/", "54Mbps", $speed);
$speed = preg_replace("/^100000000$/", "100Mbps", $speed); # $speed = preg_replace("/^100000000$/", "100Mbps", $speed);
$speed = preg_replace("/^155000000$/", "155Mbps", $speed); # $speed = preg_replace("/^155000000$/", "155Mbps", $speed);
$speed = preg_replace("/^622000000$/", "622Mbps", $speed); # $speed = preg_replace("/^622000000$/", "622Mbps", $speed);
$speed = preg_replace("/^1000000000$/", "1Gbps", $speed); # $speed = preg_replace("/^1000000000$/", "1Gbps", $speed);
$speed = preg_replace("/^10000000000$/", "10Gbps", $speed); # $speed = preg_replace("/^10000000000$/", "10Gbps", $speed);
$speed = preg_replace("/^4294967295$/", "", $speed); # $speed = preg_replace("/^4294967295$/", "", $speed);
$speed = formatRates($speed);
if($speed == "") { $speed = "-"; } if($speed == "") { $speed = "-"; }
return $speed; return $speed;
} }
@@ -559,6 +560,7 @@ function fixifName ($inf) {
$inf = str_replace("vlan", "Vlan", $inf); $inf = str_replace("vlan", "Vlan", $inf);
$inf = str_replace("ether", "Ether", $inf); $inf = str_replace("ether", "Ether", $inf);
$inf = str_replace("-802.1q Vlan subif", "", $inf); $inf = str_replace("-802.1q Vlan subif", "", $inf);
$inf = str_replace("-802.1q", "", $inf);
$inf = str_replace("tunnel", "Tunnel", $inf); $inf = str_replace("tunnel", "Tunnel", $inf);
$inf = str_replace("serial", "Serial", $inf); $inf = str_replace("serial", "Serial", $inf);
$inf = str_replace("-aal5 layer", " aal5", $inf); $inf = str_replace("-aal5 layer", " aal5", $inf);
@@ -575,8 +577,10 @@ function fixifName ($inf) {
function fixIOSFeatures($features){ function fixIOSFeatures($features){
$features = preg_replace("/^PK9S$/", "IP w/SSH LAN Only", $features);
$features = str_replace("LANBASEK9", "Lan Base Crypto", $features); $features = str_replace("LANBASEK9", "Lan Base Crypto", $features);
$features = str_replace("LANBASE", "Lan Base", $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("ADVSECURITYK9", "Advanced Security Crypto", $features);
$features = str_replace("K91P", "Provider Crypto", $features); $features = str_replace("K91P", "Provider Crypto", $features);
$features = str_replace("K4P", "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("ADVIPSERVICES", "Adv IP Services", $features);
$features = str_replace("IK9P", "IP Plus Crypto", $features); $features = str_replace("IK9P", "IP Plus Crypto", $features);
$features = str_replace("SPSERVICESK9", "SP Services 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("IS", "IP Plus", $features);
$features = str_replace("IPSERVICESK9", "IP Services Crypto", $features); $features = str_replace("IPSERVICESK9", "IP Services Crypto", $features);
$features = str_replace("BROADBAND", "Broadband", $features); $features = str_replace("BROADBAND", "Broadband", $features);
$features = str_replace("IPBASE", "IP Base", $features); $features = str_replace("IPBASE", "IP Base", $features);
$features = str_replace("IPSERVICE", "IP Services", $features); $features = str_replace("IPSERVICE", "IP Services", $features);
$features = preg_replace("/^P$/", "Service Provider", $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("JK9S", "Enterprise Plus Crypto", $features);
$features = str_replace("IK9S", "IP Plus Crypto", $features); $features = str_replace("IK9S", "IP Plus Crypto", $features);
$features = str_replace("I6Q4L2", "Layer 2", $features); $features = str_replace("I6Q4L2", "Layer 2", $features);

View File

@@ -14,10 +14,11 @@ while($peer = mysql_fetch_array($peers)) {
$peer_cmd = $config['snmpget'] . " -Ovq -" . $device['snmpver'] . " -c" . $device['community'] . " " . $device['hostname'] . " "; $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 .= "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`); $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"; $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"); rrdtool_update($peerrrd, "N:$bgpPeerOutUpdates:$bgpPeerInUpdates:$bgpPeerOutTotalMessages:$bgpPeerInTotalMesages:$bgpPeerFsmEstablishedTime");
$update = "UPDATE bgpPeers SET bgpPeerState = '$bgpPeerState', bgpPeerAdminStatus = '$bgpPeerAdminStatus', "; $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'] . "'"; $update .= " WHERE `device_id` = '".$device['device_id']."' AND bgpPeerIdentifier = '" . $peer['bgpPeerIdentifier'] . "'";
mysql_query($update); mysql_query($update);