be818b49b8
refactor: remove Valkey from K8s, move to Proxmox hosts
...
Removing all Valkey (Redis) resources from Kubernetes due to instability
caused by Flannel CNI networking issues. Redis will now run on Proxmox
hosts for better stability and performance.
Changes:
- Delete Valkey StatefulSet (master + 2 replicas)
- Delete Valkey Sentinel StatefulSet (3 instances)
- Delete Valkey services (headless and sentinel)
- Delete Valkey ConfigMap
- Remove Valkey resources from kustomization.yaml
- Update deployment to use towerops-redis secret for connection
Next Steps:
- Set up Redis Sentinel on 3 Proxmox hosts/LXC containers
- Create towerops-redis secret with REDIS_HOST and REDIS_PORT
- Test failover and application connectivity
Benefits:
- Not affected by K8s networking issues (Flannel failures)
- More stable (no restarts from node issues)
- Better performance (no K8s overhead)
- Independent lifecycle from K8s cluster
2026-01-24 14:12:02 -06:00
3156eb19ac
fix: make Valkey service headless for StatefulSet DNS
...
Sentinel requires individual pod DNS names to work correctly.
Making the valkey service headless enables DNS resolution for:
- valkey-0.valkey.towerops.svc.cluster.local
- valkey-1.valkey.towerops.svc.cluster.local
- valkey-2.valkey.towerops.svc.cluster.local
This fixes CrashLoopBackOff in valkey-sentinel pods.
2026-01-24 14:06:03 -06:00
5ee241fc16
feat: implement multi-replica Valkey with Sentinel for high availability
...
Addresses production Redis disconnection issues by implementing a highly
resilient Valkey (Redis) setup with automatic failover capabilities.
Infrastructure Changes:
- Add Valkey ConfigMap with optimized connection and memory settings
- TCP keepalive (60s), connection limits (10k clients)
- Memory management (256MB with LRU eviction)
- Separate configs for master, replica, and sentinel
- Update Valkey StatefulSet to 3 replicas (1 master + 2 replicas)
- Auto-configuration via init container (master vs replica)
- Increased memory limits: 256Mi → 1Gi
- Improved readiness probes with replication status checks
- Add Valkey Sentinel StatefulSet (3 instances for quorum)
- Automatic failover detection (5s down-after-milliseconds)
- Fast failover execution (10s timeout)
- Monitors master and promotes replicas automatically
- Add Sentinel headless service for pod discovery
Application Resilience:
- Update Phoenix.PubSub.Redis with TCP keepalive and reconnection
- Connection timeout: 5s
- Exponential backoff: 500ms → 30s
- exit_on_disconnection: false
- Update Exq background jobs with same resilience settings
- TCP keepalive enabled
- Better connection pool management
Benefits:
- Automatic failover when Valkey pod dies (no manual intervention)
- Zero data loss with replica synchronization
- Fast failure detection and recovery (5-10s total)
- Survives Flannel CNI networking issues
- Apps reconnect automatically during disconnections
Testing:
- All 3,686 tests passing
- Kustomize manifest validated
🤖 Generated with Claude Code
2026-01-24 14:03:50 -06:00
67614cb93f
improve cloud poller display
2026-01-24 13:33:01 -06:00
af71d3f4f9
fix remote agent ip
2026-01-24 13:23:03 -06:00
e6054129b2
remote agent/cloud improvements
2026-01-24 09:16:41 -06:00
9697596e99
improve credo
2026-01-23 18:21:40 -06:00
f084e09ea1
add multiple cloud agents
2026-01-23 18:04:01 -06:00
f8d6837f20
fix etcd
2026-01-23 16:59:15 -06:00
29f00c37ed
credo fixes
2026-01-23 16:49:02 -06:00
2b78b1a2d3
snmpkit overhaul and etcd
2026-01-23 16:23:57 -06:00
f59cdbbd7a
credo fixes
2026-01-23 14:01:52 -06:00
7fcfdbf2e9
credo improvements
2026-01-23 13:40:49 -06:00
a0cee485a4
fix: credo issues - line length and unused aliases/variables
2026-01-23 13:25:08 -06:00
ec76428349
credo fixes
2026-01-23 13:19:56 -06:00
518b49318c
routeros fix
2026-01-23 13:16:02 -06:00
a4335a047a
allow nonroutable for me
2026-01-23 13:10:12 -06:00
a0ba9285dd
bring in snmpkit
2026-01-23 12:52:17 -06:00
0056d35e9b
ignore more startup errors
2026-01-23 10:08:04 -06:00
3495767b8d
ignore startup errors
2026-01-23 10:06:25 -06:00
3fe0ccd392
routeros test
2026-01-23 09:53:03 -06:00
80d1864700
mac discovery
2026-01-23 09:22:08 -06:00
7bd3b1f9ec
arp
2026-01-23 08:40:57 -06:00
5f6ac5ddb9
update deployment
2026-01-23 07:47:00 -06:00
f402dcb7af
fix mikrotik sensors
2026-01-22 18:07:20 -06:00
639ffd4a2c
better discovery
2026-01-22 17:40:58 -06:00
96fc488023
sanitize snmp data and fix some cpu things
2026-01-22 16:53:01 -06:00
2856a0ccda
improved fallabck detection
2026-01-22 13:43:56 -06:00
17f4558702
implement timescaledb improvements
2026-01-22 13:24:14 -06:00
d401e0b036
mikrotik improvements
2026-01-22 13:05:28 -06:00
218b99972e
more tests
2026-01-22 11:51:35 -06:00
155b38ab94
feat: add APC, Arista, Calix, ADTRAN, Allied Telesis vendor modules
...
Add 5 new vendor modules for network infrastructure equipment:
- APC: UPS and PDU monitoring (battery, voltage, load, runtime)
- Arista EOS: Data center switches (CPU, memory)
- Calix: GPON/fiber access equipment
- ADTRAN AOS: NetVanta routers and switches
- Allied Telesis: AlliedWare/AlliedWare Plus switches
Total: 53 vendors, 88 profile names
Also cleanup commented AlertNotifier code from previous removal.
2026-01-22 11:00:21 -06:00
aec9807e97
feat: add Meraki/FortiWLC vendors, remove AlertNotifier temporarily
...
Vendors:
- Add Meraki vendor module (merakimr, merakims, merakimx profiles)
- Add FortiWLC vendor module for Fortinet wireless controllers
- Add cnpilotr profile to existing Cnpilot module
- 48 vendors now covering 77 profile names
Cleanup:
- Remove AlertNotifier module and tests (flaky, to be reimplemented)
2026-01-22 10:40:44 -06:00
74e409d6a6
feat: add Pepwave, Ceragon, Tranzeo, and CMM vendor modules
2026-01-22 10:22:19 -06:00
928055cbe3
feat: add FortiAP, D-Link AP, and Moxa AWK vendor modules
2026-01-22 10:12:49 -06:00
508ad99919
feat(snmp): add 6 more vendor modules (xirrus, alvarion, zyxel_wlc, proxim, altalabs, stellar)
2026-01-22 10:02:42 -06:00
e1bc56e065
feat(snmp): add 6 new vendor modules (cnwave60, cnmatrix, ruckus_sz, deliberant, engenius, grandstream)
2026-01-22 09:53:33 -06:00
7c2014842d
feat: add 5 new SNMP vendor modules
...
Add vendor-specific SNMP handling for:
- Aerohive (HiveOS wireless APs): client counts, CPU/memory, temperature
- Baicells (LTE CPE): RSRP, RSRQ, SINR, RSSI, tx power, temperature
- Cambium PTP (point-to-point radios): RSL, tx power, data rates, temperature
- Cisco WAP (standalone APs): clients, channel utilization, noise floor
- Netonix (WISP switches): temperatures, fan speed, PSU voltages, PoE power
Each module implements the Vendor behaviour with:
- profile_names/0 for profile matching
- detect_hardware/1 for model identification
- discover_wireless_sensors/1 for sensor discovery
- wireless_oid_defs/0 for debug data collection
All modules registered in vendor registry with comprehensive tests.
2026-01-22 09:42:48 -06:00
0a4482f974
feat: add 5 new vendor modules and fix dialyzer issues
...
Vendor modules added:
- Aviat (WTM microwave radios)
- Aruba (wireless controllers and APs)
- CiscoWLC (Cisco wireless LAN controllers)
- Teltonika (RUTOS LTE routers)
- Sub10 (mmWave backhaul radios)
Dialyzer fixes:
- Fix unknown type Devices.t/0 in alert.ex and device.ex
- Fix unmatched_return warnings across multiple files
- Add :exq to PLT for Exq function detection
- Remove dead code in base.ex, dynamic.ex, vendor.ex
- Fix Device.t() type spec to allow nil name field
Tests: 1437 tests, 0 failures
Dialyzer: 0 errors
Credo: no issues
2026-01-22 09:34:50 -06:00
8f1752e59c
feat: add more vendor modules and fix sensor discovery
...
New vendor modules for WISP equipment:
- Ruckus: ZoneDirector, SmartZone, Unleashed controllers
- DragonWave: Horizon Compact/Duo/Quantum microwave
- AirFiber: Ubiquiti AF 5/24/60 series (split from Airos)
- Racom: RAy and RAy3 microwave radios
- Exalt: ExtendAir microwave radios
- SIAE: ALFO 80HD microwave radios
Also fixes:
- sensor_value -> last_value consistency in YAML sensor discovery
- Test warnings (assert defs != [] -> assert [_ | _] = defs)
Total: 17 vendor modules, 162 tests passing
2026-01-22 08:59:50 -06:00
a83e63b3ad
feat: add vendor-specific SNMP modules for WISP equipment
...
Add 8 new vendor modules for wireless sensor discovery:
- PMP: Cambium PMP 450/430/100 and PTP series
- Mimosa: B5/B5c PTP and A5/A5c PTMP radios
- Siklu: EtherHaul mmWave radios
- Radwin: WinLink and JET series
- UniFi: Ubiquiti UniFi Access Points
- LigoOS: LigoWave and Deliberant devices
- cnPilot: Cambium cnPilot E and R series
- SAF: SAF Tehnika Integra/Lumina/CFIP series
Each module implements the Vendor behaviour with:
- profile_names/0: OS profile identifiers
- detect_hardware/1: device model detection
- wireless_oid_defs/0: sensor OID definitions
- discover_wireless_sensors/1: sensor discovery
Includes comprehensive tests for all modules (104 tests).
2026-01-22 08:48:38 -06:00
56bb855996
refactor: extract vendor-specific SNMP discovery to modules
...
Mirrors LibreNMS architecture where vendor-specific discovery logic
lives in OS PHP classes. Creates modular vendor system with:
- Vendor behaviour defining callbacks for profile_names, detect_hardware,
discover_wireless_sensors, wireless_oid_defs
- Epmp vendor module for Cambium ePMP devices
- Airos vendor module for Ubiquiti AirOS devices
- Routeros vendor module for MikroTik devices with table-based discovery
- Registry module for dispatching to appropriate vendor by profile name
Removes 250+ lines of inline vendor code from dynamic.ex.
2026-01-22 08:34:35 -06:00
28a9517a1f
fix: use last_value field so sensor values are saved to database
...
- Change sensor_value to last_value to match Sensor schema
- Make wireless sensor_index unique using OID suffix
- Values now persist and can be graphed
2026-01-21 17:29:23 -06:00
985e3533df
feat: add additional ePMP sensors matching LibreNMS
...
Add all sensors that LibreNMS Epmp.php collects:
- GPS tracked/visible satellites
- Transmit power
- Channel width
- Network entry attempts/success/auth failures
2026-01-21 17:25:48 -06:00
605f8c09ec
feat: add discovered sensors table to debug tab
...
Display discovered sensors in a parsed table format showing type,
description, OID, value with unit, and state description for state
sensors.
2026-01-21 17:18:44 -06:00
74c9544688
feat: add wireless sensor discovery and fix YAML sensor parsing
...
- Add wireless sensor discovery for ePMP and AirOS devices
- Implement vendor-specific OIDs matching LibreNMS PHP discovery
- Fix table/state sensor discovery to handle map format from Client.walk
- Add discovered_sensors to debug data with values and state descriptions
- ePMP: frequency, clients, rssi, snr (rssi/snr for SM only)
- AirOS: frequency, capacity, ccq, clients, distance, noise-floor, power, quality, rate, rssi, utilization
2026-01-21 17:15:00 -06:00
12875d7f48
fix device table
2026-01-21 14:44:16 -06:00
c26e379dd7
fix device update handler
2026-01-21 14:42:55 -06:00
7656ac7212
import yamls
2026-01-21 14:30:04 -06:00
d68991c484
fix discovery issue
2026-01-21 13:07:30 -06:00