speedtest-trackerはPythonとFlaskを使って構築されたオープンソースのインターネット速度測定ツールで、Dockerコンテナ上で動作します。このツールはOokla Speedtest CLIツールを使用して速度測定を行い、測定結果を記録し比較することができます。
Docker-HUBにてイメージが公開されているため、Synology NASにてDocker環境下でインストール・セットアップして回線速度監視を実施することができます。
前提 本記事でのDSM(OS)バージョンは、Synology DSM 7.1 を用いています。
1.speedtest-trackerについて
speedtest-trackerは、Dockerコンテナ上で動作する、オープンソースのインターネット速度測定ツールです。
このspeedtest-trackerは、PythonとFlaskをベースとして構築されており、Ookla Speedtest CLIツールを使用して速度測定を行います。speedtest-trackerを使用することで、ユーザーは自分のインターネット速度を測定し、過去の測定結果を記録することができます。また、このツールは、異なる場所からの測定結果を比較することができます。これにより、ISPの性能を評価することができます。
speedtest-trackerはDocker-HUBにてイメージが公開されていますので、Synology NASにてDocker環境下でインストール・セットアップして回線速度監視を実施してみました。
2.Dockerパッケージのインストール
Dockerパッケージがインストールされていなければ、インストールを行います。
以下の記事の2章を参考にしてください。
3.speedtest-trackerコンテナの構築
Dockerを用いてspeedtest-tracker環境を構築する手順を紹介します。
speedtest-trackerが動作するときに測定結果を記録するデーターベース領域・その他の格納領域をデータ永続化として準備し、コンテナから参照できるようにする必要があります。
3-1.データ永続化領域の作成
DSMコンソールより[FileStation]を起動し、[Docker]共有フォルダ以下に[speedtest]フォルダを作成します。
3-2.コンテナイメージのダウンロード
Dockerコンソールの[レジストリ]よりイメージのダウンロードを行います。
検索テキストボックス(キーワードを挿入)にspeedtest-trackerと入力すると、DockerHUBよりダウンロード可能なspeedtest-trackerコンテナイメージの一覧が表示されます。
speedtest-trackerはイメージがいくつかありますが、一番★の多い、[henrywhitaker3/speedtest-tracker]をダウンロードしました。
ダイアログボックスが表示され、[タグの選択]が表示されるので、バージョンとしては最新を示す[latest]を指定します。
[選択]をクリックした後、しばらくすると[イメージ]にspeedtest-trackerのコンテナイメージがダウンロードされます。
以上で、speedtest-trackerのDockerイメージのダウンロードが完了しました。
3-3.speedtest-trackerコンテナの生成
Dockerの[イメージ]より、speedtest-trackerのイメージを選択して[起動] をクリックすると、コンテナの作成ウィザードが開始されます。
ネットワークの指定はデフォルトのままでよいので、[次へ]をクリックします。
コンテナの[全般設定]ではコンテナ名を入力し、詳細設定をクリックして、環境変数の追加を行います。
[詳細設定]ダイアログで[環境]タブを選択し、以下の環境変数の追加を行います。
変数 | 説明 |
---|---|
OOKLA_EULA_GDPR | Ookla EULA とプライバシー契約に同意するには、「true」に設定します。これが設定されていない場合、コンテナは起動しません |
AUTH | 認証を有効をするには「true」に設定します。オプション項目です。 |
追加が終わったら[保存]をクリック、元の[全般設定]ダイアログに戻るので[次へ]をクリックします。
ポート設定を行います。ローカルポート8765:コンテナのポート80の設定を追加します。
(ポート8765がすでに使用されている場合は適宜別のポート番号に見直す)
コンテナのポート443の設定は不要なので削除します。
入力が終われば[次へ]をクリックします。
[ボリューム設定]ダイアログで、データ永続化領域の設定を行います。[フォルダの追加]をクリックします。
3-1で生成したデータ永続化領域を選択します。なお、[フォルダの生成]を選択してここでフォルダを生成することも可能です。
[ボリューム設定」ダイアログで、先ほど選択したフォルダをコンテナのどこにマッピングするかの指定を行います。マウントパスに[/config]と入力して[次へ]をクリックします。
ここまでの設定が[要約]ダイアログに表示されるので、内容を確認して[完了]をクリックします。
speedtest-trackerのコンテナが指定した名称[speedtest-tracker]で生成されました。
4.speedtest-trackerによる回線監視
4-1.測定結果の表示
ブラウザで[自分のNASのIPアドレス:8765]をURLに指定することにより、speedtest-trackerの画面がブラウザ上に表示されます。
(なお、最初は測定結果が採取されていないため、結果表示は空となります。)
All Tests画面で、測定結果の一覧が表示されます。
4-1.各種設定
各種設定を行うためにはSettings画面を表示させる必要がありますが、AUTHを有効にしている場合はLoginを行う必要があります。
Email address:admin@admin.com
Password:password
を入力してLoginします。
PasswordはLogin後に設定変更を行うことが出来ます。
Settiing画面では各種設定を行います。
最低限以下を設定すればよいかと思います。
Generalタブ>Scedule:CRON表記で設定します。デフォルトでは毎正時(1時間に一回、毎時00分)に測定を行いますが、測定先サーバが00分での測定が集中することが想定されるので、測定時間をずらしておきます。
# cronの起動時間設定
* * * * * (起動したい処理)
| | | | |
| | | | |- 曜日
| | | |--- 月
| | |----- 日
| |------- 時
|--------- 分
Generalタブ>Server:デフォルトは空欄ですが、この場合測定先サーバがランダムに選ばれる動作となります。測定先サーバにより測定結果がかなり異なってくるので、暫く様子を見て、安定してそうなサーバを指定(サーバID)するのがよいようです。
Setting画面のBackup/Restoreタブでは、測定結果をJSON形式またはCSV形式で保存することが出来ます。
5.まとめ
Synology NASでDocker環境下にspeedtest-trackerをインストール・セットアップして回線速度監視を行った事例について紹介しました。
参考までに、我が家のインターネット環境で約1週間測定を行った結果としては、以下のようなものでした。(測定サーバ:21569 i3D.net)
- Ping:10.7ms(average) 18.5ms(maximum)10.1ms(minimum)
- Download:337.9Mbit/s(average) 644.0Mbit/s(maximum)121.8Mbit/s(minimum)
- Upload:342.0Mbit/s(average) 476.2Mbit/s(maximum)132.2Mbit/s(minimum)
我が家の回線はso-net光プラス(フレッツ光コラボ)ですが、「みんなのネット回線速度」というサイトで紹介されている平均速度よりは上回っており、まあまあ優秀なのではと思いました。
また、自動的に常時測定が行われているので、測定結果のトレンドが確認できるかと思います。
以上、最後まで記事を読んでいただき、ありがとうございました。