10 Zabbixでネットワークスイッチやルーターを監視する

はじめに

このガイドでは、Zabbix を使用してネットワークスイッチまたはルーターの基本監視を開始するために必要な手順を説明します。 Cisco ルーターを例として使用していますが、この手順は SNMP 対応のあらゆるネットワークデバイスに適用できます。

このガイドの対象者

このガイドは、ネットワークデバイスの基本監視をすばやく有効にしたい Zabbix の新規ユーザーおよびネットワーク管理者向けに作成されています。 詳細なカスタマイズや高度な設定オプションが必要な場合は、SNMP エージェントページまたは Zabbix マニュアルの設定セクションを参照してください。

前提条件

このガイドを進める前に、以下を満たしていることを確認してください。

  • Zabbix サーバーおよび Zabbix Webインターフェースがインストールされていること: ご使用のオペレーティングシステム向けの手順に従ってインストールしてください(パッケージからのインストールおよびWebインターフェースのインストールを参照)。
  • ローカルネットワークメトリクスを監視する場合は、Zabbix エージェントがインストールされていること。
  • SNMP 対応デバイス: SNMP が有効化されたネットワークスイッチまたはルーター(たとえば Cisco ルーター)。
  • MIB ファイルがインストールされていること: MIB ファイルをインストールすると、Zabbix は数値 OID を人が読める名前や説明に変換できるようになります。 適切な MIB サポートがない場合、数値のみが表示されることがあり、アイテムの設定や問題のトラブルシュートが難しくなります。

Ubuntu に MIB ファイルをインストールするには:

1. MIB ダウンローダーパッケージをインストールします:

sudo apt-get update
sudo apt-get install snmp-mibs-downloader

ベンダー固有の MIB(例: Cisco、Juniper)を追加する必要がある場合は、適切な MIB ディレクトリに配置してください。

  • Linux ベースのシステムでは、一般的な配置先は /usr/share/snmp/mibs/ または /usr/local/share/snmp/mibs/ です。
  • Zabbix インストール環境では、MIB ファイルは /var/lib/zabbix/mibs/ に保存できます。

MIBDIRS 環境変数または snmp.conf ファイルに正しいパスが含まれていることを確認してください。

システムが新しい MIB を認識していることを確認するには、次を使用します:

snmptranslate -IR -On <MIB-NAME>::<object>

詳細な手順については、ご使用の SNMP ライブラリのドキュメントを参照してください。

2. /etc/snmp/snmp.conf を編集し、mibs : で始まる行をコメントアウトして、システムが利用可能なすべての MIB を読み込めるようにします。

3. snmpwalk を実行して確認します(例: snmpwalk -v 2c -c <your_community_string> <device_IP>)。OID が説明的な名前で表示されることを確認してください。

環境によっては、このガイド内の一部の手順が若干異なる場合があります。 このガイドは、Ubuntu が稼働し、Cisco Catalyst 3750V2-24FS ネットワークデバイスを監視している環境を前提としています。

ネットワークデバイスは、すでに物理的に設置され接続されているものとします。

ネットワークデバイスを設定する(Ciscoルーターの例)

SNMP による監視を行うには、SNMP クエリを許可するようにネットワークデバイスを設定する必要があります。
以下の例は SNMPv2 を対象としており、既存の設定は考慮していません。
注意: これらのコマンドを適用すると、現在の SNMP 設定が上書きされる可能性があります。

Ciscoルーターでは、通常、設定には以下に記載した手順が含まれます。

SNMPv2 の例

1. SNMPを有効にし、コミュニティ文字列を設定します。

Ciscoルーターのコンソールにログインし、設定モードに入ります。

configure terminal

次に、読み取り専用のコミュニティ文字列を指定してSNMPを有効化します。 例:

snmp-server community <your_community_string> RO

<your_community_string> は、安全なコミュニティ文字列に置き換えてください。 注: RO(Read-Only)オプションを指定すると、SNMPでデバイスからデータを取得できますが、設定変更はできません。

セキュリティ上の理由から、SNMPアクセスは必要なデバイスのみに制限することを推奨します。 アクセス制御リスト(ACL)の設定に関する詳細は、Ciscoの公式ドキュメントを参照してください。

2. 設定を保存します。

再起動後もSNMP設定が保持されるように、変更を保存します。

write memory

SNMPv3 の例

SNMPv3 は、認証と暗号化によって強化されたセキュリティを提供します。
その設定は SNMPv2 よりも安全ですが、お使いのデバイス固有のドキュメントに照らして確認する必要があります。

1. SNMP グループを作成します。

プライバシー(暗号化)を有効にした SNMPv3 グループを設定します。

configure terminal
snmp-server group <your_group> v3 priv

2. SNMP ユーザーを作成します。

