Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

check_unifi.php

Rating
8 votes
Favoured:
3
Current Version
1.20210601
Last Release Date
2021-06-01
Compatible With
  • Nagios 3.x
  • Nagios 4.x
License
MIT
Hits
4704
Network Monitoring Software - Download Nagios XI
Log Management Software - Nagios Log Server - Download
Netflow Analysis Software - Nagios Network Analyzer - Download
Nagios Plugin to check a Unifi Controller (Accesspoints and Switch).
You need to install php-curl

Thanks to https://github.com/Art-of-WiFi
API Version 1.1.70

Note

Support for UniFi OS-based controllers (UniFi Dream Machine Pro or Cloud Key Gen2/Cloud Key Gen2 Plus with firmware version 2.0.24 or higher) has been added as of API version 1.1.47. The class automatically detects UniFi OS devices and adjusts URLs and several functions/methods accordingly. If your own code applies strict validation of the URL that is passed to the constructor, please adapt your logic to allow URLs without a port suffix when dealing with a UniFi OS-based controller.
In case of my script use -P 443 and -s

NEW
Version 1.20210601
add clients_ssid (count all clients for every ssid)
add clients_count_ssid clients_count_ssid_guest


/usr/bin/php ./check_unifi.php -H 192.168.2.213 -P 8443 -u nagios -p nagios -s -m uplink -a AP02 -w 200 -c 100
OK - Uplink: AP01 - signal=-67% tx_rate=234 Mbps rx_rate=526.5 Mbps | tx_rate=234;rx_rate=526.5;signal=67

/usr/bin/php ./check_unifi.php -H 192.168.2.213 -P 8443 -u nagios -p nagios -s -m cpu AP02 -w 80 -c 90
OK - 10.4% (load average: 0.01, 0.05, 0.05) | load=0.01;;;; load5=0.05;;;; load15=0.05;;;;

/usr/bin/php ./check_unifi.php -H 192.168.2.213 -P 8443 -u nagios -p nagios -s -m ap -w 0 -c 1
OK - AP [default]: 3 (Online: 3, Offline: 0) | AP=3 Online=3 Offline=0;0;1;;

/usr/bin/php ./check_unifi.php -H 192.168.2.213 -P 8443 -u nagios -p nagios -s -m switch -c 0
OK - Switch [default]: 1 (Online: 1 / Offline: 0) | Switch=1 Online=1 Offline=0;0;0;;

/usr/bin/php ./check_unifi.php -H 192.168.2.213 -P 8443 -u nagios -p nagios -s -m uplink -a AP01
OK - Uplink SWITCH01 (wire) - speed=1000 Mbps | speed=1000

/usr/bin/php ./check_unifi.php -C -m mem -a AP03 -w 80 -c 90
OK - 54.09 MB | Total=122.66MB;98.13;110.39;0;122.66 Used=54.09MB;;;; Free=40.37MB;;;; Caches=28.20MB;;;;

/usr/bin/php ./check_unifi.php -C -m mem% -a AP03 -w 80 -c 90
OK - 44.10% (54.09 MB) | Total=100%;80;90;0;100 Used=44.10%;;;; Free=32.91%;;;; Caches=22.99%;;;;

/usr/bin/php ./check_unifi.php -C -a AP01 -m clients_name_guest
OK - Clients [default]: 5/User:5/Guest:0 (2GHz: 2/U:2/G:0, 5GHz: 3/U:3/G:0) MACBOOK(5) VIRTUAL-WLAN(5) CAM01(2) TABLETT04(5) PRS01(2) | Clients=5;;;; 2GHz=2 5GHz=3

/usr/bin/php ./check_unifi.php -C -a AP01 -m channels
OK - 2GHz: auto (11(13,-1)) HT40 - 5GHz: auto (58(64,-1)) VHT80| 2GHz=11 5GHz=58

/usr/bin/php ./check_unifi.php -C -a AP01 -m transfer
OK - RX: 5,09 Mbit - TX: 166,84 Kbit | RX=5215,38Kbit;;;; TX=166,84Kbit;;;;

/usr/bin/php ./check_unifi.php -C -a AP01 -m experience -w 30 -c 20
OK - WIFI Experience: 99% | Experience=99%;30;20;;

/usr/bin/php ./check_unifi.php -C -a JHSAP01 -m utilisation -w 75,75 -c 85,85
OK - 2GHz Utilized: 11% (RX Frames: 9%, TX Frames: 1%, Interference: 1%) - 5GHz Utilized: 8% (RX Frames: 6%, TX Frames: 2%, Interference: 0%)| 2GHz=11;75;85;; RX=9;;;; TX=1;;;; Interference=1 5GHz=8;75;85;; RX=6;;;; TX=2;;;; Interference=0

/usr/bin/php ./check_unifi.php -C -a AP01 -m linux_cpu -w 75 -c 85
OK - 10.2% | cpu=10.2%;75;85;0;100

