news 2026/6/15 11:37:47

使用Docker Compose搭建LibreNMS网络监控系统

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用Docker Compose搭建LibreNMS网络监控系统

使用Docker Compose搭建LibreNMS网络监控系统

    • 引言
    • 一、什么是LibreNMS?
    • 二、为什么需要网络监控系统?
      • 1. **主动预警,防患未然**
      • 2. **快速定位问题**
      • 3. **容量规划和趋势分析**
      • 4. **满足合规要求**
    • 三、LibreNMS能解决什么问题?
    • 四、使用Docker Compose搭建LibreNMS
      • 1、环境准备
      • 2、搭建步骤详解
        • 步骤1:拉取镜像(从国内镜像加速)
        • 步骤2:安装Docker Compose
        • 步骤3:准备配置文件
        • 步骤4:修改配置文件
        • 步骤5:启动服务
        • 步骤6:扫描网络设备
    • 五、访问Web控制台
    • 六、常见问题排查
      • 1. 容器启动失败
      • 2. 无法发现设备
      • 3. 性能问题
    • 七、总结

引言

在当今复杂的网络环境中,无论是企业数据中心、云计算平台还是家庭实验室,都需要一套可靠的网络监控系统。下面介绍一款功能强大的开源网络监控工具——LibreNMS,并使用Docker Compose快速搭建一个完整的监控环境。

一、什么是LibreNMS?

LibreNMS是一个功能齐全的、基于PHP/MySQL的开源网络监控系统,它是Observium的一个分支,但采用完全开源的开发模式。LibreNMS能够自动发现网络中的设备(支持多种协议如SNMP),并提供详细的性能监控、警报通知和可视化报告功能。

简单来说,您可以把它想象成网络设备的"健康体检中心",它能持续监控您网络中所有设备(路由器、交换机、服务器等)的运行状态,并在出现问题时及时发出警报。

二、为什么需要网络监控系统?

1.主动预警,防患未然

网络故障往往不是突然发生的,而是有征兆的。监控系统可以提前发现CPU使用率过高、内存不足、网络拥塞等问题,让您在故障发生前采取行动。

2.快速定位问题

当网络出现问题时,LibreNMS能帮助您快速定位到具体是哪个设备、哪个端口、哪个服务出了问题,大大缩短故障排查时间。

3.容量规划和趋势分析

通过长期收集的性能数据,您可以了解设备的负载趋势,为未来的硬件升级和容量规划提供数据支持。

4.满足合规要求

许多行业标准(如ISO27001、等级保护)都要求对关键网络设备进行监控和日志记录。

三、LibreNMS能解决什么问题?

  1. 设备发现与管理:自动发现网络中的设备,并分类管理
  2. 性能监控:监控CPU、内存、磁盘、网络流量等关键指标
  3. 故障告警:通过邮件、Slack、Telegram等多种方式发送告警
  4. 可视化展示:提供直观的图表和仪表板展示监控数据
  5. 报表生成:自动生成日报、周报、月报等统计报表
  6. 配置管理:跟踪设备配置变更,支持配置备份

四、使用Docker Compose搭建LibreNMS

下面我们将使用Docker Compose来搭建LibreNMS,这种方法的最大优点是一键部署、环境隔离、易于维护

1、环境准备

首先确保您的系统已经安装了Docker。如果还没有安装,可以参考以下命令(以Ubuntu为例):

# 安装Dockersudoaptupdatesudoaptinstalldocker.io -y# 启动Docker服务并设置开机自启sudosystemctl startdockersudosystemctlenabledocker

2、搭建步骤详解

步骤1:拉取镜像(从国内镜像加速)

由于网络原因,我们从华为云镜像仓库拉取镜像,速度更快:

# 拉取并重命名MariaDB数据库镜像dockerpull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/mariadb:10dockertag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/mariadb:10 docker.io/library/mariadb:10# 拉取并重命名LibreNMS主程序镜像dockerpull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/librenms/librenms:26.1.1dockertag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/librenms/librenms:26.1.1 docker.io/librenms/librenms:latest# 拉取并重命名Redis缓存镜像dockerpull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:7.2-alpinedockertag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/redis:7.2-alpine docker.io/redis:7.2-alpine# 拉取并重命名邮件发送服务镜像dockerpull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/crazymax/msmtpd:latestdockertag swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/crazymax/msmtpd:latest docker.io/crazymax/msmtpd:latest

为什么需要这些组件?

  • MariaDB:存储监控数据、设备信息、用户配置等
  • Redis:作为缓存,提高系统性能
  • msmtpd:用于发送告警邮件
  • LibreNMS:主监控程序
步骤2:安装Docker Compose

Docker Compose是一个用于定义和运行多容器Docker应用的工具:

# 下载最新版Docker Composecurl-L"https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname-s)-$(uname-m)"-o /usr/local/bin/docker-compose# 添加执行权限chmod+x /usr/local/bin/docker-compose
步骤3:准备配置文件
# 创建项目目录mkdirlibrenmscdlibrenms# 下载LibreNMS Docker官方配置wgethttps://github.com/librenms/docker/archive/refs/heads/master.zipunzipmaster.zip# 进入示例配置目录cddocker-master/examples/compose
步骤4:修改配置文件

为了让LibreNMS有足够的权限执行网络发现等操作,我们需要修改配置文件:

sed-i'/^[[:space:]]*image:/a\ privileged: true'compose.yml

