Synology 使用Docker架設LibreNMS
運行環境
- DSM 7.2
安裝LibreNMS
確認已安裝Portainer,在docker內新增資料夾librenms並且在裡面分別新增data、db、redis資料夾
修改資料夾權限使docker能夠寫入執行
chmod 755 /volume1/docker/librenms -R
進入Portainer,點選堆棧(Stack),並添加堆棧
名稱填寫librenms,並貼到編輯器中,指令內PUID和PGID於Shell內執行id並自行替換
user1@synology:~$ id
uid=1026(user1) gid=100(users)
services:
db:
image: mariadb:11.4-noble #LTS Long Time Support Until May 29, 2029.
container_name: LibreNMS-DB
command:
- mariadbd
- --innodb-file-per-table=1
- --lower-case-table-names=0
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- /volume1/docker/librenms/db:/var/lib/mysql:rw
environment:
TZ: Asia/Taipei
MARIADB_RANDOM_ROOT_PASSWORD: yes
MARIADB_DATABASE: librenms
MARIADB_USER: librenmsuser
MARIADB_PASSWORD: librenmspass
restart: on-failure:5
redis:
image: redis:7.2-alpine
container_name: LibreNMS_REDIS
healthcheck:
test: ["CMD-SHELL", "redis-cli ping || exit 1"]
volumes:
- /volume1/docker/librenms/redis:/data:rw
environment:
TZ: Asia/Taipei
restart: on-failure:5
librenms:
image: librenms/librenms:latest
container_name: LibreNMS
healthcheck:
test: ["CMD-SHELL", "nc -z 127.0.0.1 8000 || exit 1"]
interval: 10s
timeout: 5s
retries: 3
start_period: 90s
hostname: librenms
cap_add:
- NET_ADMIN
- NET_RAW
ports:
- target: 8000
published: 28083
protocol: tcp
depends_on:
- db
- redis
volumes:
- /volume1/docker/librenms/data:/data:rw
environment:
TZ: Asia/Taipei
PUID: 1026
PGID: 100
SESSION_SECURE_COOKIE: true
DB_HOST: db
DB_NAME: librenms
DB_USER: librenmsuser
DB_PASSWORD: librenmspass
DB_TIMEOUT: 120
MEMORY_LIMIT: 512M
MAX_INPUT_VARS: 1000
UPLOAD_MAX_SIZE: 128M
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: "0 0 */2 * * *" # Schedule WeatherMAP every 2 hours
restart: on-failure:5
dispatcher:
image: librenms/librenms:latest
container_name: LibreNMS-DISPATCHER
hostname: librenms-dispatcher
cap_add:
- NET_ADMIN
- NET_RAW
depends_on:
- librenms
- redis
volumes:
- /volume1/docker/librenms/data:/data:rw
environment:
TZ: Asia/Taipei
PUID: 1026
PGID: 100
DB_HOST: db
DB_NAME: librenms
DB_USER: librenmsuser
DB_PASSWORD: librenmspass
DB_TIMEOUT: 120
DISPATCHER_NODE_ID: dispatcher1
SIDECAR_DISPATCHER: 1
MEMORY_LIMIT: 512M
MAX_INPUT_VARS: 1000
UPLOAD_MAX_SIZE: 128M
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: "0 0 */2 * * *" # Schedule WeatherMAP every 2 hours
restart: on-failure:5
syslogng:
image: librenms/librenms:latest
container_name: LibreNMS_SYSLOGNG
hostname: librenms-syslogng
healthcheck:
test: ["CMD-SHELL", "nc -z 127.0.0.1 514 || exit 1"]
interval: 10s
timeout: 5s
retries: 3
start_period: 90s
cap_add:
- NET_ADMIN
- NET_RAW
depends_on:
- librenms
- redis
ports:
- target: 514
published: 514
protocol: tcp
- target: 514
published: 514
protocol: udp
volumes:
- /volume1/docker/librenms/data:/data:rw
environment:
TZ: Asia/Taipei
PUID: 1026
PGID: 100
DB_HOST: db
DB_NAME: librenms
DB_USER: librenmsuser
DB_PASSWORD: librenmspass
DB_TIMEOUT: 120
SIDECAR_SYSLOGNG: 1
MEMORY_LIMIT: 512M
MAX_INPUT_VARS: 1000
UPLOAD_MAX_SIZE: 128M
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: "0 0 */2 * * *" # Schedule WeatherMAP every 2 hours
restart: on-failure:5
snmptrapd:
image: librenms/librenms:latest
container_name: LibreNMS_SNMPTRAPD
healthcheck:
test: ["CMD-SHELL", "nc -z 127.0.0.1 162 || exit 1"]
interval: 10s
timeout: 5s
retries: 3
start_period: 90s
hostname: librenms-snmptrapd
cap_add:
- NET_ADMIN
- NET_RAW
depends_on:
- librenms
- redis
ports:
- target: 162
published: 162
protocol: tcp
- target: 162
published: 162
protocol: udp
volumes:
- /volume1/docker/librenms/data:/data:rw
environment:
TZ: Asia/Taipei
PUID: 1026
PGID: 100
DB_HOST: db
DB_NAME: librenms
DB_USER: librenmsuser
DB_PASSWORD: librenmspass
DB_TIMEOUT: 120
SIDECAR_SNMPTRAPD: 1
MEMORY_LIMIT: 512M
MAX_INPUT_VARS: 1000
UPLOAD_MAX_SIZE: 128M
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: "0 0 */2 * * *" # Schedule WeatherMAP every 2 hours
restart: on-failure:5
scheduler:
image: librenms/librenms:latest
container_name: LibreNMS_scheduler
volumes:
- /volume1/docker/librenms/data:/data:rw # 請與主容器掛載的路徑一致
environment:
- SIDECAR_CRON=1
- DB_HOST=db
- DB_NAME=librenms
- DB_USER=librenmsuser
- DB_PASSWORD=librenmspass
- PUID=1026
- PGID=100
- TZ=Asia/Taipei
depends_on:
- db
- redis
- librenms
restart: on-failure:5
部屬堆棧
成功後右上角應會顯示堆棧部署成功
等待幾分鐘安裝,確認所有服務已經執行
輸入IP和設定的PORT,例如http://Synology IP:28083,進入LibreNMS 安裝頁面
建立管理員後完成安裝
若出現419 Page Expired先清除快取
點選LibreNMS容器並進入終端
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
重新整理網頁後再次登入
若輸入網址後直接跳過安裝頁面到登入畫面請手動新增使用者
點選LibreNMS容器並進入終端新增使用者
lnms user:add --role=admin user1
重新整理網頁後再次登入
進行組態驗證確認無錯誤設定,若有依照建議修正
開始監控Synology設備
開啟SNMP功能
LibreNMS新增Synology設備,輸入IP和community
查看已新增的設備














No comments to display
No comments to display