[comment]: # ({382ff618-7d35b712})
# 10 Zabbixでネットワークスイッチやルーターを監視する

[comment]: # ({/382ff618-7d35b712})

[comment]: # ({d9702cdc-aea68f1a})
## はじめに

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

**このガイドの対象者**

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

**前提条件**

このガイドを進める前に、次の項目が準備されていることを確認してください。

-   Zabbix サーバーと Zabbix Webインターフェースがインストールされていること: お使いの OS の手順に従ってインストールしてください ([Installation from packages](/manual/installation/install_from_packages) および [Web interface installation](/manual/installation/frontend) を参照)。
-   ローカルのネットワークメトリクスを監視する場合は Zabbix エージェントがインストールされていること。
-   SNMP 対応デバイス: SNMP が有効なネットワークスイッチまたはルーター（例: Cisco ルーター）。
-   [MIB files](/manual/config/items/itemtypes/snmp/mibs) がインストールされていること: MIB ファイルをインストールすると、Zabbix は数値の OID を人間が読める名前や説明に変換できます。
適切な MIB サポートがない場合、数値のみが表示され、アイテムの設定や問題のトラブルシューティングが難しくなることがあります。

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

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

```bash
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 を認識していることを確認するには、次を使用します:

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

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

-   [Cisco MIBs](https://github.com/cisco/cisco-mibs)
-   [Juniper MIBs](https://apps.juniper.net/mib-explorer/)

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

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

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

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

[comment]: # ({/d9702cdc-aea68f1a})

[comment]: # ({aea0a787-703f62e1})
## ネットワークデバイスの設定（Ciscoルーターの例）

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

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

[comment]: # ({/aea0a787-703f62e1})

[comment]: # ({08cfb265-e36b1d35})
### SNMPv2の例

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

[Ciscoルーターのコンソールにログイン](https://www.cisco.com/c/en/us/support/docs/smb/switches/cisco-small-business-300-series-managed-switches/smb4982-access-an-smb-switch-cli-using-ssh-or-telnet.html)し、設定モードに入ります。

```default
configure terminal
```

次に、読み取り専用のコミュニティ文字列を指定して[SNMPを有効にします](https://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-protocol-snmp/7282-12.html)。
例：

```default
snmp-server community <your_community_string> RO
```

``<your_community_string>`` を安全なコミュニティ文字列に置き換えてください。
注：RO（読み取り専用）オプションは、SNMPがデバイスからデータを取得できるようにしますが、設定の変更はできません。

セキュリティ上の理由から、必要なデバイスのみにSNMPアクセスを制限することを推奨します。
アクセスコントロールリスト（ACL）の設定に関する詳細は、[Ciscoの公式ドキュメント](https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus3000/sw/security/503_u2_2/Cisco_n3k_security_cg_503_u2_2_chapter7.html?dtid=osscdc000283)を参照してください。

2\. 設定を保存します。

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

```default
write memory
```

[comment]: # ({/08cfb265-e36b1d35})

[comment]: # ({5c8aa85b-87017956})
### SNMPv3の例

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

1\. SNMPグループの作成

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

```default
configure terminal
snmp-server group <your_group> v3 priv
```

2\. SNMPユーザーの作成

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

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

3\. 設定の保存

```default
write memory
```

詳細やモデル固有の手順については、外部の[Cisco SNMP設定チュートリアル](https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/snmp/configuration/xe-16/snmp-xe-16-book/nm-snmp-cfg-snmp-support.html)を参照してください。
このガイドでは、SNMP監視を有効にするための基本的な手順を提供しています。

[comment]: # ({/5c8aa85b-87017956})

[comment]: # ({9891bde8-8df5d064})
## Zabbixフロントエンドの設定

[comment]: # ({/9891bde8-8df5d064})

[comment]: # ({1cae7e5e-3dc3ccce})
### 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](/manual/config/templates_out_of_the_box/network_devices#devices) が多数あります。
たとえば、Cisco デバイスを監視する場合は、デバイスの OS またはモデルに対応するテンプレート（Cisco IOS SNMP や Cisco Catalyst 3750\<device model\> SNMP など）を選択します。

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

![](../../../assets/en/manual/guides/switch_host.png){width="600"}

![](../../../assets/en/manual/guides/switch_host1.png){width="600"}

[comment]: # ({/1cae7e5e-3dc3ccce})

[comment]: # ({95c1af51-a35d4c3a})
## 収集されたメトリクスを表示する

おめでとうございます! Zabbix でネットワークデバイスの監視が設定されました。

最新データ:

-   Zabbix Webインターフェースで、Monitoring > Latest data に移動します。

![](../../../assets/en/manual/guides/switch_hosts.png){width="600"}

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

![](../../../assets/en/manual/guides/switch_data.png){width="600"}

-   グラフと画面:

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

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

-   [カスタム SNMP アイテムを追加する](#create-snmp-items) ことで、追加のメトリクスを監視します。
-   [障害アラートを設定する](#set-up-problem-alerts) ことで、潜在的な問題に関する通知を受け取ります。

[comment]: # ({/95c1af51-a35d4c3a})

[comment]: # ({9cbc3034-ff776e8a})
### SNMPアイテムの作成

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

1\. SNMP OIDを特定する:

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

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

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

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

2\. SNMPアイテムを作成する:

-   *データ収集 > ホスト* に移動し、SNMP ホストの *アイテム* タブをクリックして、*アイテムの作成* をクリックします。
-   *名前*: 説明的な名前を入力します（例: "Port 3 Incoming Traffic"）。
-   *タイプ*: *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]`` は値のサブツリーを非同期で取得します。

![](../../../assets/en/manual/guides/switch_item.png){width="600"}

-   *前処理*（必要な場合）: アイテムが累積カウンター（インターフェーストラフィックなど）を返す場合は、*前処理* タブに移動し、「1秒あたりの変化」などの前処理ステップを追加してレートを計算します。

![](../../../assets/en/manual/guides/switch_preprocessing.png){width="600"}

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

[comment]: # ({/9cbc3034-ff776e8a})

[comment]: # ({53a42dcd-1b28232c})
### 数値OIDとMIB名の相互変換

SNMPを使用する際、数値OIDと対応するMIB名を相互に変換する必要がある場合があります。
この変換により、メトリクスの特定やトラブルシューティングが容易になります。

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

```bash
snmptranslate -On IF-MIB::ifHCInOctets.3
```

このコマンドの出力例:

```bash
.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名に変換するには、次のように実行します。

