はじめに
「Wi-Fiが遅く感じる。」「特定の位置だけ繋がりにくい。」
オフィスや店舗、学校など、インターネットを使用する様々な場所でこのような声を耳にしたことはありませんか?今や業務の多くがWebやクラウド経由で仕事をする中、Wi-Fiの品質も、利用者にとって仕事の快適さを左右する重要な要素となっています。
とはいえ電波は目に見えないもので、遅い・繋がりにくいと感じた時に、どの程度なのか、原因がどこにあるのかはすぐに判断できません。そんな時に役立つのが、Wi-Fi電波強度の監視です。Checkmkを使用して各ポイントのWi-Fi電波強度を監視し、時間帯や場所ごとの傾向をグラフで把握することができます。日々の運用管理はもちろん、AP配置見直しなど、ネットワークアセスメントにも活用できるデータを蓄積できます。
本記事ではWi-Fiの遅い・つながりにくいを数値化し、より快適なネットワーク環境にするためのCheckmk活用方法をご紹介します。
CheckmkのWi-Fi電波強度調査
Checkmkでは、Wi-Fiに接続している端末のWi-Fiシグナル強度(電波強度)を継続的に監視します。
例えば、大きな工場の四隅にAPを配置し5台のPCがWi-Fiに接続するという環境があるとします。それぞれの端末で電波の届き方や強度が微妙に異なり、特定の場所だけ通信が不安定になることがあります。

これを調査するためには、まずWi-Fi接続ができる端末を計測したい位置に配置します。Checkmkでは、この配置した5台のPCそれぞれにエージェントを導入することで、電波強度・リンク速度などを取得するスクリプトを自動的に取得することができます。この結果を基に、APの再配置や増設、チャンネル調整、場合によっては有線接続への切り替えなどの改善策を検討することができます。
監視設定手順
Checkmkはエージェントに様々な命令を実施することができます。今回はCheckmkエージェントをインストール済のWindows端末を監視対象とし、エージェントにPowerShellスクリプトを実行させてWi-Fiの信号強度を取得し、Checkmkにローカルチェックとして登録する方法を記載します。
まずはCheckmkの手順に従い、Checkmkに監視対象のPCを登録してください。またそのPCにはエージェントをインストールしてある必要がございます。インストールされていな場合は、ユーザーガイドを参考にこのタイミングで実施してください。
監視対象のWindows端末上での準備
ではまず初めに、Windows端末上で動くPowerShellスクリプトを作成します。今回は「netsh wlan show interfaces」というコマンドを実行させシグナル強度・受信速度・送信速度を取得します。このコマンドを実際にWindows端末で実行すると、結果はこのようになります。

赤枠の3つの数値を取得していきます。用意したスクリプト全体は以下です。
# Wi-Fi情報取得(UTF-8対応)
$wlanInfo = cmd /c "chcp 65001 >nul & netsh wlan show interfaces" | Out-String
# シグナル の文字列を英語/日本語で検索
$signalLine = $wlanInfo -split "`r?`n" | Where-Object { $_ -match "シグナル|Signal" }
$signal = if ($signalLine) { ($signalLine -split ":",2)[1].Trim().TrimEnd("%") } else { "" }
# 受信/送信速度 の文字列を英語/日本語で検索
$rxLine = $wlanInfo -split "`r?`n" | Where-Object { $_ -match "受信速度|Receive rate" }
$txLine = $wlanInfo -split "`r?`n" | Where-Object { $_ -match "送信速度|Transmit rate" }
$rx = if ($rxLine) { ($rxLine -split ":",2)[1].Trim() } else { "" }
$tx = if ($txLine) { ($txLine -split ":",2)[1].Trim() } else { "" }
# 状態判定
if ($signal -ge 70) { $state = 0 }
elseif ($signal -ge 50) { $state = 1 }
else { $state = 2 }
# Checkmk用のアウトプット
Write-Output "<<<local>>>"
Write-Output "$state wifi_signal_strength signal=${signal}% Wi-Fi Signal: ${signal}% | rx=${rx} tx=${tx}"
状態判定の行では、信号強度に応じてCheckmkに返却する状態コードを以下の通り設定しています。(任意の数値に設定可)
0: OK(信号強度70%以上)1: WARNING(50〜69%)2: CRITICAL(50%未満)
最後に、Checkmk用の表示形式に合わせてアウトプットを作成しています。出力例は以下のようになります。
<<<local>>>
0 wifi_signal_strength signal=84% Wi-Fi Signal: 84% | rx=390 tx=390
- ステータス: 0(OK)
- サービス名と値: wifi_signal_strength = 84%
- メッセージ欄の表示内容: Wi-Fi Signal: 84%
- サービス詳細画面に表示されるパフォーマンスデータ: signal=84%; rx=390; tx=390;
正しく出力されると、上記の項目として記録され、Web画面上でグラフ化、アラートの設定が可能になります。
スクリプトが完成したら、「C:\ProgramData\checkmk\agent\local\」配下に格納します。試しに、Powershellで実行し、以下のような結果がでればスクリプトのテスト実行完了です。

Checkmkサーバー側での準備
「C:\ProgramData\checkmk\agent\local\」配下に格納したスクリプトは、自動的にサービスとして追加されます。最初の実行結果の取得まで、実行タイミングにより1~2分ほどかかりますので、しばらく待機して、スクリプトを保存した監視対象のサービスリストを確認してください。「wifi_signal_strength」というサービスが自動作成されています。

クリックすると、シグナル強度のグラフが確認できます。

接続が途中で切れていないか、またどの程度の強度で値が推移しているか、などグラフから履歴を確認できます。
以上のように、Wi-Fiの電波状況を調べたいポイントにPCを設置し、上記例のようなスクリプトを定期実行することで、「つながりにくさ」を数値として可視化できます。Checkmkを活用すれば、アクセスポイントごとの電波強度を簡単に把握でき、問題個所の特定にも役立ちます。
まとめ
CheckmkによるWi-Fiの電波強度の監視は、日常の運用監視はもちろん、ネットワークアセスメント調査にも活用可能です。「つながりにくい」を数値で可視化することで、より快適で安定したネットワーク環境の構築が実現します。
まずは現状の可視化から始め、環境構築・改善の手掛かりにしてみてはいかがでしょうか。


