librenms

From KlavoWiki
Jump to navigationJump to search

docker-compose.yml

  # --- LibreNMS Services (uses remote DB) ---
  redis:
    image: redis:8.6-alpine
    container_name: librenms_redis
    environment:
      - TZ=Australia/Brisbane
    restart: always

  msmtpd:
    image: crazymax/msmtpd:latest
    container_name: librenms_msmtpd
    env_file:
      - ./librenms/msmtpd.env
    restart: always

  librenms:
    image: librenms/librenms:latest
    container_name: librenms
    hostname: librenms
    cap_add:
      - NET_ADMIN
      - NET_RAW
    ports:
      - 8000:8000
    depends_on:
      - redis
      - msmtpd
    volumes:
      - ./librenms:/data
    env_file:
      - ./librenms/librenms.env
    environment:
      - TZ=Australia/Brisbane
      - PUID=${PUID}
      - PGID=${PGID}
      - DB_HOST=${MDB_SERVER}
      - DB_NAME=${MDB_DATABASE}
      - DB_USER=${MDB_USER}
      - DB_PASSWORD=${MDB_PWD}
      - DB_TIMEOUT=60
    restart: always

  dispatcher:
    image: librenms/librenms:latest
    container_name: librenms_dispatcher
    hostname: librenms-dispatcher
    cap_add:
      - NET_ADMIN
      - NET_RAW
    depends_on:
      - librenms
      - redis
    volumes:
      - ./librenms:/data
    env_file:
      - ./librenms/librenms.env
    environment:
      - TZ=Australia/Brisbane
      - PUID=${PUID}
      - PGID=${PGID}
      - DB_HOST=${MDB_SERVER}
      - DB_NAME=${MDB_DATABASE}
      - DB_USER=${MDB_USER}
      - DB_PASSWORD=${MDB_PWD}
      - DB_TIMEOUT=60
      - DISPATCHER_NODE_ID=dispatcher1
      - SIDECAR_DISPATCHER=1
    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
    volumes:
      - ./librenms:/data
    env_file:
      - ./librenms/librenms.env
    environment:
      - TZ=Australia/Brisbane
      - PUID=${PUID}
      - PGID=${PGID}
      - DB_HOST=${MDB_SERVER}
      - DB_NAME=${MDB_DATABASE}
      - DB_USER=${MDB_USER}
      - DB_PASSWORD=${MDB_PWD}
      - DB_TIMEOUT=60
      - SIDECAR_SYSLOGNG=1
    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
    volumes:
      - ./librenms:/data
    env_file:
      - ./librenms/librenms.env
    environment:
      - TZ=Australia/Brisbane
      - PUID=${PUID}
      - PGID=${PGID}
      - DB_HOST=${MDB_SERVER}
      - DB_NAME=${MDB_DATABASE}
      - DB_USER=${MDB_USER}
      - DB_PASSWORD=${MDB_PWD}
      - DB_TIMEOUT=60
      - SIDECAR_SNMPTRAPD=1
    restart: always

  # --- End LibreNMS Services (uses remote DB) ---

.env

Create a file containing sensitive passwords

vi /root/.env
### LibreNMS

PUID=1000
PGID=1000

MDB_SERVER=my.servername.com
MDB_DATABASE=database_name
MDB_USER=username
MDB_PWD=password

### End Librenms

librenms folder

Make sure user and owner are 1000.

chown -R 1000:1000 /root/librenms/

commands

within container shell

docker exec -it librenms /bin/bash
lnms device:poll 12
lnms device:discover 12

from host

Poll

docker exec -it -u librenms librenms lnms device:poll 12

Discovery

docker exec -it -u librenms librenms lnms device:discover 12