```bash
snmptranslate -IR -On .1.3.6.1.2.1.31.1.1.1.6.3
```

このコマンドの出力例:

```bash
IF-MIB::ifHCInOctets.3
```

[comment]: # ({/53a42dcd-1b28232c})

[comment]: # ({133d5107-c98bb7b1})
## 障害アラートの設定

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

1\. [*ユーザー設定 > プロファイル*](/manual/web_interface/user_profile) に移動し、*Media* タブに切り替えて、[メールアドレスを追加します](/manual/quickstart/login#adding-user)。

![](../../../assets/en/manual/quickstart/new_media.png){width="600"}

2\. [障害通知の受信](/manual/quickstart/notification) のガイドに従います。

次回 Zabbix が障害を検出したときに、メールでアラートを受信できるはずです。

[comment]: # ({/133d5107-c98bb7b1})

[comment]: # ({1be06fac-a0c24d90})
## 設定をテストする

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

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

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

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

4\. 非常に低い値（例：0.001）を設定し、ping応答がこの値を超えた場合にアラートが発生するようにします。

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

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

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

![](../../../assets/en/manual/guides/switch_problem.png){width="600"}

[アラートが設定](#set-up-problem-alerts)されている場合は、問題アラートも受信するはずです。

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

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

[comment]: # ({/1be06fac-a0c24d90})

[comment]: # ({28c7c206-d7537870})
## SNMP監視のトラブルシューティング

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

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

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

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

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

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

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

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

2\. [前提条件](#prerequisites)で説明されているとおりに、MIBファイルがインストールされ、有効になっていることを確認します。  
これを確認するには、ネットワークデバイスを問い合わせた際に、次のコマンドでエラーが出ない必要があります。

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

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

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

```default
show running-config | include snmp
```

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

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

```default
show running-config | include snmp
```

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

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

nc -zv <device_IP> 161

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

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

```bash
sudo ufw status
```

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

```bash
sudo iptables -L -n
```

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

```bash
tail -f /tmp/zabbix_server.log
```

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

[comment]: # ({/28c7c206-d7537870})

[comment]: # ({20664b64-aeb05d60})
**関連情報:**

- [アイテムの作成](/manual/config/items/item) - 追加のメトリクスを追加する方法について説明します。
- [SNMPエージェント](/manual/config/items/itemtypes/snmp) - ZabbixによるSNMP監視に関する追加情報。
- [ネットワークデバイス用の標準化テンプレート](/manual/config/templates_out_of_the_box/network_devices) - 利用可能なSNMPテンプレートに関する情報。
- [SNMP OIDのディスカバリ](/manual/discovery/low_level_discovery/examples/snmp_oids_walk) - スイッチでのSNMPディスカバリに関する追加情報。
- [ネットワークディスカバリルールの設定](/manual/discovery/network_discovery/rule) - Zabbixがホストやサービスを検出するために使用するネットワークディスカバリルールの設定方法に関する追加情報。

[comment]: # ({/20664b64-aeb05d60})
