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 downloader パッケージをインストールします。

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 設定チュートリアル を参照できます。
ただし、このガイドでは SNMP 監視を有効にするための基本的な手順を説明しています。

Zabbixフロントエンドの設定

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

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

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

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

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

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

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

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

収集されたメトリクスの表示

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

最新データ:

  • Zabbix フロントエンドで、監視 > 最新データに移動します。

  • "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秒あたりの変化量」のような前処理ステップを追加してレートを計算します。

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 を使用すると、ログの更新をリアルタイムで監視できます。

こちらも参照してください: