使用Docker快速部署LibreNMS
LibreNMS
简介
LibreNMS 是一款功能强大的开源网络监控系统,基于 SNMP 协议,支持自动发现网络设备并收集性能数据。
官方网站:https://www.librenms.org/
官方文档:https://docs.librenms.org/
官方下载:https://www.librenms.org/#downloads
Github地址:https://github.com/librenms/librenms/
默认服务端口:8000
Docker部署
官方文档地址:https://docs.librenms.org/Installation/Docker/
安装Docker
下载对应的软件包
docker官方历史版本下载:https://download.docker.com/linux/static/stable/
Docker-compose Github地址:https://github.com/docker/compose/releases/tag/v2.39.2
wget https://download.docker.com/linux/static/stable/x86_64/docker-28.0.4.tgz
wget https://github.com/docker/compose/releases/download/v2.39.2/docker-compose-linux-x86_64
安装docker&&Docker-compose
tar -zxvf docker-28.0.4.tgz
chmod +x docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 docker-compose-linux
mv docker/* /usr/bin/
配置服务项
vim /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock --selinux-enabled=false --default-ulimit nofile=65536:65536
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
启动docker
systemctl daemon-reload
systemctl enable docker
systemctl start docker
docker -v
LibreNMS部署
下载官方composer files
mkdir /opt/librenms && cd /opt/librenms
wget https://github.com/librenms/docker/archive/refs/heads/master.zip
unzip master.zip
cd docker-master/examples/compose
docker镜像下载
查看编排用到的镜像
root@ubuntu:/opt/docker-master/examples/compose# cat compose.yml | grep image
image: mariadb:10
image: redis:7.2-alpine
image: crazymax/msmtpd:latest
image: librenms/librenms:latest
image: librenms/librenms:latest
image: librenms/librenms:latest
image: librenms/librenms:latest
docker在没有配置镜像加速的情况下,直接拉容器会报镜像下载的错误
root@ubuntu:/opt/docker-master/examples/compose# docker-compose up -d
[+] Running 7/7
✘ msmtpd Error Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection... 15.1s
✘ syslogng Error Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connecti... 15.1s
✘ snmptrapd Error Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connect... 15.1s
✘ db Error Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Cl... 15.1s
✘ librenms Error Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connecti... 15.1s
✘ dispatcher Error Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connec... 15.1s
✘ redis Error Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection ... 15.1s
推荐一个国内的镜像加速网站,可以直接针对单个镜像镜像下载
https://docker.aityp.com/
例如下载librenms镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/librenms/librenms:latest
部署运行
调整时区和数据库账号密码,设置为中国上海时区即东八区Asia/Shanghai
,其他参数按需求调整
vim .env
TZ=Asia/Shanghai
PUID=1000
PGID=1000
MYSQL_DATABASE=librenms
MYSQL_USER=librenms
MYSQL_PASSWORD=asupersecretpassword
启动容器
sudo docker compose -f compose.yml up -d
待容器启动后,浏览器直接访问:http://IP:8000/
配置验证
首次访问需要创建账号密码,根据自己需求创建即可,进入系统后先进行配置验证,以便于后续使用,使用docker部署会出现两个错误❌,都比较简单解决,可以参考下解决方法:
- 问题1:
FAIL: Scheduler is not running
Fix:sudo cp /opt/librenms/dist/librenms-scheduler.cron /etc/cron.d/
在网上查了很久都没有找到解决方法,然后看了一下是关于定时任务的,那么定时任务肯定就和时间有关系,于是把系统的时区和时间与容器的设置为一致,再次重建容器
root@ubuntu:~/docker-master/examples/compose# timedatectl show
Timezone=Etc/UTC
LocalRTC=no
CanNTP=yes
NTP=yes
NTPSynchronized=yes
TimeUSec=Tue 2025-08-26 12:43:07 UTC
RTCTimeUSec=Tue 2025-08-26 12:43:07 UTC
root@ubuntu:~/docker-master/examples/compose# timedatectl set-timezone Asia/Shanghai
root@ubuntu:~/docker-master/examples/compose# timedatectl show
Timezone=Asia/Shanghai
LocalRTC=no
CanNTP=yes
NTP=yes
NTPSynchronized=yes
TimeUSec=Tue 2025-08-26 20:43:44 CST
RTCTimeUSec=Tue 2025-08-26 20:43:44 CST
重建容器
root@ubuntu:~/docker-master/examples/compose# docker-compose down && docker-compose up -d
重建后错误解决✔
- 问题2:
WARN: base_url could be more specific Fix: lnms config:set base_url
根据当前访问的URL配置下,Global Setting
->System
->Server
->Base URL
填写http://IP:8000
,即可解决