UniFi AP Dashboard


UBNT UniFi AP Templated Dashboard
Last updated: 18 days ago

Downloads: 138

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


Detailed dashboard for monitoring of Ubiquiti UniFi Access Points.

Please Note that the collector configuration has been updated to support the current dashboard. If you are updating a previous revision of the dashboard please check the collector configuration as well to ensure it is current. The configuration is now dated for comparison.

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):



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.

Change history

11 April 2017 (v4): Added selector for radio; Updated channel/power panels to properly reflect both radios when multiple SSIDs are configured. This change requires an updated Telegraf collector configuration dated no earlier than this same date.


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


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/Gen 3)
## Last update:  11 April 2017
   # List of agents to poll
   agents = [ "uap1", "uap2" ]
   # 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 Details
   #  System name (hostname)
     is_tag = true
     name = "sysName"
     oid = "RFC1213-MIB::sysName.0"
   #  System vendor OID
     name = "sysObjectID"
     oid = "RFC1213-MIB::sysObjectID.0"
   #  System description
     name = "sysDescr"
     oid = "RFC1213-MIB::sysDescr.0"
   #  System contact
     name = "sysContact"
     oid = "RFC1213-MIB::sysContact.0"
   #  System location
     name = "sysLocation"
     oid = "RFC1213-MIB::sysLocation.0"
   #  System uptime
     name = "sysUpTime"
     oid = "RFC1213-MIB::sysUpTime.0"
   #  UAP model
     name = "unifiApSystemModel"
     oid = "UBNT-UniFi-MIB::unifiApSystemModel"
   #  UAP firmware version
     name = "unifiApSystemVersion"
     oid = "UBNT-UniFi-MIB::unifiApSystemVersion"
   ## Host Resources
   #  Total memory
     name = "memTotal"
     oid = "FROGFOOT-RESOURCES-MIB::memTotal.0"
   #  Free memory
     name = "memFree"
     oid = "FROGFOOT-RESOURCES-MIB::memFree.0"
   #  Buffer memory
     name = "memBuffer"
     oid = "FROGFOOT-RESOURCES-MIB::memBuffer.0"
   #  Cache memory
     name = "memCache"
     oid = "FROGFOOT-RESOURCES-MIB::memCache.0"
   #  Per-interface traffic, errors, drops
     oid = "IF-MIB::ifTable"
       is_tag = true
       oid = "IF-MIB::ifDescr"
   ## Interface Details & Metrics
   #  Wireless interfaces
     oid = "UBNT-UniFi-MIB::unifiRadioTable"
       is_tag = true
       oid = "UBNT-UniFi-MIB::unifiRadioName"
       is_tag = true
       oid = "UBNT-UniFi-MIB::unifiRadioRadio"
   #  BSS instances
     oid = "UBNT-UniFi-MIB::unifiVapTable"
       is_tag = true
       oid = "UBNT-UniFi-MIB::unifiVapName"
       is_tag = true
       oid = "UBNT-UniFi-MIB::unifiVapRadio"
   #  Ethernet interfaces
     oid = "UBNT-UniFi-MIB::unifiIfTable"
       is_tag = true
       oid = "UBNT-UniFi-MIB::unifiIfName"
   ## System Performance
   #  System load averages
     oid = "FROGFOOT-RESOURCES-MIB::loadTable"
       is_tag = true
       oid = "FROGFOOT-RESOURCES-MIB::loadDescr"
   ## SNMP metrics
   #  Number of SNMP messages received
     name = "snmpInPkts"
     oid = "SNMPv2-MIB::snmpInPkts.0"
   #  Number of SNMP Get-Request received
     name = "snmpInGetRequests"
     oid = "SNMPv2-MIB::snmpInGetRequests.0"
   #  Number of SNMP Get-Next received
     name = "snmpInGetNexts"
     oid = "SNMPv2-MIB::snmpInGetNexts.0"
   #  Number of SNMP objects requested
     name = "snmpInTotalReqVars"
     oid = "SNMPv2-MIB::snmpInTotalReqVars.0"
   #  Number of SNMP Get-Response received
     name = "snmpInGetResponses"
     oid = "SNMPv2-MIB::snmpInGetResponses.0"
   #  Number of SNMP messages sent
     name = "snmpOutPkts"
     oid = "SNMPv2-MIB::snmpOutPkts.0"
   #  Number of SNMP Get-Request sent
     name = "snmpOutGetRequests"
     oid = "SNMPv2-MIB::snmpOutGetRequests.0"
   #  Number of SNMP Get-Next sent
     name = "snmpOutGetNexts"
     oid = "SNMPv2-MIB::snmpOutGetNexts.0"
   #  Number of SNMP Get-Response sent
     name = "snmpOutGetResponses"
     oid = "SNMPv2-MIB::snmpOutGetResponses.0"
## InfluxDB Output Plugin
  urls = ["http://localhost:8086"] # required
  database = "telegraf" # required
  retention_policy = ""
  write_consistency = "any"
  timeout = "5s"
  username = "username"
  password = "password"
  user_agent = "telegraf"