Hi,
Ok so far i’ve found that LibreNMS support Cisco WLC’s, but the newly introduced Catalyst 9800 Wireless Controllers not. The older Wireless Controllers (such like the 5500 series) were running the AireOS (from the Airespace acquisition almost 15 (!!) years ago.
(source: Introducing the Cisco Catalyst 9800 Wireless Controllers - Wifi Reference)
So the Catalyst 9800 Wireless Controllers are based on IOS-XE. The new Catalysty 9800 code has no relation anymore with Airespace; although i’ve found out it not entirely supports it, some parts of the AIRESPACE-WIRELESS-MIB still work on the CL9800.
So in a former topic i suggested to start working on a new device model; I started with reading Intro - LibreNMS Docs
I pieced this YAML file after reading it LibreNMS Support New OS doc and some comparing with the ciscowlc.yaml file:
os: IOSXE
text: 'Cisco WLC 9800'
type: wireless
icon: cisco
over:
- { graph: device_bits, text: 'Device Traffic' }
- { graph: device_processor, text: 'CPU Usage' }
- { graph: device_mempool, text: 'Memory Usage' }
- { graph: device_wireless_ap-count, text: 'Connected APs' }
- { graph: device_wireless_clients, text: 'Number of Clients' }
mib_dir: cisco
discovery:
- sysObjectID:
- .1.3.6.1.4.1.9.1.2391.
- sysDescr:
- 'C9800-CL'
for OS
: i picked the OS running on it; is this correct what i’ve done ?
for text
: similar like above
for type
and icon
: looks obvious to me
for over
: i’ve copied the parts here from the ciscowlc.yaml file; i’m not sure if this is ok and what i should do next with it
for mib_dir
: clear to me
for discovery
: i doublec checked with a mibbrowser tool if the sysObjectID is correct; and it is
also i noticed the ciscowlc.yaml file utilizes only the sysDescr
; so I thought; lets put in 'C9800-CL'
according to the LibreNMS docs (Use this in addition to sysObjectID if required. Check that the sysDescr contains one of the strings under this item)
So then i looked at the ciscowlc.php under /opt/librenms/LibreNMS/OS
For the convience; i copied the lines 42 to 64:
public function discoverWirelessClients()
{
$ssids = $this->getCacheByIndex(‘bsnDot11EssSsid’, ‘AIRESPACE-WIRELESS-MIB’);
$counts = $this->getCacheByIndex(‘bsnDot11EssNumberOfMobileStations’, ‘AIRESPACE-WIRELESS-MIB’);$sensors = []; $total_oids = []; $total = 0; foreach ($counts as $index => $count) { $oid = '.1.3.6.1.4.1.14179.2.1.1.1.38.' . $index; $total_oids[] = $oid; $total += $count; $sensors[] = new WirelessSensor( 'clients', $this->getDeviceId(), $oid, 'ciscowlc-ssid', $index, 'SSID: ' . $ssids[$index], $count ); }
When i look at line 42 and check the bsnDot11EssSsid in the AIRESPACE-WIRELESS-MIB; it shows 0 when i do a SNMP Get on it; it seems that the new C9800 does not populate this.
Also the SSID’s names are not populated when polled with AIRESPACE-WIRELESS-MIB.
.
.
.
But when i look at the bsnMobileStationTable; i see that it is populated with a client that is really connected. (due to the Christmas Holiday; nobody is in the office; somebody left his device in the building connected to WiFI )
Also other parts of the AIRESPACE-WIRELESS-MIB are still working, for example the AP table
So i then looked that the ZiP file i pulled from cisco support download and looked at various MIB files, and found out that the CISCO-LWAPP-WLAN-MIB has a SNMP OID that shows the SSID names with a index:
So piecing al this together; what should i do to get the client count and SSID discovery working again for the new C9800 wireless controllers?
Thank you again for reading and replying.
Kinds regards