mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Adds some basic NFSEN integration support. by falz.
git-svn-id: http://www.observium.org/svn/observer/trunk@2033 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
45
html/includes/graphs/device/nfsen_common.inc.php
Normal file
45
html/includes/graphs/device/nfsen_common.inc.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
include("includes/graphs/common.inc.php");
|
||||
$device = device_by_id_cache($id);
|
||||
|
||||
if (!is_array($config['nfsen_rrds'])) { $config['nfsen_rrds'] = array($config['nfsen_rrds']); }
|
||||
|
||||
foreach ( $config['nfsen_rrds'] as $nfsenrrds )
|
||||
{
|
||||
if ($configs[strlen($nfsenrrds)-1] != '/') { $nfsenrrds .= '/'; }
|
||||
|
||||
# convert dots in filename to underscores
|
||||
$basefilename_underscored = preg_replace('/\./', $config['nfsen_split_char'], $device['hostname']);
|
||||
if (is_file($nfsenrrds . $basefilename_underscored . ".rrd"))
|
||||
{
|
||||
$rrd_filename = $nfsenrrds . $basefilename_underscored . ".rrd";
|
||||
|
||||
$flowtypes = array('tcp', 'udp', 'icmp', 'other');
|
||||
|
||||
$rrd_list=array();
|
||||
$nfsen_iter=1;
|
||||
foreach ($flowtypes as $flowtype)
|
||||
{
|
||||
|
||||
$rrd_list[$nfsen_iter]['filename'] = $rrd_filename;
|
||||
$rrd_list[$nfsen_iter]['descr'] = $flowtype;
|
||||
$rrd_list[$nfsen_iter]['rra'] = $rraprefix . $flowtype;
|
||||
|
||||
# set a multiplier which in turn will create a CDEF if this var is set
|
||||
if ($rraprefix == "traffic_") { $multiplier = "8"; }
|
||||
|
||||
$colours = "blues";
|
||||
$nototal = 0;
|
||||
$units="";
|
||||
$unit_text = $rradescr;
|
||||
$scale_min = "0";
|
||||
|
||||
if ($_GET['debug']) { print_r($rrd_list); }
|
||||
$nfsen_iter++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
include("includes/graphs/generic_multi_simplex_seperated.inc.php");
|
||||
|
||||
?>
|
5
html/includes/graphs/device/nfsen_flows.inc.php
Normal file
5
html/includes/graphs/device/nfsen_flows.inc.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
$rradescr = "Flows/s ";
|
||||
$rraprefix = "flows_";
|
||||
include("nfsen_common.inc.php");
|
||||
?>
|
5
html/includes/graphs/device/nfsen_packets.inc.php
Normal file
5
html/includes/graphs/device/nfsen_packets.inc.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
$rradescr = "Packets/s ";
|
||||
$rraprefix = "packets_";
|
||||
include("nfsen_common.inc.php");
|
||||
?>
|
5
html/includes/graphs/device/nfsen_traffic.inc.php
Normal file
5
html/includes/graphs/device/nfsen_traffic.inc.php
Normal file
@@ -0,0 +1,5 @@
|
||||
<?php
|
||||
$rradescr = "Byts/s ";
|
||||
$rraprefix = "traffic_";
|
||||
include("nfsen_common.inc.php");
|
||||
?>
|
@@ -7,21 +7,28 @@ $rrd_options .= " COMMENT:'$unit_text Cur Max'";
|
||||
if (!$nototal) { $rrd_options .= " COMMENT:'Total '"; }
|
||||
$rrd_options .= " COMMENT:'\\n'";
|
||||
|
||||
$i = 0;
|
||||
$iter=0;
|
||||
foreach ($rrd_list as $rrd)
|
||||
{
|
||||
if (!$config['graph_colours'][$colours][$iter]) { $iter = 0; }
|
||||
$colour = $config['graph_colours'][$colours][$iter];
|
||||
$rrd_options .= " DEF:".$rrd['rra'].$i."=".$rrd['filename'].":".$rrd['rra'].":AVERAGE ";
|
||||
$rrd_options .= " DEF:".$rrd['rra'].$i."max=".$rrd['filename'].":".$rrd['rra'].":MAX ";
|
||||
|
||||
if (!$args['nototal'])
|
||||
if (!$nototal)
|
||||
{
|
||||
$rrd_options .= " VDEF:tot".$rrd['rra'].$i."=".$rrd['rra'].$i.",TOTAL";
|
||||
}
|
||||
|
||||
if ($i) { $stack="STACK"; }
|
||||
$rrd_options .= " AREA:".$rrd['rra'].$i."#" . $colour . ":'" . substr(str_pad($rrd['descr'], 18),0,18) . "':$stack";
|
||||
|
||||
# if we've been passed a multiplier we must make a CDEF based on it!
|
||||
$defname = $rrd['rra'];
|
||||
if (is_numeric($multiplier))
|
||||
{
|
||||
$defname = $defname . "_cdef";
|
||||
$rrd_options .= " CDEF:" . $defname . $i . "=" . $rrd['rra'] . $i . "," . $multiplier . ",*";
|
||||
}
|
||||
$rrd_options .= " AREA:" . $defname . $i . "#" . $colour . ":'" . substr(str_pad($rrd['descr'], 18),0,18) . "':$stack";
|
||||
$rrd_options .= " GPRINT:".$rrd['rra'].$i.":LAST:%6.2lf%s$units";
|
||||
$rrd_options .= " GPRINT:".$rrd['rra'].$i."max:MAX:%6.2lf%s$units";
|
||||
|
||||
|
@@ -212,6 +212,27 @@ if (device_permitted($_GET['id']) || $check_device == $_GET['id'])
|
||||
</li>');
|
||||
}
|
||||
|
||||
if ($config['nfsen_enable'])
|
||||
{
|
||||
if (!is_array($config['nfsen_rrds'])) { $config['nfsen_rrds'] = array($config['nfsen_rrds']); }
|
||||
foreach ($config['nfsen_rrds'] as $nfsenrrds)
|
||||
{
|
||||
if ($configs[strlen($nfsenrrds)-1] != '/') { $nfsenrrds .= '/'; }
|
||||
$basefilename_underscored = preg_replace('/\./', $config['nfsen_split_char'], $device['hostname']);
|
||||
if (is_file($nfsenrrds . $basefilename_underscored . ".rrd")) { $nfsen_rrd_file = $nfsenrrds . $basefilename_underscored . ".rrd"; }
|
||||
}
|
||||
}
|
||||
|
||||
if ($nfsen_rrd_file)
|
||||
{
|
||||
echo('<li class="' . $select['nfsen'] . '">
|
||||
<a href="'.$config['base_url']."/device/" . $device['device_id'] . '/nfsen/">
|
||||
<img src="images/16/rainbow.png" align="absmiddle" border="0" /> Netflow
|
||||
</a>
|
||||
</li>');
|
||||
}
|
||||
|
||||
|
||||
if ($_SESSION['userlevel'] >= "7")
|
||||
{
|
||||
echo('<li class="' . $select['edit'] . '">
|
||||
|
17
html/pages/device/nfsen.inc.php
Normal file
17
html/pages/device/nfsen.inc.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
$datas = array(
|
||||
'Flows' => 'nfsen_flows',
|
||||
'Packets' => 'nfsen_packets',
|
||||
'Traffic' => 'nfsen_traffic'
|
||||
);
|
||||
|
||||
foreach ($datas as $name=>$type)
|
||||
{
|
||||
$graph_title = $name;
|
||||
$graph_type = "device_".$type;
|
||||
include("includes/print-device-graph.php");
|
||||
}
|
||||
|
||||
|
||||
?>
|
@@ -153,6 +153,10 @@ $config['billing']['bill_autoadd'] = 0; # Enable Auto-add bill per bill_id
|
||||
$config['rancid_ignorecomments'] = 0; # Ignore lines starting with #
|
||||
#$config['collectd_dir'] = '/var/lib/collectd/rrd';
|
||||
|
||||
# NFSen RRD dir.
|
||||
$config['nfsen_enable'] = 0;
|
||||
#$config['nfsen_split_char'] = "_";
|
||||
#$config['nfsen_rrds'] = "/var/nfsen/profiles-stat/live/";
|
||||
|
||||
### Ignores & Allows
|
||||
|
||||
|
Reference in New Issue
Block a user