Favicon of LibreNMS

LibreNMS

Automatically discover and monitor your network with extensive device support. Get flexible alerts via email or Slack, access a full API, and scale with distributed polling.

LibreNMS is a comprehensive, open-source network monitoring system designed to provide deep insights into your network's health and performance. It features a mobile-friendly web UI and leverages various protocols to automatically discover your entire network, saving you significant setup time. The system is built for scalability and flexibility, catering to both small and large network environments.

Key features include:

  • Automatic Discovery: Uses CDP, FDP, LLDP, OSPF, BGP, SNMP, and ARP to map out your network.
  • Customizable Alerting: A highly flexible alerting system that can notify you via email, IRC, Slack, and other platforms.
  • Full API Access: Provides a complete API to manage, graph, and retrieve data for custom integrations.
  • Bandwidth Billing System: Generate bandwidth bills for specific ports based on usage or data transfer.
  • Distributed Polling: Horizontally scale your monitoring capabilities as your network grows.
  • Extensive Integrations: Supports multiple authentication methods including LDAP, Radius, and Active Directory.

Directory Structure

librenms
db-data
librenms-data
.env
docker-compose.yml

docker-compose.yml

services:
  db:
    image: mariadb:10.11
    container_name: librenms_db
    command:
      - "mysqld"
      - "--innodb-file-per-table=1"
      - "--lower-case-table-names=0"
      - "--character-set-server=utf8mb4"
      - "--collation-server=utf8mb4_unicode_ci"
    environment:
      - TZ=UTC
      - MARIADB_RANDOM_ROOT_PASSWORD=yes
      - MARIADB_DATABASE=librenms
      - MARIADB_USER=librenms
      - MARIADB_PASSWORD=${MYSQL_PASSWORD}
    volumes:
      - ./db-data:/var/lib/mysql
    restart: always

  redis:
    image: redis:7.2-alpine
    container_name: librenms_redis
    environment:
      - TZ=UTC
    restart: always

  librenms:
    image: librenms/librenms:latest
    container_name: librenms
    hostname: librenms
    cap_add:
      - NET_ADMIN
      - NET_RAW
    ports:
      - "8000:8000"
    environment:
      - TZ=UTC
      - PUID=1000
      - PGID=1000
      - DB_HOST=db
      - DB_NAME=librenms
      - DB_USER=librenms
      - DB_PASSWORD=${MYSQL_PASSWORD}
      - DB_TIMEOUT=60
      - REDIS_HOST=redis
    volumes:
      - ./librenms-data:/data
    restart: always
    depends_on:
      - db
      - redis

  dispatcher:
    image: librenms/librenms:latest
    container_name: librenms_dispatcher
    hostname: librenms-dispatcher
    cap_add:
      - NET_ADMIN
      - NET_RAW
    depends_on:
      - librenms
      - redis
    environment:
      - TZ=UTC
      - PUID=1000
      - PGID=1000
      - DB_HOST=db
      - DB_NAME=librenms
      - DB_USER=librenms
      - DB_PASSWORD=${MYSQL_PASSWORD}
      - DB_TIMEOUT=60
      - REDIS_HOST=redis
      - DISPATCHER_NODE_ID=dispatcher1
      - SIDECAR_DISPATCHER=1
    volumes:
      - ./librenms-data:/data
    restart: always

  syslogng:
    image: librenms/librenms:latest
    container_name: librenms_syslogng
    hostname: librenms-syslogng
    cap_add:
      - NET_ADMIN
      - NET_RAW
    depends_on:
      - librenms
      - redis
    ports:
      - "514:514/tcp"
      - "514:514/udp"
    environment:
      - TZ=UTC
      - PUID=1000
      - PGID=1000
      - DB_HOST=db
      - DB_NAME=librenms
      - DB_USER=librenms
      - DB_PASSWORD=${MYSQL_PASSWORD}
      - DB_TIMEOUT=60
      - REDIS_HOST=redis
      - SIDECAR_SYSLOGNG=1
    volumes:
      - ./librenms-data:/data
    restart: always

  snmptrapd:
    image: librenms/librenms:latest
    container_name: librenms_snmptrapd
    hostname: librenms-snmptrapd
    cap_add:
      - NET_ADMIN
      - NET_RAW
    depends_on:
      - librenms
      - redis
    ports:
      - "162:162/tcp"
      - "162:162/udp"
    environment:
      - TZ=UTC
      - PUID=1000
      - PGID=1000
      - DB_HOST=db
      - DB_NAME=librenms
      - DB_USER=librenms
      - DB_PASSWORD=${MYSQL_PASSWORD}
      - DB_TIMEOUT=60
      - REDIS_HOST=redis
      - SIDECAR_SNMPTRAPD=1
    volumes:
      - ./librenms-data:/data
    restart: always

.env

MYSQL_PASSWORD=your_super_secret_password

Share:

Ad
Favicon

 

  
 

Similar to LibreNMS

Favicon

 

  
  
Favicon

 

  
  
Favicon