本記事ではZabbixで行うネットワーク監視の設定方法を解説します。また、Zabbixでは対応できないNetFlowでトラフィックの内訳まで可視化する方法も紹介するので、参考にしてみてください。
目次
- ネットワーク監視で活用すべき3つの手段
- Zabbixで行うネットワーク監視
- Zabbixで行うSNMP監視手順
- Zabbixで行うSNMP trap監視手順
- 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を利用していますが、監視対象となる機器やソフトウェアのバージョンに合わせて適宜コマンドは置き換えてください。
Routerで設定後、疎通可能な端末からsnmpwalkを利用して値が取得出来ているかどうかを確認します。監視元であるZabbixサーバから行うのが理想です。
コマンド実行後、上記のように取得できていれば問題ありません。
2. Zabbix Serverでのホスト登録
次にSNMP監視をするためにZabbixにネットワーク機器のホストを新規に登録していきます。
ホスト情報を入力していきますが、サーバと違いInterfaceをAgentからSNMPに変更する必要があります。変更後、先程ネットワーク機器で設定した内容に合わせてSNMPの設定を入力します。この時点ではまだAddしないでください。
次に今回利用しているCiscoのIOSに対応したSNMPのTemplatesを登録します。Templatesは利用する機器に合わせて変更して頂く必要がありますが、Ciscoであれば汎用的に今回のTemplatesが利用できます。監視したい内容に合わせてTemplatesを複数選択する事も可能です。
選択後、次の画像のようにLink new templatesに選択したTemplatesが表示されていれば大丈夫です。これでAddからホストを登録します。
Add直後はホストの横にあるSNMPのマークがグレーアウトされていますが、暫くすると画像のように緑色に変化します。これで設定したSNMPで値が取得出来ている状態になりました。
取得したデータはMonitoringからグラフデータとして見ることも可能です。また、ネットワーク機器の場所など属性毎にZabbixのScreensを登録するとより視覚的にわかりやすく監視する事も可能になります。
3. 通知設定
Templatesを利用した事でTriggersが既に複数登録されています。標準的なICMPによるネットワーク機器の監視やSNMPの取得失敗、uptimeがリセットされた事によるルータの再起動などを通知させる事ができています。これがTemplatesを利用した際のメリットでもあります。後は、要件に合わせて不要な監視はTriggerのStatusをEnabledからDisabledに変更し、しきい値を変更する場合は各Triggerの条件式を変更しましょう。
メール通知の設定方法は既に他記事で紹介しているため、今回は割愛します。
Zabbixで行うSNMP trap監視手順
次にZabbixでSNMP trapの監視を行う方法について紹介します。デフォルトのZabbixの機能だけでは監視を行う事ができないため、次の図に示すように少し工夫が必要になります。
必要な設定をこのあと順番に解説していきます。
1. ルータのSNMP trap有効化
監視対象となるネットワーク機器のSNMP trapを有効化します。ご利用の機器及びファームウェアバージョンに合わせて設定してください。
2. Zabbixサーバへのsnmpインストール及びsnmptrapdの設定
次にZabbixサーバにsnmp関連のパッケージをインストールします。これはネットワーク機器から一度、Zabbixサーバ上でSNMP trapを受け取る必要があるためになります。インストールは今回利用したAmazon Linuxで実施していますが、適宜コマンドを変更してください。
インストールが完了したら、snmptrapdの設定を行います。設定後、snmptrapdの起動及び自動起動を有効化します。追加する設定は以下2行になりますが、Community名及びログ成形スクリプト(zabbix_trap_receiver.pl)のパスは適宜変更してください。
> authCommunity log,execute,net public > perl do "/usr/local/bin/zabbix_trap_receiver.pl";
3. Perlモジュールのインストール及び成形スクリプト配置
成形用スクリプトはZabbix Serverのソースコード内にあるため、コピーして利用します。成形用スクリプトを修正して、ログの出力先を変更しておきます。
次に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が出力されていれば問題ありません。
4. Zabbixの設定
後はZabbixの設定に出力されたSNMP trapを読み込ませれば設定は完了です。設定したSNMP trapのログ出力先とZabbixのオプションを有効化して、再起動します。
あとはルータ側からテストでTrapを発生させて通知してみます。ここでiptablesやZabbix Server側のFWで忘れずにSNMPのポートを開放してください。ログ出力が確認できれば、ルータから問題なくSNMP trapを連携出来ている事になります。
あとはZabbixのGUI上での設定になります。実は先程行ったルータのSNMP監視で登録しているTemplatesに既にSNMP trapのitemが含まれているため、先程行ったテストのSNMP trapが既に読み込まれている事を確認する事が出来ます。
アラートとなる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のデバイスを登録していきます。
オンプレミスポーラーが複数ある場合は監視対象のデバイスがあるポーラーを選択してください。今回は1つしかありませんので、そのまま次に進みます。
次に追加するデバイスのNetFlow設定を行う事を自動で行う事が出来ます。ただし、Site24x7が対応しているデバイスのみとなり、非対応の場合は手動で設定する必要があります。既に設定済みの場合はこの手順をスキップしてください。
次にInterface情報取得のために利用するSNMPの認証情報を選択します。こちらも環境に合わせて適宜変更してください。今回は1つのみなので、そのまま選択して次に進みます。
SNMPの認証情報が正しければ、Interface情報が表示されます。監視したいものを選択して、次へ進みます。
次に監視するデバイスの監視グループ、しきい値、アラートを設定する事が出来ます。設定値は環境に合わせて適宜変更してください。
確認画面で内容に問題がなければ、デバイスを追加してください。
収集に少し時間がかかりますが、NetFlowの設定が正しく行えていればアプリケーションタブから時間別に統計データをグラフ化して見る事が出来ます。SNMP監視ではトラフィック総量に対する監視しか行えておりませんでしたが、NetFlowではこのアプリケーション毎のトラフィック量に対してアラートを設定する事が可能になります。
また接続元や宛先毎の統計や特定IPアドレスの時間別集計グラフなどもドリルダウンで表示させる事や指定したIPアドレスのトラフィック量でアラートを検知させることも出来ます。
※上記アプリケーショングラフでもアプリケーション毎にグラフ表示可能
まとめ
いかがでしたでしょうか。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
関連記事
- Zabbix 6.0 サーバー構築手順(インストールから初期設定まで)
- Zabbix Agentのインストールと設定手順
- Zabbixでログ監視する手順(Windowsイベントログ監視・Syslog監視)
- Zabbixでプロセス監視する手順
- Zabbixでアラートをメール通知する手順
- ZabbixのPing実行手順とPing監視する手順
- ZabbixでWeb監視とシナリオ監視する手順
- ZabbixのSNMP監視手順とNetFlowでトラフィックを可視化する方法
- ZabbixでCPU使用率を監視する手順
- Zabbixで死活監視する手順
- Zabbixでポート監視する手順
- Zabbixでサービス監視する手順(Windowsサービス監視)
- Zabbixでメモリ使用率を監視する手順
- Zabbixでリソース監視する手順
- Zabbixでディスク使用率を監視する手順
- ZabbixでDNS監視する手順
- ZabbixでDockerコンテナを監視する手順
免責事項:ここに記載されているすべての著作権、商標、商号は、元の所有者の所有物です。このWebページに含まれる情報は、一般的な情報提供のみを目的としており、そのような情報は、正確性、信頼性、または完全性について調査、監視、または確認されていません。 当社は、ここに含まれる情報への依存に起因する誤り、または損失に対する責任を明示的に否認します。