Zabbixでネットワークスイッチまたはルーターを監視する
はじめに
このガイドでは、Zabbix を使用してネットワークスイッチまたはルーターの基本監視を開始するために必要な手順を説明します。 例として Cisco ルーターを使用しますが、この手順は SNMP 対応のあらゆるネットワークデバイスに適用できます。
このガイドの対象者
このガイドは、ネットワークデバイスの基本監視をすばやく有効化したい新しい Zabbix ユーザーおよびネットワーク管理者向けに作成されています。 詳細なカスタマイズや高度な設定オプションが必要な場合は、SNMP エージェント のページ、または Zabbix マニュアルの Configuration セクションを参照してください。
前提条件
このガイドを進める前に、次の項目が用意されていることを確認してください。
- Zabbix サーバーと Zabbix Webインターフェースがインストールされていること: お使いの OS の手順に従ってインストールしてください (パッケージからのインストール および 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 を有効にし、community string を設定します。
Cisco ルーターのコンソールにログインし、設定モードに入ります:
configure terminal
次に、読み取り専用の community string を指定して SNMP を有効化 します。 例:
snmp-server community <your_community_string> RO
<your_community_string> を、セキュアな 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 フィールドに community string を入力します。 SNMPv3 の場合は、追加の認証情報(Context name、Security name、Security level など)の入力が求められます。
3. テンプレートをリンクする
Templates フィールドで、デバイスに最も適した SNMP テンプレートを選択します。 Zabbix には、多くのデバイスファミリー向けにあらかじめ用意された SNMP templates が多数あります。 たとえば、Cisco デバイスを監視する場合は、デバイスの OS またはモデルに対応するテンプレート(Cisco IOS SNMP や Cisco Catalyst 3750<device model> SNMP など)を選択します。
4. 追加 をクリックしてホストを保存します。


収集されたメトリックを表示する
おめでとうございます! Zabbix のセットアップが完了し、ネットワークデバイスの監視を開始できるようになりました。
最新データ:
- Zabbix Webインターフェースで、Monitoring > Latest data に移動します。

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

- グラフと画面:
パフォーマンスデータを可視化するには、SNMP アイテムの横にある Graphs をクリックして、詳細なメトリックを表示します。
次のステップとして、以下を実行できます。
- カスタム 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 ホストの アイテム タブをクリックしてから、アイテムの作成 をクリックします。
- 名前: 説明的な名前を入力します(例: "Port 3 Incoming Traffic")。
- タイプ: SNMP agent を選択します。
- キー: 意味のあるキーを指定します(例:
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名の間でOIDを変換する
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. User settings > Profile に移動し、Media タブに切り替えて、メールアドレスを追加します。

2. 障害通知の受信 のガイドに従います。
次回 Zabbix が障害を検出したときに、メールでアラートを受け取れるはずです。
設定をテストする
Zabbix がネットワークパフォーマンスの問題を正しく検出できるようにするには、ICMP ping の応答時間しきい値を増やして、実際の障害をシミュレートします。
1. Zabbix で "Cisco Router" ホストの設定を開きます。
2. Macros タブに移動し、Inherited and host macros を選択します。
3. {$ICMP_RESPONSE_TIME_WARN} マクロ(または同様の応答時間しきい値マクロ)を見つけます。
4. 非常に低い値(例: 0.001)を設定し、ping 応答がこの値を超えたときにアラートが発生するようにします。
5. Update をクリックして変更を適用します。
6. Zabbix がシミュレートされた問題を検出するまで、しばらく待ちます。
7. Monitoring > Problems に移動し、アラートが表示されることを確認します(例: "High ICMP ping response time")。

アラートが 設定されている 場合は、障害アラートも受信されます。
8. マクロの値を元の設定に戻し、Update をクリックして変更を保存します。
9. 障害が解消され、Problems セクションから消えることを確認します。
SNMP監視のトラブルシューティング
Zabbix WebインターフェースでSNMPアイコンがREDになっている、またはデータが収集されない場合は、次の手順を試してください。
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. 問題の特定に役立てるため、Zabbix サーバーのログファイルでSNMP関連のエラーを確認します。
tail -f /tmp/zabbix_server.log
tail -f を使うと、ログの更新をリアルタイムで監視できます。
関連項目:
- アイテムの作成 - 追加のメトリクスを追加する方法について説明します。
- SNMP エージェント - Zabbix による SNMP 監視に関する追加情報です。
- ネットワークデバイス向けの標準化されたテンプレート - 利用可能な SNMP テンプレートに関する情報です。
- SNMP OID のディスカバリ - スイッチ上での SNMP ディスカバリに関する追加情報です。
- ネットワークディスカバリルールの設定 - Zabbix がホストとサービスを検出するために使用するネットワークディスカバリルールの設定方法に関する追加情報です。