/usr/bin/php ./check_unifi.php -C -a AP01 -m linux_load -w 0.5,0.5,0.5 -c 1,1,1
OK - load average: 0.22, 0.08, 0.07 | load=0.22;0.5;1;; load5=0.08;0.5;1;; load15=0.07;0.5;1;;

/usr/bin/php ./check_unifi.php -C -m update -a AP02 -w 1,1,1 -c 1,5,10
CRITICAL - firmware upgradable from version 4.3.28.11361 to 5.43.30.12622

/usr/bin/php ./check_unifi.php -C -m site
---------+------------------------------------
Site ID | Site Name
---------+------------------------------------
default | unifi.jhoerter.com
a1uobpaz | Test

/usr/bin/php ./check_unifi.php -H 192.168.2.213 -P 8443 -s -u nagios -p nagios -S default -m uptime -a AP01
OK - UniFi AP-AC-Lite [unifi.jhoerter.com ] - 0 days, 3 hours, 44 mins.| Uptime=13445

/usr/bin/php ./check_unifi.php -C -m client_transfer+ -a PC05 -r 0
OK - RX: 2.743 KB/s - TX: 16.066 KB/s (AP: AP03) | RX=2.743KByte;;;; TX=16.066KByte;;;;

/usr/bin/php ./check_unifi.php -C -m client_uplink -a MACBOOK
OK - Uplink: JHSAP01 (JH/ 5GHz) - signal: -78% TX: 650 Mbps RX: 260 Mbps | TX=650;0;0;; RX=260;0;0;; Signal=78

/usr/bin/php ./check_unifi.php -C -m client_uptime -a PHONE04
OK - 0 days, 0 hours, 18 mins.| Uptime=1124

/usr/bin/php ./check_unifi.php -C -m clients_count_guest
OK - Clients [default]: 13/ User:11/ Guest:2 (2GHz: 8/U:8/G:0, 5GHz: 5/U:3/G:2) | Clients=13;;;; 2GHz=8;;;; 5GHz=5;;;; User=11;;;; 2GhzU=8;;;; 5GhzU=3;;;; Guest=0;;;; 2GhzG=0;;;; 5GhzG=2;;;;

/usr/bin/php ./check_unifi.php -C -m clients_all
OK - Clients [default]: 32 (Wired: 21, Wifi: 11) | Clients=32;;;; Wired=21;;;; Wifi=11;;;;

/usr/bin/php./check_unifi.php -C -m ap_unifi_name -w 0 -c 1
WARNING - AP: 4 (Online: 3, Offline: 1 (AP03-OLD)) | AP=4 Online=3 Offline=1;0;1;;

./check_unifi.php -C -m clients_ssid
OK - SSID Clients [default]: 13 (WLAN: 12, WLANGUEST: disabled, WLANCAM: 1) | Total=13 WLAN=12 WLANUEST=0 WLANCAM=1

./check_unifi.php -C -m clients_count_ssid -a WLAN
OK - SSID WLAN Client: 12 (2GHz: 7, 5GHz: 5) | Clients=12;;;; 2GHz=7 5GHz=5
Reviews (5)
How to get it working with UniFi-CloudKey-Gen2-Plus? I can see from the review on February 5, 2021, that the user darco was able to get it working with Gen2 CloudKey. But unfortunately darco didn't specify, how he got it working...

What I do know is that Gen2 is not using port 8443 anymore, but access is done straight to HTTPS/443 port.

And I'm able to query the device info from the browser from:
https://[local-IP-of-Gen2-CloudKey]/proxy/network/api/s/default/stat/device
Owner's reply

Please download the new Version 1.20210507
If it function please give me a feedback to info@jhoerter.com, thanks

bySysAdmRBE, April 22, 2021
Is it possible to get the total number of connected wifi clients with a nagios/centreon compatible check? The console check works fine but it would be great to get a counter inside the monitoring system.
Owner's reply

it's implementated in the new version 1.20210427

why "OK" the "Current Status:" on the nagios webgui?

>>>>
Current Status: OK (for 0d 3h 58m 35s)
Status Information: WARNING - Online: 1 - Offline: 1
Performance Data: AP=2 Online=1 Offline=1;0;1;;

the query is correct:

/usr/bin/php ./check_unifi.php -H 192.168.25.15 -u admin -p ********- -P 8443 -s -m ap -w 0 -c 1

WARNING - Online: 1 - Offline: 1 | AP=2 Online=1 Offline=1;0;1;;
Owner's reply

The error has been corrected in the current version 1.20210308.

bydarco, February 5, 2021
1 of 1 people found this review helpful
Thank you very much!!
I've just tested with UniFi-CloudKey-Gen2-Plus
byjohnripper, December 24, 2020
1 of 2 people found this review helpful
Downloaded the files and adjusted the clients.php
But then the skript does nothing. I can even use the example:
# usr/bin/php usr/local/nagios/libexec/check_unifi.php -H 192.168.2.1 -u USER -p PASS -P 8443 -s -m uplink -a AP01 -w 200 -c 100
And get nothing.
Any ideas?
(sorry, rating required)
Owner's reply

Unfortunately I don't know which version is in use. A config.php is no longer required.