当前位置: 首页 > news >正文

使用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接口,您可以根据需要进一步扩展其功能。祝您使用愉快!

http://www.jsqmd.com/news/293991/

相关文章:

  • 从零到一:我的网络安全入门规划(网络/Web/系统安全方向详解)
  • 【万字解析】网络安全是什么?学完能拿多少?保姆级学习路线+避坑指南
  • 分析北京学校家具生产企业,北京饰界华丰教育科技有限公司性价比如何?
  • 闲置沃尔玛购物卡别放着!不花心思打理真的会亏,快来回收处理吧
  • 2026古筝新手攻略:入门级古筝全面评测推荐,瑶鸾古筝Y106系列/瑶鸾古筝Y103系列(星辰),古筝实力厂家口碑推荐
  • AI绘画2024年趋势分析:NewBie-image-Exp0.1开源模型+弹性GPU部署
  • 企业展厅设计公司哪家好,盛世笔特的全流程服务值得选吗
  • 批量处理太慢?Live Avatar高效生成脚本分享
  • 昆明售后完善的装修公司怎么选?欢乐佳园是靠谱之选
  • multisim14.3下载安装:新手入门必看的完整指南
  • 2026年佛山、广州等地信誉好的抖店代运营公司推荐排名
  • 2026年重庆热门人造雾设备公司排名,锦胜雾森公司概况靠谱规模大!
  • 2026年叔丁醇钾供应企业,叔丁醇钾哪家好?
  • 想当白帽黑客?揭秘网络安全六大高薪岗位与进阶路径(附资源)
  • 基于自适应动态规划的Leader-Following仿真实现
  • 荣耀Android开发面试题及参考答案 - 详解
  • 2026年泳池除湿解决方案:聚焦口碑服务机构,泳池除湿机怎么选技术领航者深度解析
  • STM32知识小结
  • python111-学生在线报名考试管理系统vue3
  • python127-数字中药材资源共享平台vue3
  • python071- 基于智慧校园的大学生综合能力测评系统vue3
  • python072-个性化推荐电影院vue3
  • python081宠物医院门诊管理系统vue3
  • 【毕业设计】基于springboot的运动用品商城系统(源码+文档+远程调试,全bao定制等)
  • python088酒店宾馆客房管理系统设计与实现vue3
  • python090牧民牲畜画像畜牧业养殖数据可视化分析系统vue3
  • python Web的房屋租赁租房管理系统vue3
  • 从夯到拉,锐评大模型岗位|小白程序员必收藏学习指南
  • python070-房屋租赁系统vue3
  • P2324 [SCOI2005] 骑士精神