MySpeedとは
継続的に回線速度の計測を行い最大30日間記録することで、回線状況の分析ができるツール。
機能
- 速度、Pingなどの統計情報を生成できる
- cronを使ってスピードテストを自動化できる
- ひとつのインスタンスに複数のMySpeedサーバーを追加できる
- テスト時にエラーが発生したときに、メールなどでHealth Checkできる
セットアップ
Node.js インストール
Nodejsが必要なのでインストールします。
# インストール可能なバージョンの確認
$ sudo dnf module list nodejs
AlmaLinux 9 - AppStream
Name Stream Profiles Summary
nodejs 18 common [d], development, minimal, s2i Javascript runtime
nodejs 20 common [d], development, minimal, s2i Javascript runtime
# バージョン切り替え
$ sudo dnf module reset nodejs
$ sudo dnf module -y enable nodejs:18
依存関係が解決しました。
==============================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
==============================================================================================================================================================
モジュールストリームの有効化中:
nodejs 18
トランザクションの概要
==============================================================================================================================================================
# インストール
$ sudo dnf module -y install nodejs:18/common
依存関係が解決しました。
========================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
========================================================================================================================================================================
group/moduleパッケージをインストール:
nodejs x86_64 1:18.18.2-2.module_el9.2.0+43+3ebc9e20 appstream 13 M
npm x86_64 1:9.8.1-1.18.18.2.2.module_el9.2.0+43+3ebc9e20 appstream 2.0 M
弱い依存関係のインストール:
nodejs-docs noarch 1:18.18.2-2.module_el9.2.0+43+3ebc9e20 appstream 7.6 M
nodejs-full-i18n x86_64 1:18.18.2-2.module_el9.2.0+43+3ebc9e20 appstream 8.5 M
モジュールプロファイルのインストール中:
nodejs/common
トランザクションの概要
========================================================================================================================================================================
インストール 4 パッケージ
ダウンロードサイズの合計: 31 M
インストール後のサイズ: 168 M
パッケージのダウンロード:
(1/4): nodejs-full-i18n-18.18.2-2.module_el9.2.0+43+3ebc9e20.x86_64.rpm 12 MB/s | 8.5 MB 00:00
(2/4): nodejs-docs-18.18.2-2.module_el9.2.0+43+3ebc9e20.noarch.rpm 8.8 MB/s | 7.6 MB 00:00
(3/4): npm-9.8.1-1.18.18.2.2.module_el9.2.0+43+3ebc9e20.x86_64.rpm 9.0 MB/s | 2.0 MB 00:00
(4/4): nodejs-18.18.2-2.module_el9.2.0+43+3ebc9e20.x86_64.rpm 10 MB/s | 13 MB 00:01
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 14 MB/s | 31 MB 00:02
トランザクションの確認を実行中
...............
............
.........
......
完了しました!
$ node -v
v18.18.2
MySpeed インストール
公式で全自動セットアップ用のコマンドが用意されていますが、AlmaLinuxでは利用できませんので手動インストールします。
面倒ならDockerも利用できます。
ディレクトリ作成
# mkdir /opt/myspeed && cd /opt/myspeed
ファイルダウンロード
から最新版のMySpeedをダウンロードして/opt/myspeedに配置し、展開します。
# unzip MySpeed-*.zip && rm MySpeed-*.zip
Nodeモジュールインストール
# npm install
実行
デーモンを登録します。
/etc/systemd/system/myspeed.service
[Unit]
Description=MySpeed
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/node server
Restart=always
# \/ It is strongly recommended to create your own user here
User=root
Environment=NODE_ENV=production
# \/ Specify your installation location here
WorkingDirectory=/opt/myspeed
[Install]
WantedBy=multi-user.target
systemd
を再起動し、デーモンを起動します。
# systemctl daemon-reload
# systemctl enable --now myspeed
# systemctl status myspeed
● myspeed.service - MySpeed
Loaded: loaded (/etc/systemd/system/myspeed.service; enabled; preset: disabled)
Active: active (running) since Tue 2024-01-30 23:06:16 JST; 38s ago
Main PID: 101187 (node)
Tasks: 11 (limit: 3355442)
Memory: 39.0M
CPU: 1.391s
CGroup: /system.slice/myspeed.service
└─101187 /usr/bin/node server
1月 30 23:06:16 HOSTNAME systemd[1]: Started MySpeed.
1月 30 23:06:17 HOSTNAME node[101187]: Successfully connected to the database file
1月 30 23:06:21 HOSTNAME node[101187]: Integration "discord" loaded successfully
1月 30 23:06:21 HOSTNAME node[101187]: Integration "gotify" loaded successfully
1月 30 23:06:21 HOSTNAME node[101187]: Integration "healthChecks" loaded successfully
1月 30 23:06:21 HOSTNAME node[101187]: Integration "telegram" loaded successfully
1月 30 23:06:21 HOSTNAME node[101187]: Integration "webhook" loaded successfully
1月 30 23:06:21 HOSTNAME node[101187]: Server listening on port 5216
起動後のセットアップ
Ookla
のスピードテストサービスを利用しますので、利用規約やプライバシーポリシーを読んで同意します。
測定用サーバー変更
初期設定ではウラジオストクサーバーですので、最寄りのサーバーに変更します。
測定頻度設定
測定する頻度を選択できます。
基本的にはDefault
で良いと思います。
測定結果表示範囲
測定結果の表示期間を設定します。
こちらもDefault
で良いと思います。
測定結果閾値設定
Optimal ping
/Optimal up-speed
/Optimal down-speed
を変更することで、結果表示画面で良好
として表示される数値の閾値を設定できます。
手動測定
このボタンで手動測定ができます。
画面切り替え
Switch View
をクリックすると、レイアウトを切り替えられます。
統計モード
詳細表示モード
おわり
放っておけば計測結果がたまっていると思います。
参考: