ZabbixのSNMP監視手順とNetFlowでトラフィックを可視化する方法

本記事ではZabbixで行うネットワーク監視の設定方法を解説します。また、Zabbixでは対応できないNetFlowでトラフィックの内訳まで可視化する方法も紹介するので、参考にしてみてください。

ネットワーク監視で活用すべき3つの手段

ネットワーク監視を行う方法として3つ大きく種類があります。まずはこの3つの特徴を解説します。

1. SNMP

1つ目はネットワーク監視でよく使われるSNMPを利用した監視になります。SNMPは管理するSNMP Managerと管理されるSNMP Agentの2つで構成され、一般的には監視サーバがSNMP Managerとなり、ネットワーク機器がAgentとなります。Managerから定期的にポーリングしてデータを取得する事で情報を取得します。

SNMPの管理情報はMIB(Management Information Base)として定義されており、ツリー構成となっています。1つ1つのオブジェクトにOIDと呼ばれるユニークなIDが付与されているため、例えば特定のポートの情報のみを取得したい場合は対象となるOIDを特定する必要があります。

2. SNMP traps

2つ目はSNMP trapを利用した監視になります。SNMPと同様のManger/Agentの関係は変わりないのですが、SNMP trapはSNMPと違いネットワーク機器で生じるイベントに応じてAgent側からManagerに情報を通知します。この特性を活かすことで特定ポートのLink Down/Up等のステータス変更をリアルタイムで通知させることが可能になります。

3. NetFlow / sFlow

3つ目はNetFlow/sFlowになります。NetFlowは米シスコシステムズ(Cisco Systems,INC.)が開発したネットワークのトラフィックの情報を監視・分析するための技術です。NetFlowはシスコ社製の製品に組み込まれていますが、sFlowはRFCで定義されており、多くのベンダーが提供するネットワーク機器に実装されています。いずれもネットワーク機器で流れるパケットからフローデータを生成し、能動的に監視サーバに情報を送るため、リアルタイムのネットワーク監視に優れています。

NetFlowはすべてのパケットを参照してフローデータを生成しますが、sFlowは一部のパケットでサンプリングしてフローデータを生成する等の違いがあります。

Zabbixで行うネットワーク監視

Zabbixでネットワーク監視を行う方法には、先に紹介したSNMPとSNMP trapがあります。実際にそれぞれの監視設定手順を紹介します。

Zabbixで行うSNMP監視手順

1. ネットワーク機器のSNMP有効化

今回はAWS上で動作するソフトウェアルータであるCisco Cloud Service Router (CSR) 1000Vを利用していますが、監視対象となる機器やソフトウェアのバージョンに合わせて適宜コマンドは置き換えてください。

ZabbixのSNMP監視手順1

Routerで設定後、疎通可能な端末からsnmpwalkを利用して値が取得出来ているかどうかを確認します。監視元であるZabbixサーバから行うのが理想です。

ZabbixのSNMP監視手順2

コマンド実行後、上記のように取得できていれば問題ありません。

2. Zabbix Serverでのホスト登録

次にSNMP監視をするためにZabbixにネットワーク機器のホストを新規に登録していきます。

ZabbixのSNMP監視手順3

ホスト情報を入力していきますが、サーバと違いInterfaceをAgentからSNMPに変更する必要があります。変更後、先程ネットワーク機器で設定した内容に合わせてSNMPの設定を入力します。この時点ではまだAddしないでください。

ZabbixのSNMP監視手順4

次に今回利用しているCiscoのIOSに対応したSNMPのTemplatesを登録します。Templatesは利用する機器に合わせて変更して頂く必要がありますが、Ciscoであれば汎用的に今回のTemplatesが利用できます。監視したい内容に合わせてTemplatesを複数選択する事も可能です。

ZabbixのSNMP監視手順5

選択後、次の画像のようにLink new templatesに選択したTemplatesが表示されていれば大丈夫です。これでAddからホストを登録します。

ZabbixのSNMP監視手順6

Add直後はホストの横にあるSNMPのマークがグレーアウトされていますが、暫くすると画像のように緑色に変化します。これで設定したSNMPで値が取得出来ている状態になりました。

ZabbixのSNMP監視手順7

取得したデータはMonitoringからグラフデータとして見ることも可能です。また、ネットワーク機器の場所など属性毎にZabbixのScreensを登録するとより視覚的にわかりやすく監視する事も可能になります。

ZabbixのSNMP監視手順8

3. 通知設定

Templatesを利用した事でTriggersが既に複数登録されています。標準的なICMPによるネットワーク機器の監視やSNMPの取得失敗、uptimeがリセットされた事によるルータの再起動などを通知させる事ができています。これがTemplatesを利用した際のメリットでもあります。後は、要件に合わせて不要な監視はTriggerのStatusをEnabledからDisabledに変更し、しきい値を変更する場合は各Triggerの条件式を変更しましょう。

ZabbixのSNMP監視手順9

メール通知の設定方法は既に他記事で紹介しているため、今回は割愛します。

Zabbixで行うSNMP trap監視手順

次にZabbixでSNMP trapの監視を行う方法について紹介します。デフォルトのZabbixの機能だけでは監視を行う事ができないため、次の図に示すように少し工夫が必要になります。

必要な設定をこのあと順番に解説していきます。

1. ルータのSNMP trap有効化

監視対象となるネットワーク機器のSNMP trapを有効化します。ご利用の機器及びファームウェアバージョンに合わせて設定してください。

ZabbixのSNMP trap監視手順1

2. Zabbixサーバへのsnmpインストール及びsnmptrapdの設定

次にZabbixサーバにsnmp関連のパッケージをインストールします。これはネットワーク機器から一度、Zabbixサーバ上でSNMP trapを受け取る必要があるためになります。インストールは今回利用したAmazon Linuxで実施していますが、適宜コマンドを変更してください。

ZabbixのSNMP trap監視手順2

インストールが完了したら、snmptrapdの設定を行います。設定後、snmptrapdの起動及び自動起動を有効化します。追加する設定は以下2行になりますが、Community名及びログ成形スクリプト(zabbix_trap_receiver.pl)のパスは適宜変更してください。

> authCommunity log,execute,net public
> perl do "/usr/local/bin/zabbix_trap_receiver.pl";

ZabbixのSNMP trap監視手順3

3. Perlモジュールのインストール及び成形スクリプト配置

成形用スクリプトはZabbix Serverのソースコード内にあるため、コピーして利用します。成形用スクリプトを修正して、ログの出力先を変更しておきます。

ZabbixのSNMP trap監視手順4

次にPerlのモジュールをインストールして、成形用スクリプトの実行環境を整えます。CPANの実行結果が長いため、コマンドのみ記載します。

CPANのインストール
# yum install perl-CPAN.noarch -y
必要なPerlモジュールをCPANからインストール
# cpan

対話式で色々聞かれますが、基本的にはEnterで大丈夫です。プロンプトがcpanに変わったら以下コマンドを実行してください。

cpan[1]> install Config::IniFiles
cpan[2]> bye

試しにZabbixサーバでテストのSNMP trapを発生させ、意図したログファイルに出力できるかを確認します。次の画像のように設定したパスにSNMP trapが出力されていれば問題ありません。

ZabbixのSNMP trap監視手順5

4. Zabbixの設定

後はZabbixの設定に出力されたSNMP trapを読み込ませれば設定は完了です。設定したSNMP trapのログ出力先とZabbixのオプションを有効化して、再起動します。

ZabbixのSNMP trap監視手順6

あとはルータ側からテストでTrapを発生させて通知してみます。ここでiptablesやZabbix Server側のFWで忘れずにSNMPのポートを開放してください。ログ出力が確認できれば、ルータから問題なくSNMP trapを連携出来ている事になります。

ZabbixのSNMP trap監視手順7

あとはZabbixのGUI上での設定になります。実は先程行ったルータのSNMP監視で登録しているTemplatesに既にSNMP trapのitemが含まれているため、先程行ったテストのSNMP trapが既に読み込まれている事を確認する事が出来ます。

ZabbixのSNMP trap監視手順8

アラートとなるTriggersの設定ですが、今回は全てのSNMP trapをZabbixに集約しているため、Zabbix側のTriggersで検知した文字列を設定する事で特定のSNMP trapのみをアラートとして通知する事が可能になります。ネットワーク機器の負荷を考慮すると本来であれば必要なSNMP trapのみを通知するようにルータ側で設定した方が望ましいかと思います。少し工夫が必要でしたが、これでSNMP trapをZabbix上に集約する事が出来ました。

NetFlowまで可視化する方法

ここからはSite24x7(サイトトゥエンティーフォーセブン)でネットワーク監視を行う方法を紹介します。Site24x7はSaaSですが、オンプレミスのネットワーク機器を監視するためのオンプレミスポーラーという機能が用意されています。

これは閉域網内にSite24x7のエージェントを導入することでそのエージェント経由で監視を行うソリューションとなります。これにより、インターネットからの通信を開放する事なく、エージェント発信でSaaSと連携する事によりセキュリティレベルを下げずにSaaSによる監視を実現する事が可能になります。それでは、実際にオンプレミスポーラー導入からネットワーク機器の監視を実施するまでを紹介していきます。

Site24x7にログイン後、管理からオンプレミスポーラーの追加画面まで遷移します。

遷移後、プラットフォームをLinuxにするとインストールコマンドが生成されます。デバイスキーはインストールの途中で必要になるため、表示させた上で入力してください。

仮想マシン上でのエージェント導入は実行ログが長いため、実行結果は割愛させて頂きますが、最後に以下のような出力がされれば、残りはSite24x7にログインしての作業となります。

Site24x7にログインするとオンプレミスポーラーの管理画面上に追加したエージェントが表示されています。あとはこの画面上でネットワーク監視を有効化するとエージェントに必要なモジュールがインストールされます。

モジュール追加後、以下のようにステータスがアップに変化します。これでSaaSであるSite24x7からオンプレミス環境の監視を行う準備が整いました。

Site24x7で行うSNMP監視手順

それではSite24x7でSNMP監視を行うために、オンプレミス環境内のネットワーク機器の監視を追加していきます。

先程追加したオンプレミスポーラーが表示されるはずなので、選択した上で次へ進みます。

SNMPの認証情報は必要に応じて変更の上で次へ進んでください。

監視対象のネットワーク機器の追加方法を選択します。装置の追加を選択すると表示名とIPアドレスを入力しますが、ネットワークの追加を選択すると入力したネットワークレンジからネットワーク機器をディスカバリする事が出来ます。今回はテストで1台だけとなりますので、装置の追加を選択します。この際、登録する機器のテンプレートを選択する事ができるため、対象機器のテンプレートを検索の上で追加してください。テンプレートの種類がかなり豊富で、今回利用したCSR 1000Vのテンプレートも用意がありました。

次にインターフェースのフィルタールールを追加する事が出来ます。自動でディスカバリーする場合のルールを設ける事で不要なインターフェースの追加を無視する事ができます。今回は使わないので、そのまま次へ進みます。

確認画面で表示内容に誤りがなければ、ディスカバリします。

追加後、ネットワーク機器をSite24x7に表示されるまで数分程度かかります。正常に登録できればこのように表示され、装置パフォーマンスやインターフェース毎の通信量が可視化されます。

アラートの設定もアクションから簡単に設定する事が出来ます。

なお、ここでは割愛しますが、Site24x7はSNMP trapも監視できます。

Site24x7で行うNetFlow監視手順

次にZabbixでは対応できなかったNetFlowの監視をSite24x7で設定してみます。予めネットワークデバイス側でNetFlowの設定は完了していることを前提とします。※使用するデバイスやファームウェアバージョンによってコマンドが異なるため、お使いの機器のマニュアルなどをご確認ください。

オンプレミスポーラーは先ほど導入済みのため、NetFlowのデバイスを登録していきます。

NetFlow監視手順1

オンプレミスポーラーが複数ある場合は監視対象のデバイスがあるポーラーを選択してください。今回は1つしかありませんので、そのまま次に進みます。

NetFlow監視手順2

次に追加するデバイスのNetFlow設定を行う事を自動で行う事が出来ます。ただし、Site24x7が対応しているデバイスのみとなり、非対応の場合は手動で設定する必要があります。既に設定済みの場合はこの手順をスキップしてください。

NetFlow監視手順3

次にInterface情報取得のために利用するSNMPの認証情報を選択します。こちらも環境に合わせて適宜変更してください。今回は1つのみなので、そのまま選択して次に進みます。

NetFlow監視手順4

SNMPの認証情報が正しければ、Interface情報が表示されます。監視したいものを選択して、次へ進みます。

NetFlow監視手順5

次に監視するデバイスの監視グループ、しきい値、アラートを設定する事が出来ます。設定値は環境に合わせて適宜変更してください。

NetFlow監視手順6

確認画面で内容に問題がなければ、デバイスを追加してください。

NetFlow監視手順7

収集に少し時間がかかりますが、NetFlowの設定が正しく行えていればアプリケーションタブから時間別に統計データをグラフ化して見る事が出来ます。SNMP監視ではトラフィック総量に対する監視しか行えておりませんでしたが、NetFlowではこのアプリケーション毎のトラフィック量に対してアラートを設定する事が可能になります。

NetFlow監視手順8

また接続元や宛先毎の統計や特定IPアドレスの時間別集計グラフなどもドリルダウンで表示させる事や指定したIPアドレスのトラフィック量でアラートを検知させることも出来ます。

※上記アプリケーショングラフでもアプリケーション毎にグラフ表示可能

NetFlow監視手順9

まとめ

いかがでしたでしょうか。SNMPとNetFlowを利用したトラフィック監視を紹介しましたが、NetFlowを利用したトラフィック監視の方がより高度なアラート設定やアラート検知後の原因調査が効率的に実施できることが伝わったのではないでしょうか。

画像や動画等のコンテンツ需要が増えているため、ネットワークトラフィック量は増加傾向にあります。管理するサーバ台数が増えれば増えるほどネットワーク機器の監視登録や運用は煩雑になりがちです。可能な限り収集した情報の分析などは自動化し、運用管理者には判断する事に注力するような監視体制が求められているかと思います。

ネットワーク監視でZabbixなどの既存製品では手が届きにくいところもSaaS型の監視ソリューションであるSite24x7を採用してはいかがでしょうか。

プランと価格の詳細はこちら:
https://www.site24x7.jp/pricing.html

FREEプランのサインアップはこちら:
https://www.site24x7.jp/signup.html?pack=1&l=ja

ZabbixとSite24x7の機能比較一覧はこちら:
https://www.site24x7.jp/zabbix-alternative.html

関連記事