2013-11-19 08:57:43 +10:00
<? php
/*
* LibreNMS front page top ports graph
* - Find most utilised ports that have been polled in the last N minutes
*
2015-06-14 18:00:21 +10:00
* Author: Paul Gear
2013-11-19 08:57:43 +10:00
* Copyright (c) 2013 Gear Consulting Pty Ltd <http://libertysys.com.au/>
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version. Please see LICENSE.txt at the top level of
* the source code distribution for details.
*/
$minutes = 15 ;
2015-07-13 20:10:26 +02:00
$seconds = ( $minutes * 60 );
$top = $config [ 'front_page_settings' ][ 'top' ][ 'ports' ];
if ( is_admin () === true || is_read () === true ) {
2015-05-29 00:39:05 +01:00
$query = "
SELECT *, p.ifInOctets_rate + p.ifOutOctets_rate as total
FROM ports as p, devices as d
WHERE d.device_id = p.device_id
AND unix_timestamp() - p.poll_time < $seconds
AND ( p.ifInOctets_rate > 0
OR p.ifOutOctets_rate > 0 )
ORDER BY total desc
LIMIT $top
2015-07-13 20:10:26 +02:00
" ;
2016-08-18 20:28:22 -05:00
} else {
2015-07-13 20:10:26 +02:00
$query = "
2015-05-29 00:39:05 +01:00
SELECT *, I.ifInOctets_rate + I.ifOutOctets_rate as total
FROM ports as I, devices as d,
`devices_perms` AS `P`, `ports_perms` AS `PP`
WHERE ((`P`.`user_id` = ? AND `P`.`device_id` = `d`.`device_id`) OR (`PP`.`user_id` = ? AND `PP`.`port_id` = `I`.`port_id` AND `I`.`device_id` = `d`.`device_id`)) AND
d.device_id = I.device_id
AND unix_timestamp() - I.poll_time < $seconds
AND ( I.ifInOctets_rate > 0
OR I.ifOutOctets_rate > 0 )
ORDER BY total desc
LIMIT $top
2015-07-13 20:10:26 +02:00
" ;
$param [] = array (
$_SESSION [ 'user_id' ],
$_SESSION [ 'user_id' ],
);
} //end if
2013-11-19 08:57:43 +10:00
2015-07-13 20:10:26 +02:00
echo "<strong>Top $top ports (last $minutes minutes)</strong> \n " ;
echo "<table class='simple'> \n " ;
foreach ( dbFetchRows ( $query , $param ) as $result ) {
2017-04-04 08:08:23 +01:00
$result = cleanPort ( $result );
2015-07-13 20:10:26 +02:00
echo '<tr class=top10>' . '<td class=top10>' . generate_device_link ( $result , shorthost ( $result [ 'hostname' ])) . '</td>' . '<td class=top10>' . generate_port_link ( $result ) . '</td>' . '<td class=top10>' . generate_port_link ( $result , generate_port_thumbnail ( $result )) . '</td>' . "</tr> \n " ;
2013-11-19 08:57:43 +10:00
}
2015-07-13 20:10:26 +02:00
echo "</table> \n " ;