SNMP対応スイッチのポートトラフィックをZabbixで監視する

#今回のお題は
SNMP対応スイッチのポートを指定して、Zabbixでトラフィック監視を行います。ポート毎にトラフィック流量を可視化することで、ネットワーク問題のボトルネックを特定することを期待しています。

#設定手順
##スイッチのMIB情報を参照する
とあるスイッチのMIB情報を参照します。net-snmpとnet-snmp-utilsがインストールされたマシンで、スイッチのIPアドレスとSNMPエージェントのポート番号を指定してsnmpwalkコマンドを投入します。

```
snmpwalk -v 2c -c public xxx.xxx.xxx.xxx:161
```

今回の対象機種は初期設定でコミュニティ名publicでMIB情報を参照できました。スイッチによってはSNMPエージェントの設定をする必要があります。

##スイッチのトラフィック情報に該当するOIDを探す
出力されたMIB情報を見ながら、トラフィック情報に該当するOIDを探します。どうも下記の2種類が該当しそうです。ここで、xxはスイッチのポート番号っぽいです。

* IF-MIB::ifInOctets.101xx
* IF-MIB::ifOutOctets.101xx

別のスイッチではこのようになっており、メーカーは同じでも機種によってMIBツリーが異なるので要注意です。

* IF-MIB::ifInOctets.xx
* IF-MIB::ifOutOctets.xx

##スイッチの監視設定をZabbixに投入する
ここでは、ポート番号を99番として、前述のIF-MIB::ifInOctets.101xxをターゲットとして設定します。スイッチのIPアドレスはxxx.xxx.xxx.xxxとします。Zabbixは2.2.2、日本語は文字化けするので、英語設定で使用しています。
###ホストを登録する
Zabbixにadmin権限でログインし、ConfigurationメニューのHostsを選択して、Create hostボタンを押下します。
![menu.jpg](https://qiita-image-store.s3.amazonaws.com/0/37930/e685641d-4f77-13aa-2fcc-3de1914132f9.jpeg)

ホスト登録画面が表示されるので、SNMP interfaces欄のAddリンクを押下します。
![createhost.jpg](https://qiita-image-store.s3.amazonaws.com/0/37930/f1ef8483-ec8b-0637-8f21-03da659c3e42.jpeg)

ここでの入力内容は下記の通りです。

* Host name: 任意のホスト名（Zabbixで一意）を指定します。
* Visible name: Zabbix画面上の表示名を指定します。
* Groups: ホストを所属させるグループを指定します。適切なグループがなければ、New group欄に新しいグループ名を指定しましょう。
* SNMP interfaces
監視対象スイッチのIPアドレスをIP address欄に入力して、ポートはデフォルトの161のまま、Addリンクを押下します。

ここまで入力できたら、画面左下のSaveボタンを押下して保存します。

hogeというグループにA switchを登録するとこのようになります。まだアイテムを登録していないので、SNMP監視アイコンはグレーアウトされたままです。
![createhost.jpg](https://qiita-image-store.s3.amazonaws.com/0/37930/2b88b0f9-e4f7-f853-0276-5435ea6c93d1.jpeg)

###アイテムを登録する
Hosts一覧画面から目的のスイッチのItemsリンクを押下するとアイテム登録画面になりますので、画面右上のCreate Itemボタンを押下してCONFIGURATION OF ITEMS画面を表示します。
![createhost.jpg](https://qiita-image-store.s3.amazonaws.com/0/37930/06d32bc6-05fe-4f7e-0a91-67f8f12a5c03.jpeg)

ここでの登録情報は下記の通りです。他の項目はデフォルトでOKです。

* Name: Zabbixでの表示名を指定します。
* Type: SNMPv2 agentを選択します。
* Key: Zabbix内で一意になるようにキーを指定します。面倒なので私はOIDから禁止文字の:を削除して設定しました。
* SNMP OID: 監視目的のOIDを指定します。（たとえば、IF-MIB::ifInOctets.101xx）
* Use custom multiplier: チェックして8を入力します。
* Store value: Delta（speed per second）を選択します。

入力ができたら、画面左下のSaveボタンを押下して保存します。
下図のようにアイテムのStatusがEnabledと表示されればOKです。
![createhost.jpg](https://qiita-image-store.s3.amazonaws.com/0/37930/ec8c8446-df74-347b-8729-b630a72a8f41.jpeg)

同様に必要な監視対象を登録していきます。

###グラフの登録
登録したアイテムを確認しやすくするため、グラフを登録します。Hosts画面で当該アイテムのGraphsリンクを押下してCONFIGURATION OF GRAPHS画面を表示します。
![createhost.jpg](https://qiita-image-store.s3.amazonaws.com/0/37930/2ed1d2ad-e87a-41cd-ac54-9bdfa68e66ce.jpeg)

画面右上のCreate graphボタンを押下してCONFIGURATION OF GRAPHS画面を表示します。


ここでの登録情報は、下記の通りです。

* Name: 任意のグラフ名を指定します。
* Items: Addリンクを押下してアイテムを選択します。

登録が成功すると、下図の画面が表示されます。
![createhost.jpg](https://qiita-image-store.s3.amazonaws.com/0/37930/5dc429a5-8284-24a5-a763-dad1934253f4.jpeg)

MoniteringメニューのGraphsから、登録したグラフが参照できることを確認します。
![createhost.jpg](https://qiita-image-store.s3.amazonaws.com/0/37930/d32525e3-e166-aba8-a963-fe3a2fcf76a4.jpeg)

#まとめ
以上の設定を繰り返し、スクリーンで複数のグラフをまとめて表示するとこのようになります。
![createhost.jpg](https://qiita-image-store.s3.amazonaws.com/0/37930/951ca75f-48ec-5fb4-25ba-23eb7805372f.jpeg)

ネットワークの監視は厄介なものですが、こうしてポートレベルまで見られるとかなり役立ちますね。ただ、手間がかかりますが。。。地道にコツコツ主要なスイッチを登録していくしかないですね。。。
あ、ローレベルディスバリってのが使えるのかな。時間ができたら調べてみます。