Introduction
LibreNMS is a community-maintained fork of Observium that provides comprehensive network monitoring and management capabilities. It auto-discovers network devices using SNMP, CDP, LLDP, and other protocols, then polls them at regular intervals to collect performance metrics, health data, and interface statistics. Thousands of device types from hundreds of vendors are supported out of the box.
What LibreNMS Does
- Auto-discovers network devices, servers, and services using SNMP, ARP, and discovery protocols
- Collects and graphs bandwidth, CPU, memory, temperature, and hundreds of other metrics via SNMP polling
- Sends alerts via email, Slack, PagerDuty, and dozens of other transports when thresholds are breached
- Generates network maps showing device interconnections and topology
- Provides a device inventory with hardware, firmware, serial numbers, and location tracking
Architecture Overview
LibreNMS is a PHP application built on the Laravel framework with a MariaDB/MySQL database. An SNMP poller (written in Python and PHP) runs on a scheduled interval to collect metrics from monitored devices. Time-series data is stored in RRDtool files or optionally in InfluxDB/Prometheus for long-term retention. The web UI serves graphs rendered from RRD data and provides search, filtering, and dashboarding. A discovery process runs periodically to find new devices and update existing device metadata.
Self-Hosting & Configuration
- Deploy using Docker Compose with the official images or install on Ubuntu/Debian with the provided installer script
- Add devices via the web UI or CLI by specifying their hostname and SNMP community string
- Configure alert rules and transport methods (email, Slack, webhook) in the Alerts section
- Enable distributed polling by deploying additional poller nodes for large networks
- Integrate with Oxidized for automatic network device configuration backup and change tracking
Key Features
- Automatic device discovery via SNMP, CDP, LLDP, OSPF, and BGP neighbor detection
- Support for over 1,500 device types with vendor-specific MIB parsing and custom graphs
- Flexible alerting engine with templated rules, escalation, and acknowledgment workflows
- API for programmatic access to devices, ports, alerts, and inventory data
- Oxidized integration for automated network configuration backup and version tracking
Comparison with Similar Tools
- Zabbix — More general-purpose monitoring with agent-based collection; LibreNMS focuses on network-native SNMP monitoring
- Nagios — Legacy monitoring with a check-based model; LibreNMS provides richer auto-discovery and graphing
- PRTG — Commercial network monitor with a free tier; not open source
- Netdata — Real-time system monitoring focused on individual hosts; LibreNMS monitors network infrastructure at scale
FAQ
Q: How does auto-discovery work? A: LibreNMS queries known devices for their neighbor tables (CDP, LLDP, OSPF, BGP) and ARP caches, then automatically adds discovered devices and begins polling them.
Q: What SNMP versions are supported? A: LibreNMS supports SNMP v1, v2c, and v3, including SNMPv3 authentication and encryption for secure environments.
Q: Can LibreNMS monitor non-SNMP devices? A: Yes. Service checks can monitor TCP/UDP ports, HTTP endpoints, and custom scripts for devices that do not support SNMP.
Q: How do I scale LibreNMS for large networks? A: Enable distributed polling by deploying additional poller nodes that connect to the same database. LibreNMS distributes device polling across all registered pollers.