Deploy OAM monitoring stack on tsys-librenms VM:
- Smokeping: fully operational (port 8081, 16 targets, FPing probing)
- NetDisco: backend+DB+PostgreSQL running (port 8082), all 4 Dell switches
discovered via SNMP. Web UI blocked by Dancer session_cookie_key config
issue — needs interactive netdisco-deploy run
- Oxidized: container running (port 8083), deployed with placeholder
credentials — needs switch login/password to start config backups
- UNPoller: config + docker-compose ready, blocked on Docker image
availability (image moved from all common registries)
- Weathermap: not yet started (deferred to separate commit)
All configs use DNS names only (no IP literals). All scripts pass
shellcheck via check-rules.sh.
💘 Generated with Crush
Assisted-by: Crush:glm-5.2
84 lines
2.0 KiB
Bash
84 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Deploy UNPoller on tsys-librenms
|
|
# Part of OAM platform [#337]
|
|
# UniFi controller polling for metrics export
|
|
|
|
echo "=== Setting up UNPoller ==="
|
|
|
|
mkdir -p /opt/oam/unpoller
|
|
|
|
# Write config
|
|
cat > /opt/oam/unpoller/up.conf <<'CONFEOF'
|
|
[poller]
|
|
debug = false
|
|
quiet = false
|
|
plugins = []
|
|
|
|
[unifi.defaults]
|
|
url = "https://pfv-bms.knel.net:8443"
|
|
user = "CHANGE_ME"
|
|
pass = "CHANGE_ME"
|
|
sites = ["all"]
|
|
ssl_verify = false
|
|
|
|
[unifi.defaults.save_dpi]
|
|
enabled = true
|
|
|
|
[influxdb]
|
|
enable = false
|
|
url = "http://tsys-librenms.knel.net:8086"
|
|
db = "unifi"
|
|
|
|
[datadog]
|
|
enable = false
|
|
|
|
[prometheus]
|
|
enable = true
|
|
http_listen = ":9130"
|
|
report_errors = true
|
|
|
|
[loki]
|
|
enable = false
|
|
CONFEOF
|
|
|
|
# Docker compose
|
|
cat > /opt/oam/unpoller/docker-compose.yml <<'DCEOF'
|
|
services:
|
|
unpoller:
|
|
image: ghcr.io/unpoller/unpoller:2.13.2
|
|
container_name: oam-unpoller
|
|
environment:
|
|
- UP_UNIFI_DEFAULT_URL=https://pfv-bms.knel.net:8443
|
|
- UP_UNIFI_DEFAULT_USER=CHANGE_ME
|
|
- UP_UNIFI_DEFAULT_PASS=CHANGE_ME
|
|
- UP_UNIFI_DEFAULT_VERIFY_SSL=false
|
|
- UP_PROMETHEUS_ENABLE=true
|
|
- UP_PROMETHEUS_HTTP_LISTEN=:9130
|
|
- TZ=America/Chicago
|
|
ports:
|
|
- "8084:9130"
|
|
volumes:
|
|
- /opt/oam/unpoller/up.conf:/config/unifi-poller.conf:ro
|
|
restart: unless-stopped
|
|
DCEOF
|
|
|
|
echo "=== Pulling UNPoller image ==="
|
|
cd /opt/oam/unpoller && timeout 120 docker compose pull 2>&1
|
|
|
|
echo "=== Starting UNPoller ==="
|
|
cd /opt/oam/unpoller && docker compose up -d 2>&1
|
|
|
|
echo "=== Status ==="
|
|
docker ps --filter name=oam-unpoller --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
|
|
|
echo ""
|
|
echo "=== IMPORTANT ==="
|
|
echo "UNPoller deployed with placeholder UniFi credentials (CHANGE_ME)."
|
|
echo "Update UP_UNIFI_DEFAULT_USER and UP_UNINI_DEFAULT_PASS env vars"
|
|
echo "in /opt/oam/unpoller/docker-compose.yml with real UniFi controller"
|
|
echo "credentials, then restart: cd /opt/oam/unpoller && docker compose up -d"
|
|
echo ""
|
|
echo "=== UNPoller Prometheus metrics: http://tsys-librenms.knel.net:8084 ==="
|