mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
newdevice: Added connected AP count for Cisco WLCs (#6572)
* newdevice: Add connected AP count for Cisco WLCs Adds ap-count wireless sensor type fixes: #4295 * better detection Update the overview graph to the new one
This commit is contained in:
committed by
Neil Lathwood
parent
1187d92351
commit
5ca07e11aa
@@ -127,6 +127,12 @@ class WirelessSensor extends Sensor
|
|||||||
// Add new types here
|
// Add new types here
|
||||||
// FIXME I'm really bad with icons, someone please help!
|
// FIXME I'm really bad with icons, someone please help!
|
||||||
static $types = array(
|
static $types = array(
|
||||||
|
'ap-count' => array(
|
||||||
|
'short' => 'APs',
|
||||||
|
'long' => 'AP Count',
|
||||||
|
'unit' => '',
|
||||||
|
'icon' => 'wifi',
|
||||||
|
),
|
||||||
'clients' => array(
|
'clients' => array(
|
||||||
'short' => 'Clients',
|
'short' => 'Clients',
|
||||||
'long' => 'Client Count',
|
'long' => 'Client Count',
|
||||||
|
@@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* WirelessApsDiscovery.php
|
||||||
|
*
|
||||||
|
* Discover Wireless AP Count Sensors
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* @package LibreNMS
|
||||||
|
* @link http://librenms.org
|
||||||
|
* @copyright 2017 Tony Murray
|
||||||
|
* @author Tony Murray <murraytony@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace LibreNMS\Interfaces\Discovery\Sensors;
|
||||||
|
|
||||||
|
interface WirelessApCountDiscovery
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Discover wireless capacity. This is a percent. Type is capacity.
|
||||||
|
* Returns an array of LibreNMS\Device\Sensor objects that have been discovered
|
||||||
|
*
|
||||||
|
* @return array Sensors
|
||||||
|
*/
|
||||||
|
public function discoverWirelessApCount();
|
||||||
|
}
|
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* WirelessApsPolling.php
|
||||||
|
*
|
||||||
|
*Custom polling interface for wireless AP count
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* @package LibreNMS
|
||||||
|
* @link http://librenms.org
|
||||||
|
* @copyright 2017 Tony Murray
|
||||||
|
* @author Tony Murray <murraytony@gmail.com>
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace LibreNMS\Interfaces\Polling\Sensors;
|
||||||
|
|
||||||
|
interface WirelessApCountPolling
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Poll wireless AP count
|
||||||
|
* The returned array should be sensor_id => value pairs
|
||||||
|
*
|
||||||
|
* @param array $sensors Array of sensors needed to be polled
|
||||||
|
* @return array of polled data
|
||||||
|
*/
|
||||||
|
public function pollWirelessApCount(array $sensors);
|
||||||
|
}
|
@@ -26,10 +26,11 @@
|
|||||||
namespace LibreNMS\OS;
|
namespace LibreNMS\OS;
|
||||||
|
|
||||||
use LibreNMS\Device\WirelessSensor;
|
use LibreNMS\Device\WirelessSensor;
|
||||||
|
use LibreNMS\Interfaces\Discovery\Sensors\WirelessApCountDiscovery;
|
||||||
use LibreNMS\Interfaces\Discovery\Sensors\WirelessClientsDiscovery;
|
use LibreNMS\Interfaces\Discovery\Sensors\WirelessClientsDiscovery;
|
||||||
use LibreNMS\OS;
|
use LibreNMS\OS;
|
||||||
|
|
||||||
class Ciscowlc extends OS implements WirelessClientsDiscovery
|
class Ciscowlc extends OS implements WirelessClientsDiscovery, WirelessApCountDiscovery
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Discover wireless client counts. Type is clients.
|
* Discover wireless client counts. Type is clients.
|
||||||
@@ -75,4 +76,41 @@ class Ciscowlc extends OS implements WirelessClientsDiscovery
|
|||||||
|
|
||||||
return $sensors;
|
return $sensors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Discover wireless capacity. This is a percent. Type is capacity.
|
||||||
|
* Returns an array of LibreNMS\Device\Sensor objects that have been discovered
|
||||||
|
*
|
||||||
|
* @return array Sensors
|
||||||
|
*/
|
||||||
|
public function discoverWirelessApCount()
|
||||||
|
{
|
||||||
|
$oids = array(
|
||||||
|
'CISCO-LWAPP-SYS-MIB::clsSysApConnectCount.0',
|
||||||
|
'AIRESPACE-SWITCHING-MIB::agentInventoryMaxNumberOfAPsSupported.0',
|
||||||
|
);
|
||||||
|
$data = snmp_get_multi($this->getDevice(), $oids);
|
||||||
|
|
||||||
|
if (isset($data[0]['clsSysApConnectCount'])) {
|
||||||
|
return array(
|
||||||
|
new WirelessSensor(
|
||||||
|
'ap-count',
|
||||||
|
$this->getDeviceId(),
|
||||||
|
'.1.3.6.1.4.1.9.9.618.1.8.4.0',
|
||||||
|
'ciscowlc',
|
||||||
|
0,
|
||||||
|
'Connected APs',
|
||||||
|
$data[0]['clsSysApConnectCount'],
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
'sum',
|
||||||
|
null,
|
||||||
|
$data[0]['agentInventoryMaxNumberOfAPsSupported'],
|
||||||
|
0
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
9
html/includes/graphs/device/wireless_ap-count.inc.php
Normal file
9
html/includes/graphs/device/wireless_ap-count.inc.php
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$scale_min = '0';
|
||||||
|
|
||||||
|
$class = 'ap-count';
|
||||||
|
$unit = '';
|
||||||
|
$unit_long = 'APs';
|
||||||
|
|
||||||
|
require 'includes/graphs/device/wireless-sensor.inc.php';
|
8
html/includes/graphs/wireless/ap-count.inc.php
Normal file
8
html/includes/graphs/wireless/ap-count.inc.php
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
$scale_min = '0';
|
||||||
|
|
||||||
|
$unit_long = 'APs';
|
||||||
|
$unit = '';
|
||||||
|
|
||||||
|
include 'wireless-sensor.inc.php';
|
@@ -6,7 +6,7 @@ over:
|
|||||||
- { graph: device_bits, text: 'Device Traffic' }
|
- { graph: device_bits, text: 'Device Traffic' }
|
||||||
- { graph: device_processor, text: 'CPU Usage' }
|
- { graph: device_processor, text: 'CPU Usage' }
|
||||||
- { graph: device_mempool, text: 'Memory Usage' }
|
- { graph: device_mempool, text: 'Memory Usage' }
|
||||||
- { graph: device_ciscowlc_numaps, text: 'Number of APs' }
|
- { graph: device_wireless_ap-count, text: 'Connected APs' }
|
||||||
- { graph: device_wireless_clients, text: 'Number of Clients' }
|
- { graph: device_wireless_clients, text: 'Number of Clients' }
|
||||||
icon: cisco
|
icon: cisco
|
||||||
poller_modules:
|
poller_modules:
|
||||||
|
Reference in New Issue
Block a user