LibreNMS 是一个免费开源的网络监控和自动化工具,用于监视网络设备、服务器和应用程序的性能和状态。它提供了一个集中的管理平台,帮助管理员实时监控和管理整个网络基础设施。
以下是 LibreNMS 的一些主要特点和功能:
详细可以查看我之前发的博客:无桌面版docker在Ubuntu系统上安装
sudo curl -SL https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
可以选择下载上述二进制文件,到制定目录。因为比较慢,所以建议可以直接通过科学上网手段加快速度。也可以打开https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64下载到指定位置之后/usr/local/bin/,更改文件名为docker-compose
下载完之后需要将可执行权限应用于安装目标路径中的独立二进制文件。
sudo chmod +x /usr/local/bin/docker-compose
关于libreNMS的docker安装可以参见官网:Docker - LibreNMS Docs
关于其中的参数说明可以参见:GitHub - librenms/docker: LibreNMS Docker image
如果你对docker的流程十分熟悉,那么看上面两个网页可以完全自行完成安装。
如果你不是很熟悉docker,那么请看下面的详细教程:
从docker官方镜像(https://hub.docker.com/r/librenms/librenms)获取镜像:
docker pull librenms/librenms
可以从github上拉去镜像,并且进入他的docker compose示例目录中去:
git clone https://github.com/librenms/docker.git
cd ./examples/compose # 进入docker compose示例文件夹
然后可以看见里面有以下几个文件,在linux中可以使用ls来查看,.env文件会自动隐藏,但是他是存在的:
用你喜欢的编辑器打开.env文件
TZ=Europe/Paris
PUID=1000
PGID=1000
MYSQL_DATABASE=librenms
MYSQL_USER=librenms
MYSQL_PASSWORD=asupersecretpassword
我们需要再这里修改自己的mysql数据库还有时区(TZ),关于这几个参数
如果你没有新建自己的MySQL数据库则不需要更改,如果你已经有了mysql数据库,则要匹配到自己mysql数据库的用户名和密码。
时区建议修改为Asia/Shanghai
name: librenms
services:
db:
image: mariadb:10.5
container_name: librenms_db
command:
- "mysqld"
- "--innodb-file-per-table=1"
- "--lower-case-table-names=0"
- "--character-set-server=utf8mb4"
- "--collation-server=utf8mb4_unicode_ci"
volumes:
- "./db:/var/lib/mysql"
environment:
- "TZ=${TZ}"
- "MYSQL_ALLOW_EMPTY_PASSWORD=yes"
- "MYSQL_DATABASE=${MYSQL_DATABASE}"
- "MYSQL_USER=${MYSQL_USER}"
- "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
restart: always
redis:
image: redis:5.0-alpine
container_name: librenms_redis
environment:
- "TZ=${TZ}"
restart: always
msmtpd:
image: crazymax/msmtpd:latest
container_name: librenms_msmtpd
env_file:
- "./msmtpd.env"
restart: always
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
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.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"
- "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:
- target: 514
published: 514
protocol: tcp
- target: 514
published: 514
protocol: udp
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"
- "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:
- target: 162
published: 162
protocol: tcp
- target: 162
published: 162
protocol: udp
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"
- "SIDECAR_SNMPTRAPD=1"
restart: always
如果你已经有自己的redis也需要对自己的redis参数进行修改,其余的几乎不需要更改,但是需要将所有的DB_HOST参数修改为自己的主机ip。
关于详细的参数配置可以查看这个网站https://github.com/librenms/docker/tree/master里的说明。
剩下的两个文件几乎不需要更改,保留即可。
在your_path/examples/compose目录下,输入以下命令,启动docker-container
sudo docker compose up -d
如果已经成功运行,你可以输入http://localhost:8000,访问librenms UI界面。
应该会需要创建用户,如果没有创建用户环节,则默认密码和账户都是librenms。如果需要更改,可以在个人设置里修改自己的密码。