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