mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Removed ?> from includes/polling/wireless/xirrus.inc.php. Also added graphs for average data rates and noise floor and a custom graph for clients connected per radio that should work on larger models.
This commit is contained in:
44
html/includes/graphs/device/xirrus_dataRates.inc.php
Normal file
44
html/includes/graphs/device/xirrus_dataRates.inc.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
require 'includes/graphs/common.inc.php';
|
||||
|
||||
$pallette = array(
|
||||
1 => 'FF0000',
|
||||
2 => '0000FF',
|
||||
3 => '00FF00',
|
||||
4 => 'FF00FF',
|
||||
5 => '000000',
|
||||
6 => 'FFFF00',
|
||||
7 => 'C0C0C0',
|
||||
8 => '800000',
|
||||
9 => '808000',
|
||||
10 => '008000',
|
||||
11 => '00FFFF',
|
||||
12 => '008080',
|
||||
13 => '000080',
|
||||
14 => '800080',
|
||||
15 => 'FF69B4',
|
||||
16 => '006400'
|
||||
);
|
||||
|
||||
$rrd_options .= ' -l 0 -E ';
|
||||
$rrd_options .= " COMMENT:'Average Data Rate Cur Min Max\\n'";
|
||||
$radioId=1;
|
||||
foreach(glob($config['rrd_dir'].'/'.$device['hostname'].'/xirrus_stats-*.rrd') as $rrd) {
|
||||
// get radio name
|
||||
preg_match("/xirrus_stats-iap([0-9]{1,2}).rrd/", $rrd, $out);
|
||||
list(,$radioId)=$out;
|
||||
|
||||
// build graph
|
||||
$color=$pallette[$radioId];
|
||||
|
||||
$descr = "iap$radioId ";
|
||||
|
||||
$rrd_options .= " DEF:rate$radioId=$rrd:dataRate:AVERAGE";
|
||||
$rrd_options .= " LINE2:rate$radioId#".$color.":'".$descr."'";
|
||||
$rrd_options .= " GPRINT:rate$radioId:LAST:'%5.0lf'";
|
||||
$rrd_options .= " GPRINT:rate$radioId:MIN:'%5.0lf'";
|
||||
$rrd_options .= " GPRINT:rate$radioId:MAX:'%5.0lf'\\l";
|
||||
|
||||
$radioId++;
|
||||
}//end foreach
|
44
html/includes/graphs/device/xirrus_noiseFloor.inc.php
Normal file
44
html/includes/graphs/device/xirrus_noiseFloor.inc.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
require 'includes/graphs/common.inc.php';
|
||||
|
||||
$pallette = array(
|
||||
1 => 'FF0000',
|
||||
2 => '0000FF',
|
||||
3 => '00FF00',
|
||||
4 => 'FF00FF',
|
||||
5 => '000000',
|
||||
6 => 'FFFF00',
|
||||
7 => 'C0C0C0',
|
||||
8 => '800000',
|
||||
9 => '808000',
|
||||
10 => '008000',
|
||||
11 => '00FFFF',
|
||||
12 => '008080',
|
||||
13 => '000080',
|
||||
14 => '800080',
|
||||
15 => 'FF69B4',
|
||||
16 => '006400'
|
||||
);
|
||||
|
||||
$rrd_options .= ' -E ';
|
||||
$rrd_options .= " COMMENT:'Noisefloor Cur Min Max\\n'";
|
||||
$radioId=1;
|
||||
foreach(glob($config['rrd_dir'].'/'.$device['hostname'].'/xirrus_stats-*.rrd') as $rrd) {
|
||||
// get radio name
|
||||
preg_match("/xirrus_stats-iap([0-9]{1,2}).rrd/", $rrd, $out);
|
||||
list(,$radioId)=$out;
|
||||
|
||||
// build graph
|
||||
$color=$pallette[$radioId];
|
||||
|
||||
$descr = "iap$radioId ";
|
||||
|
||||
$rrd_options .= " DEF:noise$radioId=$rrd:noiseFloor:AVERAGE";
|
||||
$rrd_options .= " LINE2:noise$radioId#".$color.":'".$descr."'";
|
||||
$rrd_options .= " GPRINT:noise$radioId:LAST:'%5.0lf'";
|
||||
$rrd_options .= " GPRINT:noise$radioId:MIN:'%5.0lf'";
|
||||
$rrd_options .= " GPRINT:noise$radioId:MAX:'%5.0lf'\\l";
|
||||
|
||||
$radioId++;
|
||||
}//end foreach
|
@@ -24,7 +24,12 @@ $pallette = array(
|
||||
$rrd_options .= ' -E ';
|
||||
$rrd_options .= " COMMENT:'Signal RSSI Cur Min Max\\n'";
|
||||
$radioId=1;
|
||||
foreach(glob($config['rrd_dir'].'/'.$device['hostname'].'/xirrus_rssi-*.rrd') as $rrd) {
|
||||
foreach(glob($config['rrd_dir'].'/'.$device['hostname'].'/xirrus_stats-*.rrd') as $rrd) {
|
||||
// get radio name
|
||||
preg_match("/xirrus_stats-iap([0-9]{1,2}).rrd/", $rrd, $out);
|
||||
list(,$radioId)=$out;
|
||||
|
||||
// build graph
|
||||
$color=$pallette[$radioId];
|
||||
|
||||
$descr = "iap$radioId ";
|
||||
|
44
html/includes/graphs/device/xirrus_stations.inc.php
Normal file
44
html/includes/graphs/device/xirrus_stations.inc.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
require 'includes/graphs/common.inc.php';
|
||||
|
||||
$pallette = array(
|
||||
1 => '001080',
|
||||
2 => '043D85',
|
||||
3 => '096C8A',
|
||||
4 => '0F8F84',
|
||||
5 => '159461',
|
||||
6 => '1B9A3E',
|
||||
7 => '279F22',
|
||||
8 => '56A429',
|
||||
9 => '83A930',
|
||||
10 => 'AEAE38',
|
||||
11 => 'B48E40',
|
||||
12 => 'B97049',
|
||||
13 => 'BE5552',
|
||||
14 => 'C35B79',
|
||||
15 => 'C864A1',
|
||||
16 => 'CE6FC7'
|
||||
);
|
||||
|
||||
$rrd_options .= ' -l 0 -E ';
|
||||
$rrd_options .= " COMMENT:'Associated Stations Cur Min Max\\n'";
|
||||
$radioId=1;
|
||||
foreach(glob($config['rrd_dir'].'/'.$device['hostname'].'/xirrus_users-*.rrd') as $rrd) {
|
||||
// get radio name
|
||||
preg_match("/xirrus_users-iap([0-9]{1,2}).rrd/", $rrd, $out);
|
||||
list(,$radioId)=$out;
|
||||
|
||||
// build graph
|
||||
$color=$pallette[$radioId];
|
||||
|
||||
$descr = "iap$radioId ";
|
||||
|
||||
$rrd_options .= " DEF:stations$radioId=$rrd:stations:AVERAGE";
|
||||
$rrd_options .= " AREA:stations$radioId#".$color.":'".$descr."':STACK";
|
||||
$rrd_options .= " GPRINT:stations$radioId:LAST:'%5.0lf'";
|
||||
$rrd_options .= " GPRINT:stations$radioId:MIN:'%5.0lf'";
|
||||
$rrd_options .= " GPRINT:stations$radioId:MAX:'%5.0lf'\\l";
|
||||
|
||||
$radioId++;
|
||||
}//end foreach
|
@@ -1678,7 +1678,7 @@ $config['os'][$os]['type'] = 'wireless';
|
||||
$config['os'][$os]['icon'] = 'xirrus';
|
||||
$config['os'][$os]['over'][0]['graph'] = 'device_bits';
|
||||
$config['os'][$os]['over'][0]['text'] = 'Device Traffic';
|
||||
$config['os'][$os]['over'][1]['graph'] = 'device_wifi_clients';
|
||||
$config['os'][$os]['over'][1]['graph'] = 'device_xirrus_stations';
|
||||
$config['os'][$os]['over'][1]['text'] = 'Wifi Clients';
|
||||
$config['os'][$os]['over'][2]['graph'] = 'device_xirrus_rssi';
|
||||
$config['os'][$os]['over'][2]['text'] = 'Signal RSSI';
|
||||
@@ -2162,6 +2162,17 @@ $config['graph_types']['device']['cisco_wwan_mnc']['descr'] = 'MNC';
|
||||
$config['graph_types']['device']['xirrus_rssi']['section'] = 'wireless';
|
||||
$config['graph_types']['device']['xirrus_rssi']['order'] = '0';
|
||||
$config['graph_types']['device']['xirrus_rssi']['descr'] = 'Signal Rssi';
|
||||
$config['graph_types']['device']['xirrus_dataRates']['section'] = 'wireless';
|
||||
$config['graph_types']['device']['xirrus_dataRates']['order'] = '0';
|
||||
$config['graph_types']['device']['xirrus_dataRates']['descr'] = 'Average DataRates';
|
||||
$config['graph_types']['device']['xirrus_noiseFloor']['section'] = 'wireless';
|
||||
$config['graph_types']['device']['xirrus_noiseFloor']['order'] = '0';
|
||||
$config['graph_types']['device']['xirrus_noiseFloor']['descr'] = 'Noise Floor';
|
||||
$config['graph_types']['device']['xirrus_stations']['section'] = 'wireless';
|
||||
$config['graph_types']['device']['xirrus_stations']['order'] = '0';
|
||||
$config['graph_types']['device']['xirrus_stations']['descr'] = 'Associated Stations';
|
||||
|
||||
|
||||
|
||||
|
||||
// Device Types
|
||||
|
@@ -78,18 +78,6 @@ if ($device['type'] == 'network' || $device['type'] == 'firewall' || $device['ty
|
||||
echo (($wificlients1 + 0).' clients on wireless connector, ');
|
||||
}
|
||||
|
||||
if ($device['os'] == 'xirrus') {
|
||||
$wificlients1=0; $wificlients2=0;
|
||||
$assoc = snmpwalk_cache_oid($device, 'XIRRUS-MIB::stationAssociationIAP', array(), 'XIRRUS-MIB');
|
||||
foreach($assoc as $station) {
|
||||
if ($station['stationAssociationIAP']=='iap1') {
|
||||
$wificlients1++;
|
||||
} else {
|
||||
$wificlients2++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($wificlients1) && $wificlients1 != '') {
|
||||
$tags = array(
|
||||
'rrd_def' => 'DS:wificlients:GAUGE:600:-273:1000',
|
||||
|
@@ -2,17 +2,49 @@
|
||||
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/xirrus-rssi.rrd";
|
||||
$radios = snmpwalk_cache_oid($device, 'XIRRUS-MIB::realtimeMonitorIfaceName', array(), 'XIRRUS-MIB');
|
||||
$rssi = snmpwalk_cache_oid($device, 'XIRRUS-MIB::realtimeMonitorAverageRSSI', array(), 'XIRRUS-MIB');
|
||||
$dataRate = snmpwalk_cache_oid($device, 'XIRRUS-MIB::realtimeMonitorAverageDataRate', array(), 'XIRRUS-MIB');
|
||||
$noiseFloor = snmpwalk_cache_oid($device, 'XIRRUS-MIB::realtimeMonitorNoiseFloor', array(), 'XIRRUS-MIB');
|
||||
$associations=array();
|
||||
|
||||
foreach($radios as $idx => $radio) {
|
||||
|
||||
$radioName = $radio['realtimeMonitorIfaceName'];
|
||||
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/xirrus_rssi-$idx.rrd";
|
||||
$associations[$radioName]=0;
|
||||
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/xirrus_stats-$radioName.rrd";
|
||||
if (!is_file($rrd_filename)) {
|
||||
rrdtool_create($rrd_filename, " --step 300 DS:rssi:GAUGE:600:-150:0".$config['rrd_rra']);
|
||||
rrdtool_create($rrd_filename, " --step 300 DS:rssi:GAUGE:600:-150:0 DS:dataRate:GAUGE:600:0:1400 DS:noiseFloor:GAUGE:600:-150:0".$config['rrd_rra']);
|
||||
}
|
||||
rrdtool_update($rrd_filename, array('rssi'=>$rssi[$idx]['realtimeMonitorAverageRSSI']));
|
||||
rrdtool_update($rrd_filename, array(
|
||||
'rssi'=>$rssi[$idx]['realtimeMonitorAverageRSSI'],
|
||||
'dataRate'=>$dataRate[$idx]['realtimeMonitorAverageDataRate'],
|
||||
'noiseFloor'=>$noiseFloor[$idx]['realtimeMonitorNoiseFloor']
|
||||
));
|
||||
|
||||
}
|
||||
// cleanup
|
||||
unset($rrd_filename); unset($radios); unset($rssi); unset($radioName);
|
||||
|
||||
// station associations
|
||||
// custom RRDs and graph as each AP may have 16 radios
|
||||
$assoc = snmpwalk_cache_oid($device, 'XIRRUS-MIB::stationAssociationIAP', array(), 'XIRRUS-MIB');
|
||||
foreach($assoc as $s) {
|
||||
$radio = array_pop($s);
|
||||
$associations[$radio]++;
|
||||
}
|
||||
unset($radio); unset($assoc);
|
||||
// write to rrds
|
||||
print_r($associations);
|
||||
foreach($associations as $radio => $count) {
|
||||
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/xirrus_users-$radio.rrd";
|
||||
if (!is_file($rrd_filename)) {
|
||||
rrdtool_create($rrd_filename, " --step 300 DS:stations:GAUGE:600:0:3200".$config['rrd_rra']);
|
||||
}
|
||||
rrdtool_update($rrd_filename, array('stations'=>$count));
|
||||
}
|
||||
// cleanup
|
||||
unset($assocations); unset($rrd_filename);
|
||||
|
||||
$graphs['xirrus_rssi'] = TRUE;
|
||||
?>
|
||||
$graphs['xirrus_dataRates'] = TRUE;
|
||||
$graphs['xirrus_noiseFloor'] = TRUE;
|
||||
$graphs['xirrus_stations'] = TRUE;
|
||||
|
Reference in New Issue
Block a user