はじめに

こんにちは。あやかです。

家庭内ネットワークの監視環境を整えているとき、ふと気づいたことがあります。 市販の無線LANルーターって、SNMPに対応していないものが多いんですよね。

業務用のルーターやスイッチならSNMPで細かく監視できるんですが、家庭用の機器はそうもいかない。 でも、死活監視くらいはしておきたい。

そこで今回は、SNMPに対応していない機器をZabbixから監視する方法を試してみました。 使ったのは、PingとHTTPによる死活監視です。

なぜPingとHTTPの2方式なのか

「Pingだけじゃダメなの?」と思うかもしれませんが、実はPingだけだと不十分なケースがあるんです。

例えば、ルーターのICMP応答は生きているのに、Web管理画面が落ちている状況。 こういう場合、Pingだけだと「正常」と判断されてしまいます。

逆に、HTTPだけで監視していると、ネットワーク全体が落ちているのか、それともHTTPサービスだけの問題なのか判別しづらい。

だから、PingとHTTPの両方で監視することで、より正確に状態を把握できるようにしました。

監視対象機器

今回監視しているのは、以下の3台です。

  • NECのAtermシリーズ: 2台(無線LANルーター)
  • NTTひかり電話ルーター: 1台(有線ルーター)

どれもSNMPには対応していないので、今回の方法が活躍します。

設定の流れ

設定自体はシンプルです。 大まかな流れはこんな感じ。

  1. Zabbixでホストを追加
  2. テンプレートは選択しない
  3. アイテムを手動で作成

テンプレートを使わないのがポイントです。 SNMPに対応していない機器なので、既存のテンプレートは使えません。

アイテムの作成とキーの詳細

ここからが本題です。 アイテムを手動で作成する際、キーの指定が重要になります。

HTTP監視のキー

HTTP監視には、以下のキーを使います。

net.tcp.service.perf[http,192.168.123.123,]

このキーの形式は以下の通りです。

net.tcp.service.perf[service,<ip>,<port>]
  • service: 監視するサービスの種類(今回はhttp
  • ip: 監視対象機器のIPアドレス
  • port: ポート番号(省略すると、サービスごとのデフォルトポートが使用される)

HTTPの場合、ポートを省略すると80番ポートが使われます。 もしHTTPS(443番)で監視したい場合は、サービスをhttpsに変更するか、ポート番号を明示的に指定します。

Ping監視のキー

Ping監視には、以下のキーを使います。

icmppingsec[192.168.123.123,,,,,,]

このキーの形式は以下の通りです。

icmppingsec[<target>,<packets>,<interval>,<size>,<timeout>,<mode>]
  • target: 監視対象機器のIPアドレス
  • packets: 送信するパケット数(省略時はデフォルト値)
  • interval: パケット送信間隔(省略時はデフォルト値)
  • size: パケットサイズ(省略時はデフォルト値)
  • timeout: タイムアウト時間(省略時はデフォルト値)
  • mode: 動作モード(省略時はデフォルト値)

今回はすべてデフォルト値を使っているので、カンマだけが並んでいます。 必要に応じて、パケット数やタイムアウト時間を調整することも可能です。

パラメータの詳細について

各パラメータの詳しい意味や使い方については、Zabbixの公式マニュアルを参照してください。

マニュアルには、より細かい設定方法や、他のサービスを監視する方法も記載されています。

アイテムの単位設定

重要なポイントとして、これらのアイテムは応答時間を秒単位の浮動小数点数で返します

例えば、100msの応答時間は0.1、1秒の応答時間は1.0として記録されます。

アイテム作成時に単位を「s」(秒)に設定しておくと、グラフや最新データの画面で見やすく表示されます。

トリガーの設定

アイテムを作成したら、トリガーも設定しておきます。 トリガーは、「どういう状態になったら障害と判断するか」を定義するものです。

今回は、以下のようなトリガーを設定しました。

  • HTTP監視: 応答時間が1秒以上になった場合に障害と判断
  • Ping監視: 応答時間が1秒以上になった場合に障害と判断

これにより、ルーターの応答が遅くなったときに、すぐに気づけるようになります。

トリガーの条件式は、以下のような形になります。

last(/ホスト名/アイテムキー)>=1

アイテムの戻り値が秒単位なので、>=1は「1秒以上」という意味になります。 もし500ms(0.5秒)を閾値にしたい場合は、>=0.5とします。

実際の動作確認

設定後、しばらく待つとデータの取得が始まります。 Zabbixの「最新データ」画面で、PingとHTTPの応答時間が表示されるようになります。

監視データの取得状況
監視データの取得状況

単位を「s」に設定しているので、応答時間が秒単位で分かりやすく表示されます。 グラフで応答時間の推移を確認できるので、ネットワークの状態を視覚的に把握できます。

おわりに

SNMPに対応していない機器でも、PingとHTTPを組み合わせることで、十分に死活監視ができることが分かりました。

家庭用のルーターやアクセスポイントは、SNMPに対応していないことが多いですが、この方法なら問題なく監視できます。 設定も難しくないので、Zabbixで家庭内ネットワークを監視している方は、ぜひ試してみてください。