認証とプライバシーを備えた SNMPv3 ユーザーを追加します。
プレースホルダーは任意の値に置き換えてください。

snmp-server user <your_user> <your_group> v3 auth md5 <auth_password> priv aes 128 <priv_password>

3. 設定を保存します。

write memory

詳細やモデル固有の手順については、外部の Cisco SNMP configuration tutorials を参照できます。
ただし、このガイドでは SNMP 監視を有効にするための基本的な手順を説明しています。

Zabbix Webインターフェースの設定

Zabbix Webインターフェースでホストを作成する

1. Zabbix Webインターフェースにログインします。

2. 新しいホストを追加します。

データ収集 > ホスト に移動し、ホストの作成 をクリックします。

  • ホスト名: デバイスの名前を入力します(例: 「Cisco Router」)。
  • ホストグループ: 既存のグループを選択するか、「Network Devices」などの新しいグループを作成します。
  • インターフェース:
    • インターフェースの下にある 追加 をクリックします。
    • インターフェースタイプとして SNMP を選択します。
    • CiscoルーターのIPアドレスまたはDNS名を入力します。
    • デフォルトのSNMPポート(通常は161)を設定します。
    • ドロップダウンメニューを使用して、適切なSNMPバージョン(例: SNMPv2)を選択します。
    • SNMPv1/v2 の場合は、SNMP community フィールドにコミュニティ文字列を入力します。 SNMPv3 の場合は、追加の認証情報(Context nameSecurity nameSecurity level など)の入力が求められます。

3. テンプレートをリンクします

テンプレート フィールドで、デバイスに最も適したSNMPテンプレートを選択します。 Zabbix には、多くのデバイスファミリー向けにあらかじめ構築された SNMPテンプレート が用意されています。 たとえば、Ciscoデバイスを監視する場合は、デバイスのOSまたはモデルに対応するテンプレートを選択します(Cisco IOS SNMP や Cisco Catalyst 3750<device model> SNMP など)。

4. 追加 をクリックしてホストを保存します。

収集したメトリクスを表示する

おめでとうございます。これで、Zabbix はネットワークデバイスを監視するように設定されました。

最新データ:

  • Zabbix Webインターフェースで、監視 > 最新データ に移動します。

  • 「Cisco Router」ホスト(またはディスカバリされたホスト)を選択して、ハードウェアおよびネットワークの稼働時間、ICMP ロス、ping、応答時間などのメトリクスを表示します。

  • グラフとスクリーン:

パフォーマンスデータを可視化するには、SNMP アイテムの横にある グラフ をクリックして、詳細なメトリクスを表示します。

次のステップとして、以下を実行できます。

SNMPアイテムの作成

ホストの設定が完了したら、特定のメトリクスを監視するためのアイテムを作成できます。
注: テンプレートを使用している場合、この手順は任意です。テンプレートには既にデフォルトのアイテムセットが含まれているためです。

1. SNMP OIDを特定します:

snmpwalk コマンドを使用して、デバイスで利用可能なOIDを一覧表示します。
例:

snmpwalk -v 2c -c <your_community_string> <device_IP> .

監視したいメトリクスのOIDを見つけます(たとえば、ポート3の受信トラフィックの場合は IF-MIB::ifHCInOctets.3)。
数値OIDを取得するには、次を使用できます:

snmpget -v 2c -c <your_community_string> -On <device_IP> IF-MIB::ifHCInOctets.3

2. SNMPアイテムを作成します:

  • Data collection > Hosts に移動し、SNMPホストの Items タブをクリックして、Create item をクリックします。
  • Name: わかりやすい名前を入力します(例: 「ポート3の受信トラフィック」)。
  • Type: SNMP agent を選択します。
  • Key: 意味のあるキーを指定します(例: cisco.ifHCInOctets.3)。
  • Host interface: SNMPインターフェースが選択されていることを確認します。
  • SNMP OID: サポートされている形式のいずれかでOIDを入力します。例:
    • 単一の値の場合は get[1.3.6.1.2.1.31.1.1.1.6.3];
    • 値のサブツリーを非同期に取得するには walk[1.3.6.1.2.1.31.1.1.1.6.3]

  • Preprocessing (必要な場合): アイテムが累積カウンター(インターフェーストラフィックなど)を返す場合は、Preprocessing タブに移動し、「秒ごとの差分」のような前処理ステップを追加して、レートを計算します。

1回のSNMPトランザクションで複数の値を取得するには、walk[OID1,OID2,...] の構文を使用して複数のOIDを指定できます。

数値OIDとMIB名の相互変換

SNMPを扱う際には、数値OIDと対応するMIB名の間で変換する必要が生じることがあります。 この変換により、メトリクスの特定やトラブルシューティングをより容易に行えます。

  • MIB名を数値OIDに変換するには、snmptranslateコマンドに-Onオプションを付けて使用します。 たとえば、MIB名IF-MIB::ifHCInOctets.3を数値OIDに変換するには、次を実行します。
