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
238 lines
4.6 KiB
Bash
238 lines
4.6 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Deploy Smokeping on tsys-librenms
|
|
# Part of OAM platform [#337]
|
|
|
|
echo "=== Setting up Smokeping ==="
|
|
|
|
# Ensure directories
|
|
mkdir -p /opt/oam/smokeping/{config,data}
|
|
|
|
# General config
|
|
cat > /opt/oam/smokeping/config/General <<'GENEOF'
|
|
*** General ***
|
|
|
|
owner = Charles N Wyble
|
|
contact = reachableceo@knownelement.com
|
|
mailhost = localhost
|
|
cgiurl = http://tsys-librenms.knel.net:8081/smokeping/smokeping.cgi
|
|
syslogfacility = local0
|
|
pagedir = /data/pages
|
|
piddir = /tmp
|
|
imgcache = /data/cache
|
|
imgurl = /smokeping/images
|
|
datadir = /data/_data
|
|
dyndir = /data/dyn
|
|
|
|
*** Database ***
|
|
|
|
step = 300
|
|
pings = 20
|
|
|
|
AVERAGE 0.5 1 100800
|
|
AVERAGE 0.5 12 43200
|
|
MIN 0.5 12 43200
|
|
MAX 0.5 12 43200
|
|
AVERAGE 0.5 144 7200
|
|
MAX 0.5 144 7200
|
|
MIN 0.5 144 7200
|
|
|
|
*** Presentation ***
|
|
|
|
template = /etc/smokeping/basepage.html
|
|
|
|
+ charts
|
|
|
|
+ detail
|
|
width = 600
|
|
height = 200
|
|
nradius = 5
|
|
|
|
*** Probes ***
|
|
|
|
+ FPing
|
|
|
|
binary = /usr/local/bin/fping
|
|
hostinterval = 1.5
|
|
mininterval = 0.001
|
|
offset = 0%
|
|
|
|
*** Alerts ***
|
|
|
|
to = reachableceo@knownelement.com
|
|
from = smokeping-alert@tsys-librenms.knel.net
|
|
|
|
+bigloss
|
|
type = loss
|
|
pattern = ==0%,==0%,==0%,==0%,>0%,>0%,>0%
|
|
comment = suddenly there is packet loss
|
|
|
|
+somedoss
|
|
type = loss
|
|
pattern = ==0%,==0%,==0%,==0%,==0%,>0%,>0%,>0%,>0%,>0%,>0%,>0%
|
|
comment = incoming packet loss
|
|
|
|
+startloss
|
|
type = loss
|
|
pattern = >0%,>0%,>0%
|
|
comment = loss at startup
|
|
|
|
+rttdetect
|
|
type = rtt
|
|
pattern = <10,<10,<10,<10,<10,<10,<10,>10,>10,>10
|
|
comment = routing change?
|
|
|
|
+rttbadd
|
|
type = rtt
|
|
pattern = <50,<50,<50,<50,<50,<50,>50,>50,>50,>50
|
|
comment = reroute?
|
|
GENEOF
|
|
|
|
# Targets config
|
|
cat > /opt/oam/smokeping/config/Targets <<'TGTEOF'
|
|
*** Targets ***
|
|
|
|
probe = FPing
|
|
|
|
menu = Top
|
|
title = Network Latency Monitor
|
|
|
|
+ Infrastructure
|
|
menu = Infrastructure
|
|
title = Core Infrastructure
|
|
|
|
++ pfv-r5-core-01
|
|
menu = pfv-r5-core-01 (Core Switch)
|
|
title = Dell PowerConnect 5448 - Rack 5 Core
|
|
host = pfv-r5-core-01.knel.net
|
|
|
|
++ pfv-r3-tor-mgmt-01
|
|
menu = pfv-r3-tor-mgmt-01 (Rack 3 Mgmt TOR)
|
|
title = Neyland 24T - Rack 3 Management TOR
|
|
host = pfv-r3-tor-mgmt-01.knel.net
|
|
|
|
++ pfv-r3-tor-stor-01
|
|
menu = pfv-r3-tor-stor-01 (Rack 3 Storage TOR)
|
|
title = Neyland 24T - Rack 3 Storage TOR
|
|
host = pfv-r3-tor-stor-01.knel.net
|
|
|
|
++ pfv-r6-mgmt-01
|
|
menu = pfv-r6-mgmt-01 (Rack 6 Mgmt Switch)
|
|
title = Neyland 24T - Rack 6 Management Switch
|
|
host = pfv-r6-mgmt-01.knel.net
|
|
|
|
+ Servers
|
|
menu = Servers
|
|
title = Server Infrastructure
|
|
|
|
++ pfv-stor1
|
|
menu = pfv-stor1
|
|
title = Storage Server 1
|
|
host = pfv-stor1.knel.net
|
|
|
|
++ pfv-bms
|
|
menu = pfv-bms (HomeAssistant)
|
|
title = Home Assistant / UniFi Controller
|
|
host = pfv-bms.knel.net
|
|
|
|
++ tsys-librenms
|
|
menu = tsys-librenms
|
|
title = LibreNMS Monitoring Server
|
|
host = tsys-librenms.knel.net
|
|
|
|
+ Wireless
|
|
menu = Wireless
|
|
title = Wireless Access Points
|
|
|
|
++ ap-tablemount
|
|
menu = ap-tablemount
|
|
title = UniFi AP-AC-Lite (Table Mount)
|
|
host = ap-tablemount.knel.net
|
|
|
|
++ ap-wallmount
|
|
menu = ap-wallmount
|
|
title = UniFi AP-AC-LR (Wall Mount)
|
|
host = ap-wallmount.knel.net
|
|
|
|
+ ProxmoxHosts
|
|
menu = Proxmox Hosts
|
|
title = Proxmox Hypervisor Nodes
|
|
|
|
++ pfv-tsys1
|
|
menu = pfv-tsys1
|
|
title = Proxmox Host - Infrastructure
|
|
host = pfv-tsys1.knel.net
|
|
|
|
++ pfv-tsys3
|
|
menu = pfv-tsys3
|
|
title = Proxmox Host - Compute
|
|
host = pfv-tsys3.knel.net
|
|
|
|
++ pfv-tsys4
|
|
menu = pfv-tsys4
|
|
title = Proxmox Host - Storage + PBS
|
|
host = pfv-tsys4.knel.net
|
|
|
|
++ pfv-tsys5
|
|
menu = pfv-tsys5
|
|
title = Proxmox Host - Storage + Sandbox
|
|
host = pfv-tsys5.knel.net
|
|
|
|
++ pfv-tsys6
|
|
menu = pfv-tsys6
|
|
title = Proxmox Host - RackRental
|
|
host = pfv-tsys6.knel.net
|
|
|
|
++ pfv-tsys7
|
|
menu = pfv-tsys7
|
|
title = Proxmox Host - RackRental
|
|
host = pfv-tsys7.knel.net
|
|
|
|
++ pfv-tsys9
|
|
menu = pfv-tsys9
|
|
title = Proxmox Host - Infra + Compute
|
|
host = pfv-tsys9.knel.net
|
|
|
|
+ Power
|
|
menu = Power
|
|
title = Power Devices
|
|
|
|
++ pfv-garage-pdu-01
|
|
menu = pfv-garage-pdu-1
|
|
title = APC PDU (Garage)
|
|
host = pfv-garage-pdu-1.knel.net
|
|
TGTEOF
|
|
|
|
# Docker compose
|
|
cat > /opt/oam/smokeping/docker-compose.yml <<'DCEOF'
|
|
services:
|
|
smokeping:
|
|
image: linuxserver/smokeping:2.9.0
|
|
container_name: oam-smokeping
|
|
environment:
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=America/Chicago
|
|
volumes:
|
|
- /opt/oam/smokeping/config:/config
|
|
- /opt/oam/smokeping/data:/data
|
|
ports:
|
|
- "8081:80"
|
|
restart: unless-stopped
|
|
DCEOF
|
|
|
|
echo "=== Starting Smokeping container ==="
|
|
cd /opt/oam/smokeping && docker compose up -d 2>&1
|
|
|
|
echo "=== Waiting for startup ==="
|
|
sleep 5
|
|
|
|
echo "=== Container status ==="
|
|
docker ps --filter name=oam-smokeping --format "table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"
|
|
|
|
echo "=== Smokeping logs (last 20) ==="
|
|
docker logs oam-smokeping --tail 20 2>&1
|
|
|
|
echo "=== Done ==="
|