Getting Started¶
Prerequisites¶
- PCP installed on the target host (
pcp,pcp-libs-pythonorpython3-pcp) - Python 3.8+
- Network access to a UniFi Controller running Network Application 9.0+
- A UniFi API key (generate at Network > Settings > Control Plane > Integrations)
Installing PCP¶
sudo dnf install pcp pcp-libs-python
sudo systemctl enable --now pmcd
sudo apt install pcp python3-pcp
sudo systemctl enable --now pmcd
Install from PyPI¶
pip install pcp-pmda-unifi
sudo pcp-pmda-unifi-setup install
macOS restricts direct pip install into the system Python. Use a virtual
environment — the setup script automatically records the venv's
site-packages path so PCP's pmpython can find the module at runtime.
brew install pcp
python3 -m venv /opt/pcp-pmda-unifi
/opt/pcp-pmda-unifi/bin/pip install pcp-pmda-unifi
sudo /opt/pcp-pmda-unifi/bin/pcp-pmda-unifi-setup install
Interactive Setup¶
cd /var/lib/pcp/pmdas/unifi
sudo ./Install
The Install script will:
- Prompt for controller URL and API key
- Test connectivity and validate authentication
- Discover available sites and let you choose which to monitor
- Write
unifi.conf - Register the PMDA with PMCD
Non-Interactive Setup¶
For automation or containers, use environment variables:
export UNIFI_URL=https://192.168.1.1
export UNIFI_API_KEY=your-api-key-here
export UNIFI_SITES=all
cd /var/lib/pcp/pmdas/unifi
sudo -E ./Install -e
Verify Installation¶
# Check the PMDA is registered
pminfo unifi
# See all switch port metrics
pminfo -f unifi.switch.port.rx_bytes
# Watch per-port byte rates (5-second intervals)
pmrep -t 5 unifi.switch.port.rx_bytes unifi.switch.port.tx_bytes
# Check controller health
pmval unifi.controller.up
# View device inventory
pminfo -f unifi.device.name
Upgrade¶
To upgrade while preserving your existing unifi.conf:
pip install --upgrade pcp-pmda-unifi
sudo pcp-pmda-unifi-setup install
cd /var/lib/pcp/pmdas/unifi
sudo ./Install -u
Remove¶
cd /var/lib/pcp/pmdas/unifi
sudo ./Remove
This deregisters the PMDA from PMCD but preserves unifi.conf.