Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ruckus Wireless updates (ZD/SZ/Unleashed/Hotzone) #9727

Merged
merged 29 commits into from Feb 16, 2019
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
2497fc4
Fixes for SZ detection
djamp42 Jan 17, 2019
26bd825
Ruckuswireless devices
djamp42 Jan 24, 2019
540f616
remove registered mibs
djamp42 Jan 24, 2019
84e747a
Code Climate Fixes
djamp42 Jan 24, 2019
1566656
updated test data for zd1100 & zd1200
djamp42 Jan 24, 2019
87d8826
Updated database test data
djamp42 Jan 29, 2019
7d4aba0
trying to fix smartzone test data
djamp42 Jan 30, 2019
131de10
updating zd test data
djamp42 Jan 30, 2019
72e2a3d
more code climate fixes
djamp42 Jan 30, 2019
854373d
Update ruckuswireless-unleashed.yaml
murrant Jan 31, 2019
c4e6202
hide total clients if 1 ssid
djamp42 Feb 1, 2019
b207885
Merge branch 'ruckuswireless-rework' of https://github.com/djamp42/li…
djamp42 Feb 1, 2019
b5138a1
fixing smartzone ap status
djamp42 Feb 4, 2019
3c39567
smartzone ap count fixes
djamp42 Feb 4, 2019
56827b5
fixes because of git
djamp42 Feb 4, 2019
f545d44
fix zd ap counts
djamp42 Feb 4, 2019
0fef065
Update ruckuswireless-sz.json
murrant Feb 11, 2019
1399aa6
Update ZD1200 test Data
djamp42 Feb 12, 2019
4fe54e1
Update ruckuswireless-sz.snmprec
djamp42 Feb 12, 2019
0a03594
Update Database test data
djamp42 Feb 12, 2019
f420992
Update zd1200 database data
djamp42 Feb 12, 2019
bac9a47
Update ruckuswireless_zd1100.snmprec
djamp42 Feb 13, 2019
d95dce4
Update ruckuswireless_zd1100.json
djamp42 Feb 13, 2019
14a1a85
Update ruckuswireless_zd1100.json
djamp42 Feb 13, 2019
c97f69c
Update ruckuswireless_zd1100.json
djamp42 Feb 13, 2019
ffff66b
Code Climate Fixes
djamp42 Feb 13, 2019
8ea21ba
Code Climate Fixes
djamp42 Feb 13, 2019
1cf6f2f
Update Ruckuswireless.php
djamp42 Feb 13, 2019
a653082
Code Format Fixes
djamp42 Feb 13, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
39 changes: 34 additions & 5 deletions LibreNMS/OS/Ruckuswireless.php
Expand Up @@ -10,16 +10,45 @@ class Ruckuswireless extends OS implements
WirelessClientsDiscovery,
WirelessApCountDiscovery
{
public function discoverWirelessClients()
public function discoverWirelessClients()
{

// Find Per SSID Client Count
$sensors = array();
$ssids = $this->getCacheByIndex('ruckusZDWLANSSID', 'RUCKUS-ZD-WLAN-MIB');
$counts = $this->getCacheByIndex('ruckusZDWLANNumSta', 'RUCKUS-ZD-WLAN-MIB');

$total_oids = array();
$total = 0;
foreach ($counts as $index => $count) {
$oid = '.1.3.6.1.4.1.25053.1.2.2.1.1.1.1.1.12.' . $index;
$total_oids[] = $oid;
$total += $count;

$sensors[] = new WirelessSensor(
'clients',
$this->getDeviceId(),
$oid,
'ruckuswireless',
$index,
'SSID: ' . $ssids[$index],
$count
);
}

// Find Total Client Count

$oid = '.1.3.6.1.4.1.25053.1.2.1.1.1.15.2.0'; //RUCKUS-ZD-SYSTEM-MIB::ruckusZDSystemStatsNumSta.0
return array(
new WirelessSensor('clients', $this->getDeviceId(), $oid, 'ruckuswireless', 1, 'Clients: Total')
);
array_push($sensors, new WirelessSensor('clients', $this->getDeviceId(), $oid, 'ruckuswireless', ($index + 1), 'System Total:'));
return $sensors;
}


// Find Total AP Count

public function discoverWirelessApCount()
{
$oid = '.1.3.6.1.4.1.25053.1.2.1.1.1.15.1.0'; //RUCKUS-ZD-SYSTEM-MIB:: ruckusZDSystemStatsNumAP.0
$oid = '.1.3.6.1.4.1.25053.1.2.1.1.1.15.1.0'; //RUCKUS-ZD-SYSTEM-MIB::ruckusZDSystemStatsNumAP.0
return array(
new WirelessSensor('ap-count', $this->getDeviceId(), $oid, 'ruckuswireless', 1, 'Connected APs')
);
Expand Down
53 changes: 53 additions & 0 deletions LibreNMS/OS/RuckuswirelessHotzone.php
@@ -0,0 +1,53 @@
<?php
namespace LibreNMS\OS;

use LibreNMS\Device\WirelessSensor;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessClientsDiscovery;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessUtilizationDiscovery;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessNoiseFloorDiscovery;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessErrorsDiscovery;
use LibreNMS\OS;

class RuckuswirelessHotzone extends OS implements
WirelessClientsDiscovery,
WirelessUtilizationDiscovery,
WirelessNoiseFloorDiscovery,
WirelessErrorsDiscovery
{
public function discoverWirelessClients()
{
$clients_2 = '.1.3.6.1.4.1.25053.1.1.12.1.1.1.3.1.2.1'; //RUCKUS-ZD-SYSTEM-MIB::ruckusZDSystemStatsNumSta.0
$clients_5 = '.1.3.6.1.4.1.25053.1.1.12.1.1.1.3.1.2.2'; //RUCKUS-ZD-SYSTEM-MIB::ruckusZDSystemStatsNumSta.0
return array(
new WirelessSensor('clients', $this->getDeviceId(), $clients_2, 'ruckuswireless-hotzone', 1, 'Clients: 2.4G'),
new WirelessSensor('clients', $this->getDeviceId(), $clients_5, 'ruckuswireless-hotzone', 2, 'Clients: 5G'),
);
}
public function discoverWirelessUtilization()
{
$utilization_2 = '.1.3.6.1.4.1.25053.1.1.12.1.1.1.3.1.50.1'; //RUCKUS-ZD-SYSTEM-MIB::ruckusZDSystemStatsNumSta.0
$utilization_5 = '.1.3.6.1.4.1.25053.1.1.12.1.1.1.3.1.50.2'; //RUCKUS-ZD-SYSTEM-MIB::ruckusZDSystemStatsNumSta.0
return array(
new WirelessSensor('utilization', $this->getDeviceId(), $utilization_2, 'ruckuswireless-hotzone', 1, 'Utilization: 2.4G'),
new WirelessSensor('utilization', $this->getDeviceId(), $utelization_5, 'ruckuswireless-hotzone', 2, 'Utilization: 5G'),
);
}
public function discoverWirelessNoiseFloor()
{
$noise_floor_2 = '.1.3.6.1.4.1.25053.1.1.12.1.1.1.2.1.8.1'; //RUCKUS-ZD-SYSTEM-MIB::ruckusZDSystemStatsNumSta.0
$noise_floor_5 = '.1.3.6.1.4.1.25053.1.1.12.1.1.1.2.1.8.2'; //RUCKUS-ZD-SYSTEM-MIB::ruckusZDSystemStatsNumSta.0
return array(
new WirelessSensor('noise-floor', $this->getDeviceId(), $noise_floor_2, 'ruckuswireless-hotzone', 1, 'Noise-floor: 2.4G'),
new WirelessSensor('noise-floor', $this->getDeviceId(), $noise_floor_5, 'ruckuswireless-hotzone', 2, 'Noise-floor: 5G'),
);
}
public function discoverWirelessErrors()
{
$errors_2 = '.1.3.6.1.4.1.25053.1.1.12.1.1.1.3.1.21.1'; //RUCKUS-ZD-SYSTEM-MIB::ruckusZDSystemStatsNumSta.0
$errors_5 = '.1.3.6.1.4.1.25053.1.1.12.1.1.1.3.1.21.2'; //RUCKUS-ZD-SYSTEM-MIB::ruckusZDSystemStatsNumSta.0
return array(
new WirelessSensor('errors', $this->getDeviceId(), $errors_2, 'ruckuswireless-hotzone', 1, 'Received errors: 2.4G'),
new WirelessSensor('errors', $this->getDeviceId(), $errors_5, 'ruckuswireless-hotzone', 2, 'Received errors: 5G'),
);
}
}
55 changes: 55 additions & 0 deletions LibreNMS/OS/RuckuswirelessSz.php
@@ -0,0 +1,55 @@
<?php
namespace LibreNMS\OS;

use LibreNMS\Device\WirelessSensor;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessClientsDiscovery;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessApCountDiscovery;
use LibreNMS\OS;

class RuckuswirelessSz extends OS implements
WirelessClientsDiscovery,
WirelessApCountDiscovery
{
public function discoverWirelessClients()
{

// Find Per SSID Client Count
$sensors = array();
$ssids = $this->getCacheByIndex('ruckusSZWLANSSID', 'RUCKUS-SZ-WLAN-MIB');
$counts = $this->getCacheByIndex('ruckusSZWLANNumSta', 'RUCKUS-SZ-WLAN-MIB');

$total_oids = array();
$total = 0;
foreach ($counts as $index => $count) {
$oid = '.1.3.6.1.4.1.25053.1.4.2.1.1.1.2.1.12.' . $index;
$total_oids[] = $oid;
$total += $count;

$sensors[] = new WirelessSensor(
'clients',
$this->getDeviceId(),
$oid,
'ruckuswireless-sz',
$index,
'SSID: ' . $ssids[$index],
$count
);
}

// Find Total Client Count

$oid = '.1.3.6.1.4.1.25053.1.4.1.1.1.15.2.0'; //RUCKUS-SZ-SYSTEM-MIB::ruckusSZSystemStatsNumSta.0
array_push($sensors, new WirelessSensor('clients', $this->getDeviceId(), $oid, 'ruckuswireless-sz', ($index + 1), 'System Total:'));
return $sensors;
}

// Find Total AP Count

public function discoverWirelessApCount()
{
$oid = '.1.3.6.1.4.1.25053.1.4.1.1.1.15.1.0'; //RUCKUS-SZ-SYSTEM-MIB::ruckusSZSystemStatsNumAP.0
return array(
new WirelessSensor('ap-count', $this->getDeviceId(), $oid, 'ruckuswireless-sz', 1, 'Connected APs')
);
}
}
27 changes: 27 additions & 0 deletions LibreNMS/OS/RuckuswirelessUnleashed.php
@@ -0,0 +1,27 @@
<?php
namespace LibreNMS\OS;

use LibreNMS\Device\WirelessSensor;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessClientsDiscovery;
use LibreNMS\Interfaces\Discovery\Sensors\WirelessApCountDiscovery;
use LibreNMS\OS;

class RuckuswirelessUnleashed extends OS implements
WirelessClientsDiscovery,
WirelessApCountDiscovery
{
public function discoverWirelessClients()
{
$oid = '.1.3.6.1.4.1.25053.1.15.1.1.1.15.2.0'; //RUCKUS-UNLEASHED-SYSTEM-MIB::ruckusUnleashedSystemStatsNumSta.0
return array(
new WirelessSensor('clients', $this->getDeviceId(), $oid, 'ruckuswireless-unleashed', 1, 'Clients: Total')
);
}
public function discoverWirelessApCount()
{
$oid = '.1.3.6.1.4.1.25053.1.15.1.1.1.15.1.0'; //RUCKUS-UNLEASHED-SYSTEM-MIB:: ruckusUnleashedSystemStatsNumAP.0
return array(
new WirelessSensor('ap-count', $this->getDeviceId(), $oid, 'ruckuswireless-unleashed', 1, 'Connected APs')
);
}
}
8 changes: 8 additions & 0 deletions includes/definitions/discovery/ruckuswireless-hotzone.yaml
@@ -0,0 +1,8 @@
mib: RUCKUS-SYSTEM-MIB
modules:
processors:
data:
-
oid: ruckusSystemCPUUtil
num_oid: '.1.3.6.1.4.1.25053.1.1.11.1.1.1.1.0'
type: ruckuswireless
8 changes: 8 additions & 0 deletions includes/definitions/discovery/ruckuswireless-unleashed.yaml
@@ -0,0 +1,8 @@
mib: RUCKUS-UNLEASHED-SYSTEM-MIB
modules:
processors:
data:
-
oid: ruckusUnleashedSystemStatsCPUUtil
num_oid: '.1.3.6.1.4.1.25053.1.15.1.1.1.15.13.0'
type: ruckuswireless
2 changes: 1 addition & 1 deletion includes/definitions/discovery/ruckuswireless.yaml
Expand Up @@ -5,4 +5,4 @@ modules:
-
oid: ruckusZDSystemCPUUtil
num_oid: '.1.3.6.1.4.1.25053.1.2.1.1.1.5.58.0'
type: ruckuszd
type: ruckuswireless
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changing this will cause loss of history data.

20 changes: 20 additions & 0 deletions includes/definitions/ruckuswireless-hotzone.yaml
@@ -0,0 +1,20 @@
os: ruckuswireless-hotzone
text: 'Ruckus Wireless HotZone'
type: wireless
icon: ruckus
mib_dir:
- ruckus
over:
- { graph: device_bits, text: Traffic }
- { graph: device_wireless_clients, text: 'Number of Clients' }
register_mibs:
ruckusSZSystemStats: RUCKUS-SZ-SYSTEM-MIB
ruckusSZWLANTable: RUCKUS-SZ-WLAN-MIB
ruckusSZAPTable: RUCKUS-SZ-WLAN-MIB
discovery:
- sysObjectID:
- .1.3.6.1.4.1.25053.3.1.4
poller_modules:
wireless: true
discovery_modules:
wireless: true
27 changes: 27 additions & 0 deletions includes/definitions/ruckuswireless-sz.yaml
@@ -0,0 +1,27 @@
os: ruckuswireless-sz
text: 'Ruckus Wireless SmartZone'
type: wireless
icon: ruckus
mib_dir:
- ruckus
over:
- { graph: device_bits, text: Traffic }
- { graph: device_wireless_ap-count, text: 'Connected APs' }
- { graph: device_wireless_clients, text: 'Number of Clients' }
register_mibs:
ruckusSZSystemStats: RUCKUS-SZ-SYSTEM-MIB
ruckusSZWLANTable: RUCKUS-SZ-WLAN-MIB
ruckusSZAPTable: RUCKUS-SZ-WLAN-MIB
discovery:
- sysObjectID:
- .1.3.6.1.4.1.25053.3.1.11.1
ignore_mount_string:
- ruckuswireles
- etc
- var
- java
- cassandra
poller_modules:
wireless: true
discovery_modules:
wireless: true
26 changes: 26 additions & 0 deletions includes/definitions/ruckuswireless-unleashed.yaml
@@ -0,0 +1,26 @@
os: ruckuswireless-unleashed
text: 'Ruckus Wireless Unleashed'
type: wireless
icon: ruckus
mib_dir:
- ruckus
over:
- { graph: device_bits, text: Traffic }
- { graph: device_wireless_ap-count, text: 'Connected APs' }
- { graph: device_wireless_clients, text: 'Number of Clients' }
register_mibs:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You can remove the register_mibs on the new OS. It is only on the existing one for legacy reasons.

ruckusZDSystemStats: RUCKUS-ZD-SYSTEM-MIB
ruckusUnleashedSystemStats: RUCKUS-UNLEASHED-SYSTEM-MIB
ruckusUnleashedWLANTable: RUCKUS-UNLEASHED-WLAN-MIB
ruckusUnleashedWLANAPTable: RUCKUS-UNLEASHED-WLAN-MIB
discovery:
-
sysObjectID: .1.3.6.1.4.1.25053.3.1.5.15
snmpget_except:
oid: 'RUCKUS-ZD-SYSTEM-MIB::ruckusZDSystemModel.0'
op: contains
value: [ ZD, zd ]
poller_modules:
wireless: true
discovery_modules:
wireless: true
13 changes: 10 additions & 3 deletions includes/definitions/ruckuswireless.yaml
@@ -1,5 +1,5 @@
os: ruckuswireless
text: 'Ruckus Wireless'
text: 'Ruckus Wireless ZoneDirector'
type: wireless
icon: ruckus
mib_dir:
Expand All @@ -14,5 +14,12 @@ register_mibs:
ruckusZDWLANAPTable: RUCKUS-ZD-WLAN-MIB
ruckusZDWLANAPRadioStatsTable: RUCKUS-ZD-WLAN-MIB
discovery:
- sysObjectID:
- .1.3.6.1.4.1.25053.3.1
- sysObjectID: .1.3.6.1.4.1.25053.3.1.5
snmpget:
oid: '.1.3.6.1.4.1.25053.1.2.1.1.1.1.9.0'
Copy link
Member

@murrant murrant Jan 24, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This snmpget should probably be symmetric with the exclusion above.

op: starts
value: [ ZD, zd ]
poller_modules:
wireless: true
discovery_modules:
wireless: true
11 changes: 11 additions & 0 deletions includes/discovery/mempools/ruckuswireless-hotzone.inc.php
@@ -0,0 +1,11 @@
<?php

if ($device['os'] === 'ruckuswireless-hotzone') {
echo 'Ruckus Hotzone: ';

$usage = snmp_get($device, '.1.3.6.1.4.1.25053.1.1.11.1.1.1.2.0', '-OvQ');

if (is_numeric($usage)) {
discover_mempool($valid_mempool, $device, 0, 'ruckuswireless-hotzone', 'System Memory', '100', null, null);
}
}
11 changes: 11 additions & 0 deletions includes/discovery/mempools/ruckuswireless-unleashed.inc.php
@@ -0,0 +1,11 @@
<?php

if ($device['os'] === 'ruckuswireless-unleashed') {
echo 'Ruckus Unleashed: ';

$usage = snmp_get($device, '.1.3.6.1.4.1.25053.1.15.1.1.1.15.14.0', '-OvQ');

if (is_numeric($usage)) {
discover_mempool($valid_mempool, $device, 0, 'ruckuswireless-unleashed', 'System Memory', '100', null, null);
}
}
11 changes: 11 additions & 0 deletions includes/discovery/mempools/ruckuswireless.inc.php
@@ -0,0 +1,11 @@
<?php

if ($device['os'] === 'ruckuswireless') {
echo 'Ruckus Zone Director: ';

$usage = snmp_get($device, '.1.3.6.1.4.1.25053.1.2.1.1.1.5.59.0', '-OvQ');

if (is_numeric($usage)) {
discover_mempool($valid_mempool, $device, '0', 'ruckuswireless', 'System Memory', '100', null, null);
}
}
11 changes: 11 additions & 0 deletions includes/polling/mempools/ruckuswireless-hotzone.inc.php
@@ -0,0 +1,11 @@
<?php

echo 'Ruckus Wireless: ';
$perc = snmp_get($device, ".1.3.6.1.4.1.25053.1.1.11.1.1.1.2.0", '-OvQ');

if (is_numeric($perc)) {
$mempool['perc'] = $perc;
$mempool['used'] = $perc;
$mempool['total'] = 100;
$mempool['free'] = 100 - $perc;
}
11 changes: 11 additions & 0 deletions includes/polling/mempools/ruckuswireless-unleashed.inc.php
@@ -0,0 +1,11 @@
<?php

echo 'Ruckus Wireless: ';
$perc = snmp_get($device, ".1.3.6.1.4.1.25053.1.15.1.1.1.15.14.0", '-OvQ');

if (is_numeric($perc)) {
$mempool['perc'] = $perc;
$mempool['used'] = $perc;
$mempool['total'] = 100;
$mempool['free'] = 100 - $perc;
}
12 changes: 12 additions & 0 deletions includes/polling/mempools/ruckuswireless.inc.php
@@ -0,0 +1,12 @@
<?php

echo 'Ruckus Wireless';

$perc = snmp_get($device, "ruckusZDSystemMemoryUtil.0", '-OvQ', 'RUCKUS-ZD-SYSTEM-MIB');

if (is_numeric($perc)) {
$mempool['perc'] = $perc;
$mempool['used'] = $perc;
$mempool['total'] = 100;
$mempool['free'] = 100 - $perc;
}