2009-09-25 12:18:25 +00:00
|
|
|
<?php
|
|
|
|
|
|
2012-05-25 12:24:34 +00:00
|
|
|
// Generate a list of ports and then call the multi_bits grapher to generate from the list
|
2012-04-20 13:00:00 +00:00
|
|
|
$ds_in = 'INOCTETS';
|
|
|
|
|
$ds_out = 'OUTOCTETS';
|
2015-07-13 20:10:26 +02:00
|
|
|
|
2021-01-13 07:23:47 -06:00
|
|
|
$ports = dbFetchRows('SELECT * FROM `ports` WHERE `device_id` = ? AND `disabled` = 0 AND `deleted` = 0', [$device['device_id']]);
|
|
|
|
|
|
|
|
|
|
if (empty($ports)) {
|
2022-11-03 15:07:17 -05:00
|
|
|
throw new \LibreNMS\Exceptions\RrdGraphException('No Ports');
|
2021-01-13 07:23:47 -06:00
|
|
|
}
|
|
|
|
|
|
2022-09-05 11:12:43 -05:00
|
|
|
$i = 0;
|
2021-01-13 07:23:47 -06:00
|
|
|
foreach ($ports as $port) {
|
2010-04-20 15:46:17 +00:00
|
|
|
$ignore = 0;
|
2019-06-23 00:29:12 -05:00
|
|
|
if (is_array(\LibreNMS\Config::get('device_traffic_iftype'))) {
|
|
|
|
|
foreach (\LibreNMS\Config::get('device_traffic_iftype') as $iftype) {
|
2023-01-24 18:15:59 +01:00
|
|
|
if (in_array($iftype, ['/virtual/', '/l2vlan/']) && $device['os'] == 'asa') {
|
|
|
|
|
// ASA (at least in multicontext) reports interfaces as l2vlan even if they are l3
|
|
|
|
|
// or propVirtual in 9.16 (like etherchannels) but without the physical ones.
|
|
|
|
|
// Filtering those types results in empty device_bits graphs in ASAs.
|
|
|
|
|
// This patch will avoid filtering l2vlan and propVirtual on ASA devices.
|
2019-03-13 09:04:51 +01:00
|
|
|
continue;
|
|
|
|
|
}
|
2011-09-15 16:52:28 +00:00
|
|
|
if (preg_match($iftype . 'i', $port['ifType'])) {
|
2010-04-20 15:46:17 +00:00
|
|
|
$ignore = 1;
|
2015-07-13 20:10:26 +02:00
|
|
|
}
|
2011-03-12 08:50:47 +00:00
|
|
|
}
|
2010-04-20 15:46:17 +00:00
|
|
|
}
|
2009-10-27 13:04:16 +00:00
|
|
|
|
2019-06-23 00:29:12 -05:00
|
|
|
if (is_array(\LibreNMS\Config::get('device_traffic_descr'))) {
|
|
|
|
|
foreach (\LibreNMS\Config::get('device_traffic_descr') as $ifdescr) {
|
2016-12-20 10:58:20 -06:00
|
|
|
if (preg_match($ifdescr . 'i', $port['ifDescr']) || preg_match($ifdescr . 'i', $port['ifName'])) {
|
2011-09-18 15:38:05 +00:00
|
|
|
$ignore = 1;
|
2015-07-13 20:10:26 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2011-09-23 14:57:19 +00:00
|
|
|
|
2016-08-18 20:28:22 -05:00
|
|
|
$rrd_filename = get_port_rrdfile_path($device['hostname'], $port['port_id']);
|
2021-03-28 17:25:30 -05:00
|
|
|
if ($ignore != 1 && Rrd::checkRrdExists($rrd_filename)) {
|
2017-04-04 08:08:23 +01:00
|
|
|
$port = cleanPort($port);
|
2012-05-25 12:24:34 +00:00
|
|
|
// Fix Labels! ARGH. This needs to be in the bloody database!
|
2011-09-14 13:44:19 +00:00
|
|
|
$rrd_filenames[] = $rrd_filename;
|
|
|
|
|
$rrd_list[$i]['filename'] = $rrd_filename;
|
2021-03-28 17:25:30 -05:00
|
|
|
$rrd_list[$i]['descr'] = \LibreNMS\Util\Rewrite::shortenIfType($port['label']);
|
2011-10-08 15:03:17 +00:00
|
|
|
$rrd_list[$i]['descr_in'] = $port['label'];
|
2021-03-28 17:25:30 -05:00
|
|
|
$rrd_list[$i]['descr_out'] = \LibreNMS\Util\Clean::html($port['ifAlias'], []);
|
2011-09-21 11:59:59 +00:00
|
|
|
$rrd_list[$i]['ds_in'] = $ds_in;
|
|
|
|
|
$rrd_list[$i]['ds_out'] = $ds_out;
|
2011-09-14 13:44:19 +00:00
|
|
|
$i++;
|
2009-09-25 12:18:25 +00:00
|
|
|
}
|
2011-03-12 08:50:47 +00:00
|
|
|
|
2010-04-20 15:46:17 +00:00
|
|
|
unset($ignore);
|
2009-09-25 12:18:25 +00:00
|
|
|
}//end foreach
|
|
|
|
|
|
2011-09-21 11:59:59 +00:00
|
|
|
$units = 'b';
|
2011-09-14 13:44:19 +00:00
|
|
|
$total_units = 'B';
|
|
|
|
|
$colours_in = 'greens';
|
|
|
|
|
$multiplier = '8';
|
2017-12-02 22:28:03 +02:00
|
|
|
$colours_out = 'purples';
|
2011-09-14 13:44:19 +00:00
|
|
|
|
2012-04-26 16:15:11 +00:00
|
|
|
// $nototal = 1;
|
2011-09-21 11:59:59 +00:00
|
|
|
$ds_in = 'INOCTETS';
|
|
|
|
|
$ds_out = 'OUTOCTETS';
|
2011-09-14 13:38:01 +00:00
|
|
|
|
2012-04-20 11:27:31 +00:00
|
|
|
$graph_title .= '::bits';
|
2009-10-27 13:04:16 +00:00
|
|
|
|
2012-04-20 13:00:00 +00:00
|
|
|
$colour_line_in = '006600';
|
|
|
|
|
$colour_line_out = '000099';
|
2012-04-20 11:27:31 +00:00
|
|
|
$colour_area_in = '91B13C';
|
|
|
|
|
$colour_area_out = '8080BD';
|
2012-05-02 22:02:30 +00:00
|
|
|
|
2019-04-11 23:26:42 -05:00
|
|
|
require 'includes/html/graphs/generic_multi_seperated.inc.php';
|
2009-09-25 12:18:25 +00:00
|
|
|
|
2019-04-11 23:26:42 -05:00
|
|
|
// include("includes/html/graphs/generic_multi_bits_separated.inc.php");
|
|
|
|
|
// include("includes/html/graphs/generic_multi_data_separated.inc.php");
|