Overview
This template provides a production‑ready LibreNMS instance as a Monk runnable. You can:- Run it directly to get a managed network monitoring platform with sensible defaults
- Inherit it in your own infrastructure to seamlessly add network monitoring to your stack
What this template manages
- LibreNMS application server container
- MySQL/MariaDB for data storage
- RRDCached for performance graphing
- SNMP polling and discovery
- Web UI and RESTful API on port 8000
- Alerting engine with multiple transports
- Persistent volumes for data, graphs, and database
Quick start (run directly)
- Load templates
- Run LibreNMS stack with defaults
- Customize credentials (recommended via inheritance)
variables. Secrets added with monk secrets add will not affect this runnable unless you inherit it and reference those secrets.
- Preferred: inherit and replace variables with
secret("...")as shown below. - Alternative: fork/clone and edit the
variablesinlibrenms/librenms.yaml, thenmonk load MANIFESTand run.
http://localhost:8000 (or the runnable hostname inside Monk networks).
Default credentials: admin / admin (change immediately!)
Configuration
Key variables you can customize in this template:${monk-volume-path}/librenms and ${monk-volume-path}/mysql on the host.
Use by inheritance (recommended for network ops)
Inherit the LibreNMS runnable in your infrastructure and declare connections. Example:Ports and connectivity
- Service:
librenmson TCP port8000(Web UI) - SNMP traps: UDP port
162(if enabled) - Syslog: TCP/UDP port
514(if enabled) - From other runnables in the same process group, use
connection-hostname("\<connection-name>")to resolve the LibreNMS host.
Persistence and configuration
- LibreNMS data:
${monk-volume-path}/librenms/data:/data - RRD files:
${monk-volume-path}/librenms/rrd:/data/rrd - MySQL data:
${monk-volume-path}/mysql:/var/lib/mysql - Ensure the host volumes are writable by the container user.
Features
- Auto-Discovery: Automatically discover network devices
- SNMP Monitoring: Poll devices via SNMPv1/v2c/v3
- Graphing: Historical performance graphs with RRDtool
- Alerting: Flexible alerting with multiple transports (email, Slack, webhooks)
- Device Support: 1000+ device types
- API: RESTful API for automation
- Distributed Polling: Scale with multiple pollers
- Customizable Dashboards: Create custom views
- Billing: Track bandwidth usage
Adding Devices
Add devices via:- Web UI: Devices → Add Device
- Auto-discovery: Settings → Discovery → Discover new devices
- API: Use REST API to add devices programmatically
- Hostname/IP: 192.168.1.1
- SNMP Version: v2c or v3
- Community: public (v2c) or credentials (v3)
Alerting
Configure alerts:- Set thresholds for metrics (CPU, memory, bandwidth)
- Create alert rules with conditions
- Configure alert transports (email, Slack, PagerDuty, etc.)
- Set maintenance windows
Device Support
LibreNMS supports:- Networking: Cisco, Juniper, Arista, HP, MikroTik, Ubiquiti
- Servers: Linux, Windows, FreeBSD, ESXi
- Storage: NetApp, EMC, Synology
- Appliances: Firewalls, load balancers, UPS
- IoT: Environmental sensors, PDUs
API Usage
Example API call:Use cases
LibreNMS excels at:- Network infrastructure monitoring
- Server and service monitoring
- SNMP device monitoring
- Bandwidth accounting
- Environmental monitoring (temperature, humidity)
- Alerting and notifications
- Capacity planning
Related templates
- Integrate with databases and services for comprehensive monitoring
- Use with alerting systems (PagerDuty, Slack, email)
- Combine with log aggregation tools (
elk/,fluentbit/) - High‑availability setup: see the
librenms-ha/template in this repository for distributed polling.
Troubleshooting
- Access LibreNMS UI at
http://localhost:8000 - Check poller status: System → Pollers
- Validate installation:
./validate.phpin container - Ensure the host volumes are writable by the container user.
- Check logs:
- Device discovery issues:
- Verify SNMP connectivity:
snmpwalk -v2c -c public \<device-ip> - Check firewall rules for UDP 161
- Verify SNMP community string
- Verify SNMP connectivity:
- Slow polling: Increase
poller-threadsvariable - Graph issues: Check RRD file permissions in data volume
- Database performance: Monitor MySQL performance for large deployments
- Authentication fails after password change: Either reset the data volume or update credentials inside the DB to match