0
0

AlmaLinux + MySpeedで自宅回線の速度と安定度を計測しよう

Last updated at Posted at 2024-01-30

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

起動後のセットアップ

image.png

Ooklaのスピードテストサービスを利用しますので、利用規約やプライバシーポリシーを読んで同意します。

測定用サーバー変更

初期設定ではウラジオストクサーバーですので、最寄りのサーバーに変更します。

image.png
image.png

測定頻度設定

測定する頻度を選択できます。

image.png

基本的にはDefaultで良いと思います。

image.png

測定結果表示範囲

測定結果の表示期間を設定します。

image.png
image.png

こちらもDefaultで良いと思います。

測定結果閾値設定

image.png

Optimal ping/Optimal up-speed/Optimal down-speedを変更することで、結果表示画面で良好として表示される数値の閾値を設定できます。

手動測定

このボタンで手動測定ができます。

image.png

画面切り替え

Switch Viewをクリックすると、レイアウトを切り替えられます。
image.png

統計モード

image.png

詳細表示モード

image.png

おわり

放っておけば計測結果がたまっていると思います。

参考:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0