为什么要添加privileged: true
这个设置让容器内的进程拥有主机系统的特权,主要是为了:

  • 能够使用ICMP协议进行ping扫描
  • 能够执行网络发现和ARP扫描
  • 在某些环境下需要访问硬件信息

注意:在生产环境中,应该使用更精细化的权限控制,而不是直接给特权模式。

步骤5:启动服务
# 停止并移除已有的容器(如果是首次安装,这步没有影响)docker-composedown# 后台启动所有服务docker-composeup -d# 查看启动日志docker-composelogs
步骤6:扫描网络设备

等待所有容器启动完成后(通常需要1-2分钟),我们可以开始扫描网络中的设备:

# 进入LibreNMS容器dockerexec--user librenms -it librenms /bin/bash# 扫描网络中的设备(将10.10.0.0/16替换为您的网络段)python3 snmp-scan.py10.10.0.0/16 -t5--ping-fallback

参数解释:

  • 10.10.0.0/16:要扫描的网络段,请根据您的实际网络修改
  • -t 5:使用5个线程并行扫描
  • --ping-fallback:如果SNMP不可用,尝试使用ping发现设备

重要提示:被监控的设备需要开启SNMP服务。对于Linux服务器,可以这样安装和配置:

# Ubuntu/Debian系统sudoaptinstallsnmpd snmp -y systemctlenablesnmpd systemctl start snmpd systemctl status snmpd

五、访问Web控制台

所有服务启动后,您可以通过浏览器访问LibreNMS的Web界面:

http://<您的服务器IP地址>:8000

首次访问时,系统会引导您完成初始设置:

  1. 创建管理员账户
  2. 配置基本设置
  3. 添加监控设备

六、常见问题排查

1. 容器启动失败

  • 检查端口冲突:确保8000端口没有被其他程序占用
  • 检查日志:使用docker-compose logs查看详细错误信息
  • 检查磁盘空间:确保有足够的磁盘空间

2. 无法发现设备

  • 检查网络连通性:确保Docker主机能ping通目标设备
  • 检查SNMP配置:确保目标设备正确配置了SNMP
  • 检查防火墙:确保UDP 161端口(SNMP)是开放的

3. 性能问题

  • 调整扫描频率:避免过于频繁的扫描
  • 优化数据库:定期清理旧数据
  • 增加资源:为容器分配更多CPU和内存

七、总结

通过本文的指导,您已经成功搭建了一个功能完整的LibreNMS网络监控系统。这套系统不仅安装简单,而且功能强大,能够满足大多数网络监控需求。接下来,您可以:

  1. 添加更多设备:将网络中的路由器、交换机、服务器等设备都加入监控
  2. 配置告警规则:设置CPU、内存、磁盘等阈值告警
  3. 定制仪表板:创建个性化的监控仪表板
  4. 设置定期报告:让系统定期发送监控报告到您的邮箱

LibreNMS还有丰富的插件和API接口,您可以根据需要进一步扩展其功能。祝您使用愉快!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 12:41:33

从零到一:我的网络安全入门规划(网络/Web/系统安全方向详解)

1. 什么是网络安全&#xff1f; 简单来说&#xff0c;网络安全就像数字世界的“警察、保镖和保安系统”&#xff0c;它的核心是 保护计算机系统、网络、数据和信息免受攻击、破坏或未经授权的访问。 可以这样理解&#xff1a; 为什么需要&#xff1f; 就像你家需要锁、公司需…

作者头像 李华
网站建设 2026/6/15 12:40:33

python072-个性化推荐电影院vue3

目录 个性化推荐电影院系统的技术实现Vue 3 前端关键实现Python 推荐算法示例 开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 个性化推荐电影院系统的技术实现 技术栈组合 Python 后端&am…

作者头像 李华
网站建设 2026/5/27 17:50:23

python101-高校学生宿舍报修系统vue3

目录 系统概述核心功能模块技术实现要点扩展性与优化方向 开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 系统概述 Python101-高校学生宿舍报修系统基于Vue3前端框架开发&#xff0c;专为…

作者头像 李华
网站建设 2026/6/15 13:53:16

基于python的房屋租赁电器维修管理系统vue3

目录 系统概述核心功能模块技术栈亮点数据安全 开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 系统概述 该系统基于Python后端与Vue3前端构建&#xff0c;专为房屋租赁场景设计&#xff0…

作者头像 李华
网站建设 2026/6/15 16:32:27

珲春口碑好的烤肉哪家正宗

珲春口碑好的烤肉哪家正宗在珲春&#xff0c;烤肉是当地美食文化的重要组成部分&#xff0c;众多食客都在探寻正宗且口碑好的烤肉店。而延炭乳酸菌烤肉&#xff0c;无疑是珲春烤肉界的一颗璀璨明星。健康理念&#xff0c;别具一格延炭乳酸菌烤肉主打健康概念&#xff0c;与传统…

作者头像 李华
网站建设 2026/5/25 23:56:00

【收藏级】大模型Agent全解析:定义、组件、框架及实战应用指南

本文系统梳理大模型Agent的核心定义、关键特征、核心组件与标准工作流程&#xff0c;深入拆解LLM动态推理规划、工具模块、记忆模块三大核心单元的技术细节&#xff0c;同步分析当前行业面临的技术痛点与最新研究进展&#xff0c;盘点主流开源框架&#xff0c;结合医疗、教育等…

作者头像 李华