Install LibreNMS Docker

Install Docker Engine:

Download file Docker LibreNMS:

sudo mkdir -p /opt/docker/librenms
sudo chown -R $USER:$USER /opt/docker/librenms/
cd /opt/docker/librenms
wget https://github.com/librenms/docker/archive/refs/heads/master.zip
sudo apt install zip unzip -y
unzip master.zip
cd docker-master/examples/compose

Edit file librenms.env

nano /opt/docker/librenms/docker-master/examples/compose/librenms.env

Tambahkan baris berikut di paling bawah:

# Ditambahkan Manual
TZ=Asia/Jakarta
PUID=1000
PGID=1000

MYSQL_DATABASE=librenmsdb
MYSQL_USER=librenmsuser
MYSQL_PASSWORD=PasswordKuMantap

Sehingga menjadi seperti berikut:

MEMORY_LIMIT=256M
MAX_INPUT_VARS=1000
UPLOAD_MAX_SIZE=16M
OPCACHE_MEM_SIZE=128
REAL_IP_FROM=0.0.0.0/32
REAL_IP_HEADER=X-Forwarded-For
LOG_IP_VAR=remote_addr

CACHE_DRIVER=redis
SESSION_DRIVER=redis
REDIS_HOST=redis

LIBRENMS_SNMP_COMMUNITY=librenmsdocker

LIBRENMS_WEATHERMAP=false
LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * *

# Ditambahkan Manual
TZ=Asia/Jakarta
PUID=1000
PGID=1000

MYSQL_DATABASE=librenmsdb
MYSQL_USER=librenmsuser
MYSQL_PASSWORD=PasswordKuMantap

Edit file compose.yml

nano /opt/docker/librenms/docker-master/examples/compose/compose.yml

Pada bagian service librenms bagian volumes:

  librenms:
    image: librenms/librenms:latest
    container_name: librenms
    hostname: librenms
    cap_add:
      - NET_ADMIN
      - NET_RAW
    ports:
      - target: 8000
        published: 8000
        protocol: tcp
    depends_on:
      - db
      - redis
      - msmtpd
    volumes:
      - "./librenms:/data"
    env_file:
      - "./librenms.env"
    environment:
      - "TZ=${TZ}"
      - "PUID=${PUID}"
      - "PGID=${PGID}"
      - "DB_HOST=db"
      - "DB_NAME=${MYSQL_DATABASE}"
      - "DB_USER=${MYSQL_USER}"
      - "DB_PASSWORD=${MYSQL_PASSWORD}"
      - "DB_TIMEOUT=60"
    restart: always

Tambahkan baris berikut:

      - "./librenmsdockercron.sh:/opt/librenms/cronscript.sh"
      - "./import-cron.sh:/etc/cont-init.d/09-import-cron.sh"

Sehingga menjadi seperti berikut:

  librenms:
    image: librenms/librenms:latest
    container_name: librenms
    hostname: librenms
    cap_add:
      - NET_ADMIN
      - NET_RAW
    ports:
      - target: 8000
        published: 8000
        protocol: tcp
    depends_on:
      - db
      - redis
      - msmtpd
    volumes:
      - "./librenms:/data"
      - "./librenmsdockercron.sh:/opt/librenms/cronscript.sh"
      - "./import-cron.sh:/etc/cont-init.d/09-import-cron.sh"
    env_file:
      - "./librenms.env"
    environment:
      - "TZ=${TZ}"
      - "PUID=${PUID}"
      - "PGID=${PGID}"
      - "DB_HOST=db"
      - "DB_NAME=${MYSQL_DATABASE}"
      - "DB_USER=${MYSQL_USER}"
      - "DB_PASSWORD=${MYSQL_PASSWORD}"
      - "DB_TIMEOUT=60"
    restart: always

Buat file librenmsdockercron.sh

nano /opt/docker/librenms/docker-master/examples/compose/librenmsdockercron.sh

Masukkan baris berikut:

15 0 * * * cd /opt/librenms/ && bash daily.sh
*/5 * * * * php -f /opt/librenms/html/plugins/Weathermap/map-poller.php
33   */6  * * *   librenms    /opt/librenms/cronic /opt/librenms/discovery-wrapper.py 1
*/5  *    * * *   librenms    /opt/librenms/discovery.php -h new >> /dev/null 2>&1
*/5  *    * * *   librenms    /opt/librenms/cronic /opt/librenms/poller-wrapper.py 16
*    *    * * *   librenms    /opt/librenms/alerts.php >> /dev/null 2>&1
*/5  *    * * *   librenms    /opt/librenms/poll-billing.php >> /dev/null 2>&1
01   *    * * *   librenms    /opt/librenms/billing-calculate.php >> /dev/null 2>&1
*/5  *    * * *   librenms    /opt/librenms/check-services.php >> /dev/null 2>&1
* * * * * php /opt/librenms/artisan schedule:run

Buat file import-cron.sh

nano /opt/docker/librenms/docker-master/examples/compose/import-cron.sh

Masukkan baris berikut:

#!/bin/sh
# Import cronjob
crontab -u librenms /opt/librenms/cronscript.sh

Jalankan pakai sudo/user root agar validate scheduler VALID, untuk selanjutnya silakan pakai user biasa pun tidak masalah:

sudo docker compose up -d

Akses WebUI

IP-ADDRESS:8000

Lakukan pembuatan user admin dan pemilihan theme default lalu Selesai.

Sumber & Referensi:

https://docs.librenms.org/Installation/Docker/

https://community.librenms.org/t/docker-container-install-scheduler-not-running-and-servername/21835/3