
週に何度か回線が急に遅くなるのに、プロバイダーに問い合わせると「こちらでは異常ありません」と返ってくる。この押し問答にうんざりした製作者が、Raspberry Pi上で回線品質を24時間記録し続けるツール「netmon」を作り、MITライセンスでGitHubに公開した。
netmonは1時間ごとに速度測定を実行し、下り・上り速度、遅延(ping)、接続先のプロバイダーと測定サーバーを記録する。同時にnmapのARPスキャンで、そのときLANにつながる機器の台数も数える。測定結果は手元のSQLiteデータベースに保存し、外部の計測サーバーには何も送らない。
4時間ごとには、matplotlibで描いた24時間分のグラフと、大規模言語モデル(LLM)が書いた皮肉まじりの講評をTelegramに送る。「また誰かが帯域を独り占めしている」といった調子の文章だ。製作者は冗談で付けた機能だが、傾向をひと目で把握するのに実際に役立っていると説明する。
製作の課題は、外部のクラウドに依存せず放置しても24時間動き続ける構成にすることと、ARPスキャンの実装だった。機器を正しく数えるにはroot権限が要るが、無人で動かす以上、毎回パスワードを入力するわけにいかない。製作者はsudoの設定ファイルで、nmapコマンドだけをパスワードなしで実行できるようにする方法を導入手順に記した。アカウント全体の権限を開放せず、対象を1つのコマンドに限定する形だ。
蓄積したデータからは傾向が読み取れるようになった。製作者によると、LANの接続台数が一定数を超えた時間帯に速度がはっきり落ちると分かったという。原因が自宅側の使いすぎなのか、プロバイダーが回線を過剰に相乗りさせているのかを、時刻付きのデータで判別できる。
動作にはnmapとspeedtest-cli、Python 3.13以降が必要で、対応OSはmacOSとLinuxだ。講評の生成にはOpenAI互換のAPIキーが要るが、使わなくても他の機能は動く。OllamaやLM Studioのようなローカルの推論サーバーも指定でき、その場合は測定データが自宅の外に出ない。なお製作者は、プロバイダーへのデータ提出にはまだ至っていない。投稿には、雨の日に速度が落ちる原因を長期の記録から突き止め、同軸ケーブルの絶縁破損を交換させたという別の利用者の体験談が寄せられた。製作者はこれに対し、自分もそうした原因を特定できる段階に到達したいと応じている。

