obs-01

The observability stack — ntfy, Grafana, Loki, Prometheus, and Uptime Kuma — on a dedicated Proxmox container.

The observability host. Everything that watches, graphs, and announces problems runs here — deliberately on its own container so the thing that announces problems isn’t the thing that has them.

Host

FieldValue
Internal IP10.10.0.148
Proxmoxobs-01, CT 111 on node pve
PlatformProxmox LXC, Ubuntu 22.04 LTS
Workspace/opt/observability/ (single docker-compose.yml)
Tool routingpve_lxc_exec (node pve, vmid 111) for shell access
Adjacent toolspve_lxc_* lifecycle (start/shutdown), pve_node_status

There’s no dedicated *_execute_command for obs-01 — it isn’t Leif, nvrbackup, or SHTops. Reach it through the Proxmox layer with pve_lxc_exec against vmid 111, the same way as any other container on the node.

The stack

Everything runs as Docker containers from /opt/observability/docker-compose.yml. The one host-level service is node_exporter (so obs-01 monitors itself).

ServiceImagePortRole
Grafanagrafana/grafana-oss3000Dashboards over Prometheus + Loki
Prometheusprom/prometheus:v2.55.19090Metrics scraping + storage
Lokigrafana/loki:3.3.23100Log aggregation backend
Promtailgrafana/promtail:3.3.21514Ships logs (incl. syslog :1514) into Loki
Uptime Kumalouislam/uptime-kuma:13001Uptime / endpoint health checks
ntfybinwiederhier/ntfy:v2.21.08080 (→ 80 in container)Push notification / alert delivery
node_exporterhost systemd service9100Host metrics for obs-01 itself

What it monitors

Prometheus (monitor: shtops-obs-01, 30s scrape interval) scrapes node_exporter / windows_exporter across internal hosts and customer sites:

TargetHostRole
localhost:9090obs-01Prometheus self-scrape
10.10.0.24:9100SHTopsMCP host
10.10.0.250:9100logsLibreNMS host
10.10.0.148:9100obs-01observability host
172.20.10.21:9182jelectric-server-01customer Windows Server 2019
172.20.10.10:9100jelectric-xcpngcustomer XCP-ng hypervisor

Customer targets (the jelectric boxes) are reached over the site-to-site links — see Network Topology.

Alert delivery (ntfy)

ntfy on :8080 is the push-notification endpoint for the stack. Alerts route to ntfy topics:

  • shtops-alerts / shtops-hq-alerts — internal SuperHiTech alerts
  • customer-alerts-critical / customer-alerts-info — customer-facing alerts
  • Hosts — full host inventory and tool routing summary
  • SHTops — the ops host obs-01 watches; LibreNMS + UniFi
  • Service Map — services and the Leif tools that manage them
  • Network Topology — reach to customer monitoring targets

Last verified against live systems: 2026-06-01 — see doc freshness.