UniFi AP Dashboard

Dashboard

UBNT UniFi AP Templated Dashboard
Last updated: 3 hours ago

Downloads: 21

  • Snap1.png
    Snap1.png
  • Snap4.png
    Snap4.png
  • Snap3.png
    Snap3.png
  • Snap2.png
    Snap2.png

Overview

Detailed dashboard for monitoring of Ubiquiti UniFi Access Points.

This dashboard works with Gen2 and later APs. Gen1 APs do support monitoring via SNMP, however they provide very little instrumentation due to the lack of support for the IF-MIB and UBNT-UniFi-MIB mibs.

The Telegraf collector configuration is MIB-based so all of the required MIBs will need to be available for the collector to perform the needed translations. Most SNMP distributions available on most platforms already provide these with one exception (see below). This configuration uses the "new" SNMP plugin for Telegraf, so SNMP monitoring must be enabled in the UniFi controller. The 'agents' list in the configuration is of the actual APs themselves, however, and not the controller.

This dashboard does display the SNMP contact and location detail, but there is currently no method to configure these via the UniFi controller. Instead, these may be set (optionally, as desired) using the method described in UniFi - How to make persistent changes to UAP(s) system.cfg. Two simple additions to the config.properties file apply this to all APs in a given site (adjust the item number and values as appropriate):

config.system_cfg.1=snmp.contact=admin@mydomain.com
config.system_cfg.2=snmp.location=somewhere

Notes

The CCQ & Stations graphs may need to be adjusted if there are more than than two total vAPs (multiple SSIDs per radio) selected, as the legend may grow too large with the graphs configured as-is. This would be a matter of preference. The template does allow a selection of vAPs to display as an option.

The Unifi MIB locations may be found in the UniFi Updates Blog announcements for UniFi releases. These should be downloaded and placed in the default SNMP MIBs location on the server where the Telegraf instance is running.

The FROGFOOT-RESOURCES-MIB will also be needed, but a simple web search should provide many references to sources if needed. Some SNMP distributions already include this, but not all.

References

This dashboard and dependent configurations may also be found at https://github.com/WaterByWind/grafana-dashboards

License

This dashboard is distributed under The MIT License (MIT)

Collector Configuration Details

Telegraf SNMP plugin configuration (add to telegraf.conf).

Note: You will need to change/set these in the configuration below:

  • SNMP community string for input plugin
  • URL to your InfluxDB instance for output plugin
  • InfluxDB username & password for output plugin
##
## SNMP Input Plugin
##
## UniFi APs (Gen 2/Gen3)
##
 [[inputs.snmp]]
   # List of agents to poll
   agents = [ "myap1", "myap2", "myap3" ]
   # Polling interval
   interval = "60s"
   # Timeout for each SNMP query.
   timeout = "10s"
   # Number of retries to attempt within timeout.
   retries = 3
   # SNMP version, UAP only supports v1
   version = 1
   # SNMP community string.
   community = "public"
   # The GETBULK max-repetitions parameter
   max_repetitions = 10
   # Measurement name
   name = "snmp.UAP"
   # System name (hostname)
   [[inputs.snmp.field]]
     name = "sysName"
     oid = "RFC1213-MIB::sysName.0"
     is_tag = true
   # System vendor OID
   [[inputs.snmp.field]]
     name = "sysObjectID"
     oid = "RFC1213-MIB::sysObjectID.0"
   # System description
   [[inputs.snmp.field]]
     name = "sysDescr"
     oid = "RFC1213-MIB::sysDescr.0"
   # System contact
   [[inputs.snmp.field]]
     name = "sysContact"
     oid = "RFC1213-MIB::sysContact.0"
   # System location
   [[inputs.snmp.field]]
     name = "sysLocation"
     oid = "RFC1213-MIB::sysLocation.0"
   # System uptime 
   [[inputs.snmp.field]]
     name = "sysUpTime"
     oid = "RFC1213-MIB::sysUpTime.0"
   # Frogfoot - total memory
   [[inputs.snmp.field]]
     name = "memTotal"
     oid = "FROGFOOT-RESOURCES-MIB::memTotal.0"
   # Frogfoot - free memory
   [[inputs.snmp.field]]
     name = "memFree"
     oid = "FROGFOOT-RESOURCES-MIB::memFree.0"
   # Frogfoot - buffer memory
   [[inputs.snmp.field]]
     name = "memBuffer"
     oid = "FROGFOOT-RESOURCES-MIB::memBuffer.0"
   # Frogfoot - cache memory
   [[inputs.snmp.field]]
     name = "memCache"
     oid = "FROGFOOT-RESOURCES-MIB::memCache.0"
   # UBNT-UniFi - UAP model
   [[inputs.snmp.field]]
     name = "unifiApSystemModel"
     oid = "UBNT-UniFi-MIB::unifiApSystemModel"
   # UBNT-UniFi - UAP firmware version
   [[inputs.snmp.field]]
     name = "unifiApSystemVersion"
     oid = "UBNT-UniFi-MIB::unifiApSystemVersion"
   # IF-MIB::ifTable contains counters on input and output traffic
   [[inputs.snmp.table]]
     oid = "IF-MIB::ifTable"
     [[inputs.snmp.table.field]]
       oid = "IF-MIB::ifDescr"
       is_tag = true
   # UBNT-UniFi-MIB::unifiRadioTable - Wireless interfaces
   [[inputs.snmp.table]]
     oid = "UBNT-UniFi-MIB::unifiRadioTable"
     [[inputs.snmp.table.field]]
       oid = "UBNT-UniFi-MIB::unifiRadioName"
       is_tag = true
   # UBNT-UniFi-MIB::unifiVapTable - BSS instances
   [[inputs.snmp.table]]
     oid = "UBNT-UniFi-MIB::unifiVapTable"
     [[inputs.snmp.table.field]]
       oid = "UBNT-UniFi-MIB::unifiVapName"
       is_tag = true
   # UBNT-UniFi-MIB::unifiIfTable - Ethernet interfaces
   [[inputs.snmp.table]]
     oid = "UBNT-UniFi-MIB::unifiIfTable"
     [[inputs.snmp.table.field]]
       oid = "UBNT-UniFi-MIB::unifiIfName"
       is_tag = true
   # FROGFOOT-RESOURCES-MIB::loadTable - System load averages
   [[inputs.snmp.table]]
     oid = "FROGFOOT-RESOURCES-MIB::loadTable"
     [[inputs.snmp.table.field]]
       oid = "FROGFOOT-RESOURCES-MIB::loadDescr"
       is_tag = true
##
## InfluxDB Output Plugin
##
[[outputs.influxdb]]
  urls = ["http://localhost:8086"] # required
  database = "telegraf" # required
  retention_policy = ""
  write_consistency = "any"
  timeout = "5s"
  username = "username"
  password = "password"
  user_agent = "telegraf"
#
Download Dashboard
Dependencies: