用Speedtest-Tracker跟踪上网速度

什么是 Speedtest-Tracker ?

Speedtest-Tracker 每小时运行一次 speedtest 检查,并将结果绘制成图表。后端使用 Laravel 编写,前端使用 React。它使用 Ooklaspeedtest cli 包获取数据,并使用 Chart.js 绘制结果。

从功能上看和老苏之前介绍的 『 docker-speedtest-analyser 』差不多。

但也有自己的特点:

  • 每小时自动运行一次速度测试
  • x 天前的速度测试图表
  • JSON/CSV 格式备份/恢复数据
  • Slack/Discord/Telegram 通知
  • healthchecks.io 集成
  • Organizr 整合
  • InfluxDB 集成(目前仅 v1v2 WIP

不过老苏不建议你安装,原因是:

  • 镜像启动时,会从网上下载文件,存在失败的可能,也可能时间会比较长;
  • 镜像有一年没更新了,而且最后一个版本存在少文件的问题(不知道是不是因为涉及版权问题,所以没把 Speedtest CLI 文件打入镜像),如果不会命令行操作的,很可能跑不起来;

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 speedtest-tracker ,选择第一个 henrywhitaker3/speedtest-tracker,版本选择 latest

docker 文件夹中,创建一个新文件夹 speedtest-tracker,并在其中建一个子文件夹 config

文件夹装载路径说明
docker/speedtest-tracker/config/config存放设置

端口

本地端口不冲突就行,不确定的话可以用命令查一下

# 查看端口占用
netstat -tunlp | grep 端口号
本地端口容器端口
876580

两个端口留一个就可以了,不用的端口可以删掉,免得占用资源。老苏只留了 80 端口

环境

可变
TZ默认设为 Asia/Shanghai
OOKLA_EULA_GDPR默认设为true

因为使用了第三方的测速软件,所以需要同意最终用户协议( EULA ),如果不设置 OOKLA_EULA_GDPR=true,容器将不会启动。

在这里插入图片描述

当然参数不止这一个,更多的请看:https://github.com/henrywhitaker3/Speedtest-Tracker#parameters

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

# 新建文件夹 speedtest-tracker 和 子目录
mkdir -p /volume2/docker/speedtest-tracker/config

# 进入 speedtest-tracker 目录
cd /volume2/docker/speedtest-tracker

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name speedtest-tracker \
   -p 8765:80 \
   -v $(pwd)/config:/config \
   -e OOKLA_EULA_GDPR=true \
   -e TZ=Asia/Shanghai \
   henrywhitaker3/speedtest-tracker

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

version: '3.3'

services:
    speedtest:
        container_name: speedtest-tracke
        image: henrywhitaker3/speedtest-tracker
        ports:
            - 8765:80
        volumes:
            - ./config:/config
        environment:
            - TZ=Asia/Shanghai
            - PGID=1000
            - PUID=1000
            - OOKLA_EULA_GDPR=true
        logging:
            driver: "json-file"
            options:
                max-file: "10"
                max-size: "200k"
        restart: unless-stopped

然后执行下面的命令,在 portainer 中执行也是可以的

# 新建文件夹 speedtest-tracker 和 子目录
mkdir -p /volume2/docker/speedtest-tracker/config

# 进入 speedtest-tracker 目录
cd /volume2/docker/speedtest-tracker

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8765 ,如果你直接打开,很可能看到的不是主界面,而是下面👇的错误,但不要担心,先看看日志

在这里插入图片描述

能看到容器有下载更新的动作,所以这个时间可能会比较长,要有耐心。

老苏估计要看到这两个提示才行

再刷新页面,应该可以看到主界面了

在这里插入图片描述

问题

但是实际上老苏还是一直测速不成功,查看日志,发现失败时出现了 sh: /config/www/app/Bin/speedtest: not found,显然是缺少文件导致的

在这里插入图片描述

当然老苏不是第一个遇到这个问题的,肯定也不是会是最后一个(因为这货已经一年没更新了)。Issues 中有人给出了解决办法:https://github.com/henrywhitaker3/Speedtest-Tracker/issues/855

执行下面的命令:

  • 第一步、下载 Speedtest CLI 文件
# 进入 Bin 目录
cd /volume2/docker/speedtest-tracker/config/www/app/Bin

# 下载  Speedtest CLI 包
wget https://install.speedtest.net/app/cli/ookla-speedtest-1.0.0-x86_64-linux.tgz -O speedtest.tgz

# 解压文件
tar zxvf speedtest.tgz

在这里插入图片描述

  • 第二步、手动接受 EULA(End-user license agreement)
# 进入容器
docker exec -it --user root speedtest-tracker /bin/bash

# 在容器内执行
php /config/www/artisan speedtest:eula

在这里插入图片描述

  • 第三步、执行一次 Speedtest
# 在容器内执行
cd /config/www/app/Bin

# 运行一次 speedtest
# 提示 Do you accept the license? [type YES to accept]: 要输入 Yes
./speedtest

# 退出容器
exit

现在可以看到数据了

在这里插入图片描述

之后每个整点会自动测试

在这里插入图片描述

最后上一张官方的动图

在这里插入图片描述

参考文档

henrywhitaker3/Speedtest-Tracker: Continuously track your internet speed
地址:https://github.com/henrywhitaker3/Speedtest-Tracker

[BUG] sh: /config/www/app/Bin/speedtest: not found + No successfully speedtest result · Issue #855 · henrywhitaker3/Speedtest-Tracker
地址:https://github.com/henrywhitaker3/Speedtest-Tracker/issues/855

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值