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

はじめに

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

対象者

このガイドは、ネットワークデバイスの基本的な監視を迅速に開始したい、Zabbix を初めて使用するユーザーとネットワーク管理者を対象としています。詳細なカスタマイズや高度な設定オプションが必要な場合は、Zabbix マニュアルの SNMP エージェント ページまたは 設定 セクションを参照してください。

前提条件

このガイドに進む前に、以下のものを用意してください。

  • Zabbix サーバーと Zabbix フロントエンドがインストールされている:お使いのオペレーティングシステムの手順に従ってインストールしてください(パッケージからのインストール および Web インターフェースのインストール を参照)。
  • 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 ライブラリのドキュメントを参照してください。

  1. /etc/snmp/snmp.conf を編集し、mibs: で始まる行をコメントアウトして、システムが利用可能なすべての MIB をロードできるようにします。
  2. snmpwalk コマンド(例:snmpwalk -v 2c -c <your_community_string> <device_IP>)を実行し、OID がわかりやすい名前で表示されていることを確認してください。

このガイドは、以下の環境に基づいています。

  • Zabbix バージョン:7.0(パッケージからインストール)
  • OS ディストリビューション:Ubuntu
  • OS バージョン:24.04.2+
  • Zabbix コンポーネント:サーバー、フロントエンド、およびオプションでエージェント(ローカルネットワークメトリックを監視する場合)
  • データベース:MySQL
  • Web サーバー:Apache
  • ネットワークデバイス:Cisco Catalyst 3750V2-24FS

ネットワークデバイスは既に物理的に設置され、接続されていることを前提としています。

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

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

Ciscoルータの場合、設定は通常、以下の手順で行います。

SNMPv2 の例

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

Cisco ルータのコンソールに ログイン し、コンフィギュレーションモードに入ります。

configure terminal

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

snmp-server community <コミュニティ文字列> RO

<コミュニティ文字列> をセキュアコミュニティ文字列に置き換えてください。注: RO (読み取り専用) オプションを選択すると、SNMP はデバイスからデータを取得できますが、設定の変更はできなくなります。

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

2. 設定を保存します。

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

write memory

SNMPv3 の例

SNMPv3 は、認証と暗号化によりセキュリティを強化します。SNMPv3 の設定は SNMPv2 よりも安全ですが、デバイス固有のドキュメントで確認する必要があります。

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

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

configure terminal
       snmp-server group <グループ名> v3 priv

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

snmp-server user <ユーザー名> <グループ名> v3 auth md5 <認証パスワード> priv aes 128 <プライベートパスワード>

3.設定を保存します。

write memory

詳細またはモデル固有の手順については、外部のCisco SNMP設定チュートリアルを参照してください。ただし、このガイドでは、SNMP監視を有効にするための基本的な手順を説明しています。

Zabbixフロントエンドの設定

Zabbixフロントエンドでホストを作成する

1. Zabbixフロントエンドにログインします。

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<デバイスモデル> 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 アイテムを作成します。

  • データ収集 > ホスト に移動し、SNMP ホストの アイテム タブをクリックして アイテムの作成 をクリックします。
  • 名前: わかりやすい名前を入力します(例: "ポート 3 受信トラフィック")
  • タイプ: SNMP エージェント を選択します。
  • キー: 意味のあるキーを入力します(例: cisco.ifHCInOctets.3
  • ホスト インターフェース: 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]

  • 前処理 (必要な場合): アイテムが累積カウンタ(インターフェーストラフィックなど)を返す場合は、前処理タブに移動し、"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 フロントエンドの SNMP アイコンが赤色で表示されている、またはデータが収集されていない場合は、次の手順を試してください。

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

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

snmpwalk -v 2c -c <コミュニティ文字列> <デバイス IP>

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

SNMPv3 の場合、適切な SNMPv3 認証情報を指定します。

snmpwalk -v3 -u <ユーザー名> -l authPriv -a MD5 -A <認証パスワード> -x AES -X <プライベートパスワード> <デバイス IP>

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

2. 前提条件 に記載されているように、MIB ファイルがインストールされ、有効化されていることを確認します。これを確認するには、ネットワークデバイスをクエリする際に、以下のコマンドでエラーが発生しないようにする必要があります。

snmpwalk -v 2c -c <コミュニティ文字列> <デバイス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 が開いていて、デバイスで listen しているかどうかを確認します。

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

sudo ufw status

または、iptables の場合は以下のコマンドを実行します。

sudo iptables -L -n

6. Zabbix サーバーのログファイルで SNMP 関連のエラーを確認し、問題を特定します。

tail -f /tmp/zabbix_server.log

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

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