docker實(shí)戰(zhàn):使用Docker部署speedtest-tracker速度測(cè)試追蹤器
- 1.1 speedtest-tracker簡(jiǎn)介
- 1.2 speedtest-tracker功能
- 1.3 speedtest-tracker使用場(chǎng)景
- 2.1 本地環(huán)境規(guī)劃
- 2.2 本次實(shí)踐介紹
- 3.1 檢查Docker服務(wù)狀態(tài)
- 3.2 檢查Docker版本
- 3.3 檢查docker compose 版本
- 5.1 使用docker-cli創(chuàng)建speedtest-tracker容器
- 5.2 編輯docker-compose.yaml文件
- 5.3 運(yùn)行speedtest-tracker容器
- 5.4 檢查speedtest-tracker容器狀態(tài)
- 5.5 檢查speedtest-tracker容器日志
一、speedtest-tracker介紹
1.1 speedtest-tracker簡(jiǎn)介
- speedtest-tracker簡(jiǎn)介
speedtest-tracker可以持續(xù)跟蹤您的互聯(lián)網(wǎng)速度,該程序每小時(shí)運(yùn)行一次速度測(cè)試檢查并繪制結(jié)果圖表。后端是用Laravel編寫(xiě)的,前端使用React。它使用Ookla 的 speedtest cli包獲取數(shù)據(jù)并使用Chart.js繪制結(jié)果。
1.2 speedtest-tracker功能
- 每小時(shí)自動(dòng)運(yùn)行一次速度測(cè)試
- x 天之前的速度測(cè)試圖表
- 以 JSON/CSV 格式備份/恢復(fù)數(shù)據(jù)
- Slack/Discord/Telegram 通知
- healthchecks.io集成
- 組織整合
- InfluxDB 集成(目前僅 v1,v2 尚未完成)
1.3 speedtest-tracker使用場(chǎng)景
- 在家辦公:當(dāng)您在家辦公時(shí),您可能需要知道您的互聯(lián)網(wǎng)速度是否足夠快以滿足您的工作需求。通過(guò)使用speedtest-tracker,您可以持續(xù)跟蹤您的互聯(lián)網(wǎng)速度,并將結(jié)果圖表化,以便您了解在不同時(shí)間段內(nèi)的速度變化情況。
- 網(wǎng)絡(luò)游戲:對(duì)于喜歡在線游戲的人來(lái)說(shuō),穩(wěn)定的和快速的互聯(lián)網(wǎng)連接是非常重要的。speedtest-tracker可以幫助您監(jiān)測(cè)您的互聯(lián)網(wǎng)速度,以確保您的連接在游戲過(guò)程中不會(huì)出現(xiàn)延遲或連接中斷問(wèn)題。
- 互聯(lián)網(wǎng)服務(wù)提供商選擇:如果您對(duì)您的互聯(lián)網(wǎng)服務(wù)提供商的速度感到不滿意,您可以使用speedtest-tracker來(lái)持續(xù)監(jiān)測(cè)您的互聯(lián)網(wǎng)速度。您可以將收集到的結(jié)果與其他供應(yīng)商的速度進(jìn)行比較,以便做出更明智的選擇。
- 網(wǎng)絡(luò)故障排除:當(dāng)您的互聯(lián)網(wǎng)連接出現(xiàn)問(wèn)題時(shí),您可以使用speedtest-tracker來(lái)進(jìn)行速度測(cè)試,并將結(jié)果與正常情況下的速度進(jìn)行對(duì)比。這可以幫助您確定問(wèn)題的根源,并更好地向互聯(lián)網(wǎng)服務(wù)提供商或技術(shù)支持團(tuán)隊(duì)描述您遇到的問(wèn)題。
- 互聯(lián)網(wǎng)速度優(yōu)化:如果您想改善您的互聯(lián)網(wǎng)速度,您可以使用speedtest-tracker來(lái)持續(xù)監(jiān)測(cè)您的互聯(lián)網(wǎng)速度,并嘗試在不同時(shí)間段使用不同的網(wǎng)絡(luò)設(shè)置。通過(guò)對(duì)比結(jié)果,您可以確定哪些設(shè)置或時(shí)間段提供了最佳的速度,并相應(yīng)地進(jìn)行優(yōu)化。
二、本地環(huán)境介紹
2.1 本地環(huán)境規(guī)劃
本次實(shí)踐為個(gè)人測(cè)試環(huán)境,操作系統(tǒng)版本為centos7.6。
2.2 本次實(shí)踐介紹
1.本次實(shí)踐部署環(huán)境為個(gè)人測(cè)試環(huán)境,生產(chǎn)環(huán)境請(qǐng)謹(jǐn)慎; 2.在Docker環(huán)境下部署 speedtest-tracker。
三、本地環(huán)境檢查
3.1 檢查Docker服務(wù)狀態(tài)
檢查Docker服務(wù)是否正常運(yùn)行,確保Docker正常運(yùn)行。
[root@jeven ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2024-02-15 19:05:02 CST; 1min 7s ago Main PID: 12320 (dockerd) Tasks: 12 Memory: 131.8M CGroup: /system.slice/docker.service
3.2 檢查Docker版本
檢查Docker版本
[root@jeven ~]# docker -v Docker version 20.10.17, build 100c701
3.3 檢查docker compose 版本
檢查Docker compose版本,確保2.0以上版本。
[root@jeven ~]# docker compose version Docker Compose version v2.6.0
四、下載speedtest-tracker鏡像
從docker hub拉取speedtest-tracker鏡像
[root@jeven ~]# docker pull henrywhitaker3/speedtest-tracker Using default tag: latest latest: Pulling from henrywhitaker3/speedtest-tracker c91af5d1b23e: Pull complete 740fcfa9e15a: Pull complete ce5b3694a6d6: Pull complete a83d676a55d9: Pull complete 38ac933c5d8d: Pull complete dc32e0469fc9: Pull complete 2692dc6e8a90: Pull complete 36a44203a304: Pull complete df68ab8ba510: Pull complete 712e86a465e0: Pull complete b87cc77a8de9: Pull complete Digest: sha256:47159a9402291275bd9f8a8ed4f5c1ce8502de216465ed29da8a3c995b807df1 Status: Downloaded newer image for henrywhitaker3/speedtest-tracker:latest docker.io/henrywhitaker3/speedtest-tracker:latest
五、部署speedtest-tracker
5.1 使用docker-cli創(chuàng)建speedtest-tracker容器
使用docker-cli快速部署speedtest-tracker容器
docker create --name=speedtest -p 6890:80 -v /data/speedtest/config:/config -e OOKLA_EULA_GDPR=true --restart unless-stopped henrywhitaker3/speedtest-tracker
5.2 編輯docker-compose.yaml文件
創(chuàng)建掛載目錄
mkdir -p /data/speedtest/config && cd /data/speedtest/
本次實(shí)踐使用docker compose方式運(yùn)行Calcium容器,編輯docker-compose.yaml文件內(nèi)容如下:
version: '3.3' services: speedtest: container_name: speedtest image: henrywhitaker3/speedtest-tracker ports: - 6890:80 volumes: - /data/speedtest/config:/config environment: - TZ=Asia/Shanghai - OOKLA_EULA_GDPR=true logging: driver: "json-file" options: max-file: "10" max-size: "200k" restart: always
相關(guān)環(huán)境變量設(shè)置介紹:
- -p 8765:80 在端口 8765 上公開(kāi) Web 服務(wù)器
- -v /config 所有配置文件都保存在此處。
- -e OOKLA_EULA_GDPR 設(shè)置為“true”以接受 Ookla EULA和隱私協(xié)議。如果不設(shè)置,容器將不會(huì)啟動(dòng)。
- -e SLACK_WEBHOOK 可選的。在此處放置一個(gè) slack webhook,以便在運(yùn)行速度測(cè)試時(shí)獲取 slack 通知。要使用 Discord Webhooks,只需附加/slack到 Discord Webhook URL 的末尾即可
- -e TELEGRAM_BOT_TOKEN 可選的。Telegram 機(jī)器人 API 令牌。
- -e TELEGRAM_CHAT_ID 可選的。。
- -e PUID 可選的。為卷權(quán)限提供本地用戶 ID
- -e PGID 可選的。為卷權(quán)限提供本地組 ID
- -e AUTH 可選的。設(shè)置為“true”以啟用應(yīng)用程序身份驗(yàn)證
- -e INFLUXDB_RETENTION 可選的。設(shè)置InfluxDB保留期限,默認(rèn)為30d
- `-e INFLUXDB_HOST_TAG 可選的。設(shè)置InfluxDB主機(jī)標(biāo)簽值,默認(rèn)為speedtest
5.3 運(yùn)行speedtest-tracker容器
- 使用docker-compose.yaml文件創(chuàng)建speedtest-tracker容器
[root@jeven speedtest]# docker compose up -d [+] Running 2/2 ? Network speedtest_default Created 0.0s ? Container speedtest Started 0.7s
5.4 檢查speedtest-tracker容器狀態(tài)
檢查speedtest-tracker容器狀態(tài),確speedtest-tracker容器正常啟動(dòng)。
[root@jeven speedtest]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3f18b898c1eb henrywhitaker3/speedtest-tracker "/init" 2 seconds ago Up 2 seconds 443/tcp, 0.0.0.0:6890->80/tcp, :::6890->80/tcp speedtes
5.5 檢查speedtest-tracker容器日志
檢查speedtest-tracker容器運(yùn)行日志,確保speedtest-tracker服務(wù)正常運(yùn)行。
docker compose logs
六、訪問(wèn)speedtest-tracker首頁(yè)
訪問(wèn)地址:http://192.168.3.166:6890/,將IP替換為自己服務(wù)器IP地址,進(jìn)入到speedtest-tracker首頁(yè)。如果無(wú)法訪問(wèn),則檢查服務(wù)器防火墻是否設(shè)置,云服務(wù)器的安全組端口是否放行等。
七、總結(jié)
speedtest Tracker是一款非常實(shí)用的工具,它允許用戶持續(xù)跟蹤和監(jiān)控互聯(lián)網(wǎng)速度。這款工具具有直觀明了的用戶界面,自動(dòng)化的速度測(cè)試功能以及數(shù)據(jù)跟蹤和分析功能,能夠更好地了解互聯(lián)網(wǎng)服務(wù)質(zhì)量。同時(shí),我也很喜歡它的界面風(fēng)格,網(wǎng)速測(cè)試也很準(zhǔn)確,可以加入到我們的個(gè)人工具箱中。
作者聲明本文無(wú)利益相關(guān),歡迎值友理性交流,和諧討論~
,