群晖NASDocker部署Smokeping打造家庭网络质量监测中心当家庭宽带接入设备超过20台4K视频频繁卡顿当远程办公时VPN连接时断时续当海外VPS的延迟波动影响工作效率——这些场景背后都隐藏着网络质量的问题。Smokeping作为网络性能监测领域的心电图仪能以分钟级精度捕捉网络抖动、丢包和延迟变化而群晖NAS的Docker部署方案让这一切变得触手可及。本文将带你用最简配置搭建专业级网络监测系统覆盖从内网智能家居到海外节点的全方位监控。1. 为什么选择群晖Docker方案传统网络监控工具通常需要单独服务器和复杂配置而群晖NASDocker的组合提供了三大独特优势资源利用率优化相比虚拟机方案容器化部署内存占用减少60%以上。实测显示基础配置的Smokeping容器仅消耗约80MB内存这对DS220j等入门级群晖机型尤为重要。一键恢复机制通过Docker的volume持久化设计即使容器意外停止所有历史监测数据都能完整保留。我曾遇到过群晖系统升级导致容器服务中断的情况只需重新启动容器所有配置和数据立即恢复如初。扩展灵活性Docker版天然支持多实例运行。可以同时部署两个Smokeping实例分别监控电信和联通线路这在多WAN口路由环境中特别实用。技术参数对比表部署方式内存占用配置复杂度数据持久化多实例支持物理机直接安装200MB高依赖手动备份困难虚拟机部署1GB中依赖快照中等群晖Docker80MB左右低自动持久化简单提示DSM7.0及以上系统建议使用Container Manager替代老旧的Docker套件可获得更好的资源管理界面。2. 十分钟快速部署指南2.1 容器配置关键步骤使用linuxserver/smokeping镜像时这三个挂载点决定系统可靠性/docker/smokeping/config - /config /docker/smokeping/data - /data /docker/smokeping/alert - /var/www/smokeping/alert端口映射建议采用非标准端口避免冲突例如将容器内80端口映射到宿主机的8580端口。环境变量设置中时区参数TZAsia/Shanghai必须准确否则会导致图表时间戳错乱。一个完整的docker-compose.yml示例version: 3 services: smokeping: image: linuxserver/smokeping:latest container_name: smokeping environment: - PUID1026 - PGID100 - TZAsia/Shanghai volumes: - /volume1/docker/smokeping/config:/config - /volume1/docker/smokeping/data:/data - /volume1/docker/smokeping/alert:/var/www/smokeping/alert ports: - 8580:80 restart: unless-stopped2.2 首次访问故障排查部署完成后若无法访问Web界面按此流程检查在群晖控制面板→网络→DSM设置中确认8580端口已添加至允许列表通过SSH登录群晖运行sudo docker logs smokeping查看容器日志检查config目录权限确保PUID/PGID对应的用户有读写权限常见错误解决方案403 Forbidden通常是/var/www/smokeping目录权限问题执行chmod 775 alert空白页面检查config目录是否包含完整的配置文件模板3. 多场景监控配置实战3.1 家庭内网设备监控在Targets配置文件中添加智能家居设备段 HomeNetwork menu 家庭网络 title 智能设备连通性监测 probe FPing IoT_Devices menu 物联网设备 title 主要智能家居节点 host /HomeNetwork/IoT_Devices/gateway /HomeNetwork/IoT_Devices/nas /HomeNetwork/IoT_Devices/camera1 gateway menu 中枢网关 title 米家多功能网关 host 192.168.1.1 alerts lossdetect nas menu 存储服务器 title 群晖DS920 host 192.168.1.2 alerts rttdetect camera1 menu 安防摄像头 title 客厅摄像头 host 192.168.1.3 alerts lossdetect3.2 跨境链路质量监测针对海外VPS的监控需要特殊配置在Probes文件中增加TCPPing探针*** Probes *** FPing binary /usr/bin/fping packetinterval 0.5 TCPPing binary /usr/bin/tcpping port 443 timeout 4配置目标时指定TCPPing探针 Cloudflare_CDN menu Cloudflare节点 title 香港CDN节点 host 104.16.132.229 probe TCPPing alerts rttdetect3.3 多WAN口负载监控对于使用双宽带接入的家庭可以创建对比监测组 MultiWAN menu 多线路对比 title 电信/联通双线质量 probe FPing Telecom menu 电信线路 title PPPoE_1 host 114.114.114.114 Unicom menu 联通线路 title PPPoE_2 host 119.29.29.29配合Cron定时任务每天生成线路质量报告0 8 * * * docker exec smokeping /usr/bin/smokeping_cgi /data /volume1/docker/smokeping/reports/daily_$(date \%Y\%m\%d).html4. 高级配置与可视化优化4.1 报警阈值智能调整修改Alerts文件实现动态告警*** Alerts *** to your_emailexample.com from smokepingyourdomain.com weekday_rtt type rtt pattern 100,100,100,100,100,150,150,150 comment 工作日白天阈值 edgetrigger yes weekend_rtt type rtt pattern 150,150,150,150,150,200,200,200 comment 周末宽松阈值 edgetrigger yes4.2 移动端适配方案通过修改/var/www/smokeping/css/smokeping.css实现响应式布局media (max-width: 768px) { body { font-size: 0.8em; } .timelegend { transform: rotate(45deg); } .menuitem { padding: 2px 5px; } }4.3 数据自动清理策略在config文件中配置RRD存储策略*** Database *** step 300 pings 20 # 保留策略5分钟精度存7天30分钟精度存1月2小时精度存1年 rrdlen 17568 rrdmin 0.5 rrdmax 1000配合群晖的Task Scheduler设置每月清理任务find /volume1/docker/smokeping/data/ -name *.rrd -mtime 365 -exec rm {} \;5. 典型问题解决方案当发现监控图表出现异常直线时通常意味着探测进程异常。通过SSH进入容器排查docker exec -it smokeping /bin/bash /usr/bin/fping -v # 检查FPing是否正常工作 ps aux | grep smokeping # 查看主进程状态针对常见DNS解析问题可以修改config中的DNS配置echo nameserver 223.5.5.5 /etc/resolv.conf echo nameserver 8.8.4.4 /etc/resolv.conf对于需要监控HTTPS服务的场景推荐使用cURL探针*** Probes *** CurlProbe binary /usr/bin/curl timeout 5 step 60 offset 50%将Smokeping数据接入Grafana的方案安装grafana-rrd-server插件配置数据源指向/docker/smokeping/data目录导入官方仪表板模板ID 13659
保姆级教程:用Docker在群晖NAS上部署Smokeping,监控你的VPS和家庭网络
发布时间:2026/5/16 13:10:17
群晖NASDocker部署Smokeping打造家庭网络质量监测中心当家庭宽带接入设备超过20台4K视频频繁卡顿当远程办公时VPN连接时断时续当海外VPS的延迟波动影响工作效率——这些场景背后都隐藏着网络质量的问题。Smokeping作为网络性能监测领域的心电图仪能以分钟级精度捕捉网络抖动、丢包和延迟变化而群晖NAS的Docker部署方案让这一切变得触手可及。本文将带你用最简配置搭建专业级网络监测系统覆盖从内网智能家居到海外节点的全方位监控。1. 为什么选择群晖Docker方案传统网络监控工具通常需要单独服务器和复杂配置而群晖NASDocker的组合提供了三大独特优势资源利用率优化相比虚拟机方案容器化部署内存占用减少60%以上。实测显示基础配置的Smokeping容器仅消耗约80MB内存这对DS220j等入门级群晖机型尤为重要。一键恢复机制通过Docker的volume持久化设计即使容器意外停止所有历史监测数据都能完整保留。我曾遇到过群晖系统升级导致容器服务中断的情况只需重新启动容器所有配置和数据立即恢复如初。扩展灵活性Docker版天然支持多实例运行。可以同时部署两个Smokeping实例分别监控电信和联通线路这在多WAN口路由环境中特别实用。技术参数对比表部署方式内存占用配置复杂度数据持久化多实例支持物理机直接安装200MB高依赖手动备份困难虚拟机部署1GB中依赖快照中等群晖Docker80MB左右低自动持久化简单提示DSM7.0及以上系统建议使用Container Manager替代老旧的Docker套件可获得更好的资源管理界面。2. 十分钟快速部署指南2.1 容器配置关键步骤使用linuxserver/smokeping镜像时这三个挂载点决定系统可靠性/docker/smokeping/config - /config /docker/smokeping/data - /data /docker/smokeping/alert - /var/www/smokeping/alert端口映射建议采用非标准端口避免冲突例如将容器内80端口映射到宿主机的8580端口。环境变量设置中时区参数TZAsia/Shanghai必须准确否则会导致图表时间戳错乱。一个完整的docker-compose.yml示例version: 3 services: smokeping: image: linuxserver/smokeping:latest container_name: smokeping environment: - PUID1026 - PGID100 - TZAsia/Shanghai volumes: - /volume1/docker/smokeping/config:/config - /volume1/docker/smokeping/data:/data - /volume1/docker/smokeping/alert:/var/www/smokeping/alert ports: - 8580:80 restart: unless-stopped2.2 首次访问故障排查部署完成后若无法访问Web界面按此流程检查在群晖控制面板→网络→DSM设置中确认8580端口已添加至允许列表通过SSH登录群晖运行sudo docker logs smokeping查看容器日志检查config目录权限确保PUID/PGID对应的用户有读写权限常见错误解决方案403 Forbidden通常是/var/www/smokeping目录权限问题执行chmod 775 alert空白页面检查config目录是否包含完整的配置文件模板3. 多场景监控配置实战3.1 家庭内网设备监控在Targets配置文件中添加智能家居设备段 HomeNetwork menu 家庭网络 title 智能设备连通性监测 probe FPing IoT_Devices menu 物联网设备 title 主要智能家居节点 host /HomeNetwork/IoT_Devices/gateway /HomeNetwork/IoT_Devices/nas /HomeNetwork/IoT_Devices/camera1 gateway menu 中枢网关 title 米家多功能网关 host 192.168.1.1 alerts lossdetect nas menu 存储服务器 title 群晖DS920 host 192.168.1.2 alerts rttdetect camera1 menu 安防摄像头 title 客厅摄像头 host 192.168.1.3 alerts lossdetect3.2 跨境链路质量监测针对海外VPS的监控需要特殊配置在Probes文件中增加TCPPing探针*** Probes *** FPing binary /usr/bin/fping packetinterval 0.5 TCPPing binary /usr/bin/tcpping port 443 timeout 4配置目标时指定TCPPing探针 Cloudflare_CDN menu Cloudflare节点 title 香港CDN节点 host 104.16.132.229 probe TCPPing alerts rttdetect3.3 多WAN口负载监控对于使用双宽带接入的家庭可以创建对比监测组 MultiWAN menu 多线路对比 title 电信/联通双线质量 probe FPing Telecom menu 电信线路 title PPPoE_1 host 114.114.114.114 Unicom menu 联通线路 title PPPoE_2 host 119.29.29.29配合Cron定时任务每天生成线路质量报告0 8 * * * docker exec smokeping /usr/bin/smokeping_cgi /data /volume1/docker/smokeping/reports/daily_$(date \%Y\%m\%d).html4. 高级配置与可视化优化4.1 报警阈值智能调整修改Alerts文件实现动态告警*** Alerts *** to your_emailexample.com from smokepingyourdomain.com weekday_rtt type rtt pattern 100,100,100,100,100,150,150,150 comment 工作日白天阈值 edgetrigger yes weekend_rtt type rtt pattern 150,150,150,150,150,200,200,200 comment 周末宽松阈值 edgetrigger yes4.2 移动端适配方案通过修改/var/www/smokeping/css/smokeping.css实现响应式布局media (max-width: 768px) { body { font-size: 0.8em; } .timelegend { transform: rotate(45deg); } .menuitem { padding: 2px 5px; } }4.3 数据自动清理策略在config文件中配置RRD存储策略*** Database *** step 300 pings 20 # 保留策略5分钟精度存7天30分钟精度存1月2小时精度存1年 rrdlen 17568 rrdmin 0.5 rrdmax 1000配合群晖的Task Scheduler设置每月清理任务find /volume1/docker/smokeping/data/ -name *.rrd -mtime 365 -exec rm {} \;5. 典型问题解决方案当发现监控图表出现异常直线时通常意味着探测进程异常。通过SSH进入容器排查docker exec -it smokeping /bin/bash /usr/bin/fping -v # 检查FPing是否正常工作 ps aux | grep smokeping # 查看主进程状态针对常见DNS解析问题可以修改config中的DNS配置echo nameserver 223.5.5.5 /etc/resolv.conf echo nameserver 8.8.4.4 /etc/resolv.conf对于需要监控HTTPS服务的场景推荐使用cURL探针*** Probes *** CurlProbe binary /usr/bin/curl timeout 5 step 60 offset 50%将Smokeping数据接入Grafana的方案安装grafana-rrd-server插件配置数据源指向/docker/smokeping/data目录导入官方仪表板模板ID 13659