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 .= ' -E ';
|
||||||
$rrd_options .= " COMMENT:'Signal RSSI Cur Min Max\\n'";
|
$rrd_options .= " COMMENT:'Signal RSSI Cur Min Max\\n'";
|
||||||
$radioId=1;
|
$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];
|
$color=$pallette[$radioId];
|
||||||
|
|
||||||
$descr = "iap$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]['icon'] = 'xirrus';
|
||||||
$config['os'][$os]['over'][0]['graph'] = 'device_bits';
|
$config['os'][$os]['over'][0]['graph'] = 'device_bits';
|
||||||
$config['os'][$os]['over'][0]['text'] = 'Device Traffic';
|
$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'][1]['text'] = 'Wifi Clients';
|
||||||
$config['os'][$os]['over'][2]['graph'] = 'device_xirrus_rssi';
|
$config['os'][$os]['over'][2]['graph'] = 'device_xirrus_rssi';
|
||||||
$config['os'][$os]['over'][2]['text'] = 'Signal 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']['section'] = 'wireless';
|
||||||
$config['graph_types']['device']['xirrus_rssi']['order'] = '0';
|
$config['graph_types']['device']['xirrus_rssi']['order'] = '0';
|
||||||
$config['graph_types']['device']['xirrus_rssi']['descr'] = 'Signal Rssi';
|
$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
|
// Device Types
|
||||||
|
@@ -78,18 +78,6 @@ if ($device['type'] == 'network' || $device['type'] == 'firewall' || $device['ty
|
|||||||
echo (($wificlients1 + 0).' clients on wireless connector, ');
|
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 != '') {
|
if (isset($wificlients1) && $wificlients1 != '') {
|
||||||
$tags = array(
|
$tags = array(
|
||||||
'rrd_def' => 'DS:wificlients:GAUGE:600:-273:1000',
|
'rrd_def' => 'DS:wificlients:GAUGE:600:-273:1000',
|
||||||
|
@@ -2,17 +2,49 @@
|
|||||||
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/xirrus-rssi.rrd";
|
$rrd_filename = $config['rrd_dir'] . "/" . $device['hostname'] . "/xirrus-rssi.rrd";
|
||||||
$radios = snmpwalk_cache_oid($device, 'XIRRUS-MIB::realtimeMonitorIfaceName', array(), 'XIRRUS-MIB');
|
$radios = snmpwalk_cache_oid($device, 'XIRRUS-MIB::realtimeMonitorIfaceName', array(), 'XIRRUS-MIB');
|
||||||
$rssi = snmpwalk_cache_oid($device, 'XIRRUS-MIB::realtimeMonitorAverageRSSI', 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) {
|
foreach($radios as $idx => $radio) {
|
||||||
|
|
||||||
$radioName = $radio['realtimeMonitorIfaceName'];
|
$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)) {
|
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
|
// cleanup
|
||||||
unset($rrd_filename); unset($radios); unset($rssi); unset($radioName);
|
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_rssi'] = TRUE;
|
||||||
?>
|
$graphs['xirrus_dataRates'] = TRUE;
|
||||||
|
$graphs['xirrus_noiseFloor'] = TRUE;
|
||||||
|
$graphs['xirrus_stations'] = TRUE;
|
||||||
|
Reference in New Issue
Block a user