mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
git-svn-id: http://www.observium.org/svn/observer/trunk@3240 61d68cd4-352d-0410-923a-c4978735b2b8
197 lines
11 KiB
PHP
197 lines
11 KiB
PHP
<?php
|
|
|
|
// FIXME - REWRITE!
|
|
|
|
$hostname = $device['hostname'];
|
|
$hostid = $device['port_id'];
|
|
$ifname = $port['ifDescr'];
|
|
$ifIndex = $port['ifIndex'];
|
|
$speed = humanspeed($port['ifSpeed']);
|
|
|
|
$ifalias = $port['name'];
|
|
|
|
if ($port['ifPhysAddress']) { $mac = $port['ifPhysAddress']; }
|
|
|
|
$color = "black";
|
|
if ($port['ifAdminStatus'] == "down") { $status = "<span class='grey'>Disabled</span>"; }
|
|
if ($port['ifAdminStatus'] == "up" && $port['ifOperStatus'] == "down") { $status = "<span class='red'>Enabled / Disconnected</span>"; }
|
|
if ($port['ifAdminStatus'] == "up" && $port['ifOperStatus'] == "up") { $status = "<span class='green'>Enabled / Connected</span>"; }
|
|
|
|
$i = 1;
|
|
$inf = fixifName($ifname);
|
|
|
|
echo("<div style='clear: both;'>");
|
|
|
|
if ($vars['subview'] == "top10")
|
|
{
|
|
|
|
if (!isset($vars['sort'])) { $vars['sort'] = "in"; }
|
|
if (!isset($vars['period'])) { $vars['period'] = "1day"; }
|
|
$from = "-" . $vars['period'];
|
|
|
|
echo("<div style='margin: 0px 0px 0px 0px'>
|
|
<div style=' margin:0px; float: left;';>
|
|
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
|
|
<span class=device-head>Day</span><br />
|
|
|
|
<a href='".generate_url($link_array,array('view' => 'macaccounting', 'subview' => 'top10', 'graph'=>$vars['graph'], sort => $vars['sort'], 'period' => 'day'))."'>
|
|
|
|
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=".$port['port_id'].
|
|
"&stat=".$vars['graph']."&type=port_mac_acc_total&sort=".$vars['sort']."&from=".$config['time']['day']."&to=".$config['time']['now']."&width=150&height=50' />
|
|
</a>
|
|
</div>
|
|
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
|
|
<span class=device-head>Two Day</span><br />
|
|
<a href='".generate_url($link_array,array('view' => 'macaccounting', 'subview' => 'top10', 'graph'=>$vars['graph'], sort => $vars['sort'], 'period' => 'twoday'))."/'>
|
|
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=".$port['port_id'].
|
|
"&stat=".$vars['graph']."&type=port_mac_acc_total&sort=".$vars['sort']."&from=".$config['time']['twoday']."&to=".$config['time']['now']."&width=150&height=50' />
|
|
</a>
|
|
</div>
|
|
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
|
|
<span class=device-head>Week</span><br />
|
|
<a href='".generate_url($link_array,array('view' => 'macaccounting', 'subview' => 'top10', 'graph'=>$vars['graph'], sort => $vars['sort'], 'period' => 'week'))."/'>
|
|
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=".$port['port_id']."&type=port_mac_acc_total&sort=".$vars['sort']."&stat=".$vars['graph']."&from=".$config['time']['week']."&to=".$config['time']['now']."&width=150&height=50' />
|
|
</a>
|
|
</div>
|
|
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
|
|
<span class=device-head>Month</span><br />
|
|
<a href='".generate_url($link_array,array('view' => 'macaccounting', 'subview' => 'top10', 'graph'=>$vars['graph'], sort => $vars['sort'], 'period' => 'month'))."/'>
|
|
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=".$port['port_id']."&type=port_mac_acc_total&sort=".$vars['sort']."&stat=".$vars['graph']."&from=".$config['time']['month']."&to=".$config['time']['now']."&width=150&height=50' />
|
|
</a>
|
|
</div>
|
|
<div style='margin: 0px 10px 5px 0px; padding:5px; background: #e5e5e5;'>
|
|
<span class=device-head>Year</span><br />
|
|
<a href='".generate_url($link_array,array('view' => 'macaccounting', 'subview' => 'top10', 'graph'=>$vars['graph'], sort => $vars['sort'], 'period' => 'year'))."/'>
|
|
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=".$port['port_id']."&type=port_mac_acc_total&sort=".$vars['sort']."&stat=".$vars['graph']."&from=".$config['time']['year']."&to=".$config['time']['now']."&width=150&height=50' />
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div style='float: left;'>
|
|
<img src='graph.php?id=".$port['port_id']."&type=port_mac_acc_total&sort=".$vars['sort']."&stat=".$vars['graph']."&from=$from&to=".$config['time']['now']."&width=745&height=300' />
|
|
</div>
|
|
<div style=' margin:0px; float: left;';>
|
|
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
|
|
<span class=device-head>Traffic</span><br />
|
|
<a href='".generate_url($link_array,array('view' => 'macaccounting', 'subview' => 'top10', 'graph'=>'bits', sort => $vars['sort'], 'period' => $vars['period']))."'>
|
|
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=".$port['port_id']."&stat=bits&type=port_mac_acc_total&sort=".$vars['sort']."&from=$from&to=".$config['time']['now']."&width=150&height=50' />
|
|
</a>
|
|
</div>
|
|
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
|
|
<span class=device-head>Packets</span><br />
|
|
<a href='".generate_url($link_array,array('view' => 'macaccounting', 'subview' => 'top10', 'graph'=>'pkts', sort => $vars['sort'], 'period' => $vars['period']))."/'>
|
|
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=".$port['port_id']."&stat=pkts&type=port_mac_acc_total&sort=".$vars['sort']."&from=$from&to=".$config['time']['now']."&width=150&height=50' />
|
|
</a>
|
|
</div>
|
|
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
|
|
<span class=device-head>Top Input</span><br />
|
|
<a href='".generate_url($link_array,array('view' => 'macaccounting', 'subview' => 'top10', 'graph'=>$vars['graph'], sort => 'in', 'period' => $vars['period']))."'>
|
|
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=".$port['port_id'].
|
|
"&stat=".$vars['graph']."&type=port_mac_acc_total&sort=in&from=$from&to=".$config['time']['now']."&width=150&height=50' />
|
|
</a>
|
|
</div>
|
|
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
|
|
<span class=device-head>Top Output</span><br />
|
|
<a href='".generate_url($link_array,array('view' => 'macaccounting', 'subview' => 'top10', 'graph'=>$vars['graph'], sort => 'out', 'period' => $vars['period']))."'>
|
|
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=".$port['port_id'].
|
|
"&stat=".$vars['graph']."&type=port_mac_acc_total&sort=out&from=$from&to=".$config['time']['now']."&width=150&height=50' />
|
|
</a>
|
|
</div>
|
|
<div style='margin: 0px 0px 5px 10px; padding:5px; background: #e5e5e5;'>
|
|
<span class=device-head>Top Aggregate</span><br />
|
|
<a href='".generate_url($link_array,array('view' => 'macaccounting', 'subview' => 'top10', 'graph'=>$vars['graph'], sort => 'both', 'period' => $vars['period']))."'>
|
|
<img style='border: #5e5e5e 2px;' valign=middle src='graph.php?id=".$port['port_id'].
|
|
"&stat=".$vars['graph']."&type=port_mac_acc_total&sort=both&from=$from&to=".$config['time']['now']."&width=150&height=50' />
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
");
|
|
unset($query);
|
|
}
|
|
else
|
|
{
|
|
|
|
$query = "SELECT *, (M.cipMacHCSwitchedBytes_input_rate + M.cipMacHCSwitchedBytes_output_rate) as bps FROM `mac_accounting` AS M,
|
|
`ports` AS I, `devices` AS D WHERE M.port_id = ? AND I.port_id = M.port_id AND I.device_id = D.device_id ORDER BY bps DESC";
|
|
$param = array($port['port_id']);
|
|
|
|
foreach (dbFetchRows($query, $param) as $acc)
|
|
{
|
|
if (!is_integer($i/2)) { $row_colour = $list_colour_a; } else { $row_colour = $list_colour_b; }
|
|
$addy = dbFetchRow("SELECT * FROM ipv4_mac where mac_address = ?", array($acc['mac']));
|
|
#$name = gethostbyaddr($addy['ipv4_address']); FIXME - Maybe some caching for this?
|
|
$arp_host = dbFetchRow("SELECT * FROM ipv4_addresses AS A, ports AS I, devices AS D WHERE A.ipv4_address = ? AND I.port_id = A.port_id AND D.device_id = I.device_id", array($addy['ipv4_address']));
|
|
if ($arp_host) { $arp_name = generate_device_link($arp_host); $arp_name .= " ".generate_port_link($arp_host); } else { unset($arp_if); }
|
|
|
|
if ($name == $addy['ipv4_address']) { unset ($name); }
|
|
if (dbFetchCell("SELECT count(*) FROM bgpPeers WHERE device_id = ? AND bgpPeerIdentifier = ?", array($acc['device_id'], $addy['ipv4_address'])))
|
|
{
|
|
$peer_info = dbFetchRow("SELECT * FROM bgpPeers WHERE device_id = ? AND bgpPeerIdentifier = ?", array($acc['device_id'], $addy['ipv4_address']));
|
|
} else { unset ($peer_info); }
|
|
|
|
if ($peer_info)
|
|
{
|
|
$asn = "AS".$peer_info['bgpPeerRemoteAs']; $astext = $peer_info['astext'];
|
|
} else {
|
|
unset ($as); unset ($astext); unset($asn);
|
|
}
|
|
|
|
if ($vars['graph'])
|
|
{
|
|
$graph_type = "macaccounting_" . $vars['graph'];
|
|
} else {
|
|
$graph_type = "macaccounting_bits";
|
|
}
|
|
|
|
if ($vars['subview'] == "minigraphs")
|
|
{
|
|
if (!$asn) { $asn = "No Session"; }
|
|
|
|
echo("<div style='display: block; padding: 3px; margin: 3px; min-width: 221px; max-width:221px; min-height:90px; max-height:90px; text-align: center; float: left; background-color: #e5e5e5;'>
|
|
".$addy['ipv4_address']." - ".$asn."
|
|
<a href='#' onmouseover=\"return overlib('\
|
|
<div style=\'font-size: 16px; padding:5px; font-weight: bold; color: #555555;\'>".$name." - ".$addy['ipv4_address']." - ".$asn."</div>\
|
|
<img src=\'graph.php?id=" . $acc['ma_id'] . "&type=$graph_type&from=".$config['time']['twoday']."&to=".$config['time']['now']."&width=450&height=150\'>\
|
|
', CENTER, LEFT, FGCOLOR, '#e5e5e5', BGCOLOR, '#e5e5e5', WIDTH, 400, HEIGHT, 150);\" onmouseout=\"return nd();\" >
|
|
<img src='graph.php?id=" . $acc['ma_id'] . "&type=$graph_type&from=".$config['time']['twoday']."&to=".$config['time']['now']."&width=213&height=45'></a>
|
|
|
|
<span style='font-size: 10px;'>".$name."</span>
|
|
</div>");
|
|
|
|
}
|
|
else
|
|
{
|
|
echo("<div style='background-color: $row_colour; padding: 0px;'>");
|
|
|
|
echo("
|
|
<table>
|
|
<tr>
|
|
<td class=list-large width=200>".mac_clean_to_readable($acc['mac'])."</td>
|
|
<td class=list-large width=200>".$addy['ipv4_address']."</td>
|
|
<td class=list-large width=500>".$name." ".$arp_name . "</td>
|
|
<td class=list-large width=100>".formatRates($acc['cipMacHCSwitchedBytes_input_rate'] / 8)."</td>
|
|
<td class=list-large width=100>".formatRates($acc['cipMacHCSwitchedBytes_output_rate'] / 8)."</td>
|
|
</tr>
|
|
</table>
|
|
");
|
|
|
|
$peer_info['astext'];
|
|
|
|
$graph_array['type'] = $graph_type;
|
|
$graph_array['id'] = $acc['ma_id'];
|
|
$graph_array['height'] = "100";
|
|
$graph_array['width'] = "216";
|
|
$graph_array['to'] = $config['time']['now'];
|
|
echo('<tr bgcolor="'.$bg_colour.'"' . ($bg_image ? ' background="'.$bg_image.'"' : '') . '"><td colspan="7">');
|
|
|
|
include("includes/print-graphrow.inc.php");
|
|
|
|
echo("</td></tr>");
|
|
|
|
$i++;
|
|
}
|
|
}
|
|
}
|
|
|
|
?>
|