1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
### This is a [Munin](http://munin-monitoring.org/) plugin to monitor your [Ubiquiti Unifi](https://www.ubnt.com/products/#unifi) wireless AP status.
* It queries the APs via SNMPv2 and converts result for munin.
* Requires:
* Enabled SNMP on Access Points.
* Network access from munin-node server to AP's network.
* PHP 7.0 or above
* PHP SNMP module
* PHP JSON module
* Debian(9+): `sudo apt-get install php php-cgi php-snmp php-json`
* It can use php child-processes to get responses faster.
* If snmp oids are different on your product, you can use
`snmpwalk -v2c -c public ap01.network.lan 'iso.3.6.1.4.1.41112'` command to clarify them.
* Official UBNT Unifi SNMP MIBs are available here: [Forum](https://community.ui.com/questions/MIBs-/a0365341-b14f-441b-9484-fd4be414d281)
* Tested with: AP-AC-PRO (up to now).
## Usage
unifi_munin - Munin plugin to monitor UBNT unifi wireless APs
Number of Clients
![munin](http://git.bmrg.hu/images/munin-unifi.git/munin-ssid.png)
Network Usage
![munin](http://git.bmrg.hu/images/munin-unifi.git/munin-netw.png)
Ap-response time
![munin](http://git.bmrg.hu/images/munin-unifi.git/munin-ping.png)
## Installing on Debian
1. Copy the **ubnt_unifi.php** into the **/usr/share/munin/plugins/** folder.
2. Set the rights:
`chmod 755 /usr/share/munin/plugins/ubnt_unifi.php`
3. Create a symlink to this file:
`ln -s /usr/share/munin/plugins/ubnt_unifi.php /etc/munin/plugins/ubnt_unifi`
4. Edit the **/etc/munin/munin.conf** and **/etc/munin/plugin-conf.d/munin-node** files, add the following configuration lines.
5. Restart the munin, and munin-node with `/etc/init.d/munin restart` and `/etc/init.d/munin-node restart` commands.
6. Test the plugin with the `munin-run ubnt_unifi` command.
7. Check for munin configuration with: `munin-run ubnt_unifi config` command.
8. Debug information are available under `munin-run ubnt_unifi debug` command.
## CONFIGURATION
Edit the **/etc/munin/munin.conf** with the following options:
[unifi.company.com] #Unifi Controller hostname
address 127.0.0.1 #This plugin uses a wirtual munin node on localhost,
use_node_name no #but don't need to use the node name.
timeout 240 #Timeout, while this plugin can be running.
Edit the **/etc/munin/plugin-conf.d/munin-node**, and use the following configurations:
[ubnt_unifi]
timeout - Munin-update timeout for this plugin.
env.controller - The unifi controller hostname/ip.
env.devices - A "space" separated list of the hostnames or IP addresses of wireless APs.
env.timeout - The maximum timeout in milliseconds of SNMP requests. (must enough to get all data!).
env.retry - Number of retry after failed/time out SNMP requets.
env.maxproc - Maximum nuber of child processes (for SNMP get)
env.devnetw - The network of the APs. (COMMENT IT OUT, IF NOT USED !!!)
env.resolvdup - Clarify if Ap is duplicated (Listed via hostname at "devices", and also is in "devnet" network/mask)
For example:
[ubnt_unifi]
timeout 240
env.controller unifi.company.com
env.devices ap01.wl.company.lan ap02.wl.company.lan ap03.wl.company.lan 10.10.1.6 10.10.1.7 10.10.1.8
#env.devnetw 10.10.1.10/24
env.timeout 850
env.retry 3
env.maxproc 32
env.resolvdup 1
### DEBUG Checklist
* Munin output with: `munin-run ubnt_unifi` command.
* Munin configuration with: `munin-run ubnt_unifi config` command.
* Debug information with: `munin-run ubnt_unifi debug` command.
* Is there a direct connection (Routing/SNMP_port: 161) between munin-server and Access Points?
* Is "php-json" and "php-snmp" installed?
* Is SNMP enabled in Unifi configuration, or on Access Points?
* Try ping APs from munin server.
---
### AUTHOR
Copyright (C) 2018-2020 Gergő J. Miklós.
### LICENSE
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; version 2 dated June,
1991.
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, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|