snmptranslate -On IF-MIB::ifHCInOctets.3

このコマンドの出力例:

.1.3.6.1.2.1.31.1.1.1.6.3
  • 数値OIDをMIB名に変換するには、snmptranslateコマンドに-IR(または-m ALL)オプションを付けて、逆方向の変換を行います。 たとえば、数値OID.1.3.6.1.2.1.31.1.1.1.6.3をMIB名に戻すには、次を実行します。
snmptranslate -IR -On .1.3.6.1.2.1.31.1.1.1.6.3

このコマンドの出力例:

IF-MIB::ifHCInOctets.3

問題アラートの設定

このガイドでは、メールアラートを送信するための基本的な設定手順を説明します。

1. ユーザー設定 > プロファイル に移動し、メディアタブに切り替えて、メールアドレスを追加します。

2. 問題通知を受信する のガイドに従ってください。

次回、Zabbixが問題を検知すると、メールでアラートを受信するはずです。

設定をテストする

Zabbixがネットワークパフォーマンスの問題を正しく検出することを確認するために、ICMP pingの応答時間しきい値を上げて実際の問題をシミュレートします。

1. Zabbixで「Cisco Router」ホストの設定を開きます。

2. マクロタブに移動し、継承されたホストマクロとホストマクロを選択します。

3. {$ICMP_RESPONSE_TIME_WARN} マクロ(または同様の応答時間しきい値マクロ)を探します。

4. ping応答がこの値を超えたときにアラートが発生するよう、非常に低い値(例: 0.001)を設定します。

5. 更新をクリックして変更を適用します。

6. Zabbixがシミュレートした問題を検出するまで、しばらく待ちます。

7. 監視 > 障害 に移動し、アラート(例: 「ICMP ping応答時間が高い」)が表示されることを確認します。

アラートが設定されている場合は、障害アラートも受信するはずです。

8. マクロの値を元の設定に戻し、更新をクリックして変更を保存します。

9. 問題が解決され、障害セクションから消えることを確認します。

SNMP監視のトラブルシューティング

ZabbixのWebインターフェースでSNMPアイコンが赤色で表示される、またはデータが収集されない場合は、以下の手順を試してください。

1. SNMP接続を確認します。

SNMPv2の場合は、Zabbixサーバーから次のコマンドを実行します。

snmpwalk -v 2c -c <community_string> <device_IP> .

このコマンドは、デバイスがSNMPクエリに応答することを確認します。

SNMPv3の場合は、適切なSNMPv3認証情報を含めます。

snmpwalk -v3 -u <your_user> -l authPriv -a MD5 -A <auth_password> -x AES -X <priv_password> <device_IP> .

これにより、SNMPv3認証情報が正しく、デバイスが安全に応答していることを確認できます。

2. 前提条件で説明されているように、MIBファイルがインストールされ、有効になっていることを確認します。
これを確認するには、ネットワークデバイスに対してクエリを実行した際に、次のコマンドでエラーが発生してはいけません。

snmpwalk -v 2c -c <your_community_string> <device_IP> ifInOctets

これにより、エラーなしで変換済みのOIDが返されるはずです。

3. Zabbixで設定されているSNMPバージョンと認証情報が、デバイスに設定されているものと一致していることを確認します。
たとえば、Zabbixのホスト設定にあるSNMP設定を確認し、デバイスの設定と照合してください。
Ciscoデバイスでは、次のコマンドを実行してSNMP設定を確認できます。

show running-config | include snmp

これにより、コミュニティ文字列(SNMPv2の場合)またはSNMPv3ユーザーの詳細が正しいことを確認できます。

4. ネットワークデバイスでSNMPが正しく有効になっていることを確認します。
Ciscoルーターでは、コンソールにログインして次を実行します。

show running-config | include snmp

このコマンドは有効なSNMP設定を表示し、SNMPが正しく設定されていることの確認に役立ちます。

5. Zabbixサーバーとデバイスの間で、ファイアウォールやネットワーク上の問題によってSNMPトラフィック(通常はポート161)がブロックされていないことを確認します。
接続性は次のコマンドでテストできます。

nc -zv <device_IP> 161

nc -zv は、デバイス上でポート161が開いており、待ち受けているかどうかを確認します。

さらに、UbuntuでUFWを使用している場合は、ファイアウォールの状態を確認してください。

sudo ufw status

または、iptablesの場合は次を実行します。

sudo iptables -L -n

6. 問題の特定に役立てるため、SNMP関連のエラーがないかZabbixサーバーのログファイルを確認します。

tail -f /tmp/zabbix_server.log

tail -f を使用すると、ログの更新をリアルタイムで監視できます。

関連項目: