ITインフラ技術の実験室ITインフラ技術の実験室Linuxを中心に、仮想化やネットワーク、Windowsまで、ITインフラ技術に関するノウハウを幅広く紹介します。Flash)はじめに前々回の記事「netflowでネットワークフロー解析(softflowdでサーバをセンサにする)」でOpenblocks600にsoftflowdを導入し、netflowのセンサにしました。前回の記事「netflowでネットワークフロー解析(flow-toolsでフローデータ受信)」では、Openblocks600にflow-toolsを導入し、netflowのコレクタにしました。今回は、コレクタにしたOpenblocks600にFlowScanとCUFlowを導入し、アプリ単位でトラフィックがどのぐらい流れているか分かるようなグラフを作成します。flow-tools導入のためにflowscan-cuflowをインストールした際に、FlowScanとCUFlowもインストールされましたので、本記事ではインストールの記載を割愛します。flow-toolsによるトラブルシューティングです。この本ではP146~156に手動インストール方法が載っていますが、本環境ではaptitudeでインストールしたため、一部を読み替える必要があります。ネットワーク構成は前回と同様です。作業対象はOBS-SBY側です。LAN設定前の事前準備FlowScanやCUFlowで使用するディレクトリを事前に作成します。参考書ではflowscanユーザを作成して、一般ユーザであるネットワーク管理者がrootにならなくてもいいように色々と設定していますが、本環境ではセキュリティ考慮不要なためflowscanユーザについては作成しません。/var/db/flows/test/flowscanrrd※Webからアクセスできる場所、またはflow-captureのログディレクトリにレコードを保存しないようにします。/var/db/flows/test/flowscandataFlowScanの設定FlowScanの設定の設定ファイルであるflowscan.cfを修正します。flowscan.cfファイルの設定値は、FlowFileGlob、ReportClasses、WaitSeconds、Verboseの4つだけです。1オプションの意味を以下に記載します。処理の対象となるファイルをFlowScanに伝えます。後述する方法で/var/db/flows/配下のコレクタログファイルのうち最新のログを/var/db/flows/test/flowscandata/に移します。ユーザが使っているレポートモジュールを列挙する。ディレクトリでファイルをチェックする頻度をFlowScanに指定します。1にすると詳細ログを出力します。ローテーションスクリプトとflow-captureの設定変更/var/db/flows/配下のコレクタログファイル(ft-から始まるファイル)のうち最新のログを/var/db/flows/test/flowscandata/に移すため、flow-captureのログローテーションスクリプトを使用します。flow-captureの-Rオプションは、フローファイルが閉じられて新しい一時ファイルが作成される時にスクリプトを実行します。新しいコレクタログファイルが作成されるたびに/usr/local/bin/flow-rotate.shスクリプトが実行されるように、flow-capture.confの設定を以下のように修正します。192.168.0.131/192.168.0.113/9995flow-captureは、ローテーションプログラムに引数を一つ(閉じられたログファイルの名前)だけ渡します。ft-v05.2011-08-21.194000+0900が実行されるので、flow-rotate.shを以下のように用意することで、このft-v05.2011-08-21.194000+0900が/var/db/flows/test/flowscandata/にコピーされるようになります。flow-capture.しばらくして以下のようにコピーされれば成功です。/var/db/flows/test/flowscandata/ft-v05.2011-08-21.195000+0900ちなみに本ファイルはフローファイルを処理した後、すぐに削除されます。処理したファイルを削除させたくない場合は、FlowScanのデータディレクトリにsavedディレクトリを作成しておくと、FlowScanが処理済のファイルをこのディレクトリへ移動するようになりますが、膨大なファイル量になってしまうので本環境ではsavedを用意しません。CUFlowの設定CUFlow.cfファイルを設定します。このファイルには、どのようなデータを探し、それをどのように処理するのかをFlowScanに伝えるためのさまざまな文が含まれます。Genuity上記設定の意味を解説していきます。ローカルネットワーク上のアドレスをCUFlowに指定します。CUFlowはそれを使って、トラフィックが内と外のどちらに向かうのかを判断します。このネットワークが送信元である場合は外に向かい、送信先である場合は内に向かうと見なされます。本環境ではとりあえずプライベートアドレスを指定しました。別個に追跡したいホストと範囲を指定します。スラッシュ(/)を使ってネットワークで指定しても、ホストで指定しても問題ありません。CUFlowのRRDデータファイルの保存場所を指定します。Webからアクセスできる場所やflow-captureのログディレクトリにレコードを保存しないようにします。CUFlowは、フローファイル内で最もアクティブなサイトを計算し、最も多くのフロー、オクテット、パケットを送信したホストアドレスからなるスコアボードを表示します。そのリストに含めるアドレス数、古いデータを保存するディレクトリ、最新データのファイル名を引数として指定します。注意点としては、Apacheが古いデータを保存するディレクトリと最新データのファイルにアクセスできるように権限を指定することです。AggregateScore文では最もアクティブなホストを追跡します(本環境ではScoreboard文で指定した結果と同じになってしまいました)。表示するホストの数、長期的な集計データを保存するファイル、結果を表示するWebページを指定します。集計データファイルは、RRDデータディレクトリなど、Apacheからアクセスできない場所を指定します。複数のフローセンサーがデータを同じコレクタに送信する場合に識別するため設定です。本環境では1台しかないのでコメントアウトしています。別々に追跡したいTCP/IPポートを定義します。無駄なものがあるとGraphの可視性が低下するので有名どころのアプリケーションが使用するポートに絞りました。Service文のProtocol版です。udpぐらいですが、デフォルト設定を残しておきます。TOSを付与する予定はありませんが、デフォルト設定を残しておきます。BGPを使用していないのでコメントアウトします。Scoreboard文とAggregateScore文で指定したWeb公開用ディレクトリを作成しておきます。/var/www/flowscan/toptenflowscanの実行flowscanの直接起動flowscanには起動シェルが無いため、バックグラウンドで起動するか、daemontools経由で起動するか、起動シェルを自分で作成する必要があります。本環境ではすでに導入済みのdaemontools経由で起動することにしましたが、その前に一度、/usr/bin/flowscanを直接実行して動作を確認します。/var/db/flows/test/flowscandata/ft-v05.2011-08-21.195500+0900...上記ERRORはファイルが無いことから出たと思われます。2回目以降は出ませんでした。2685.上記はエラーでは無いようなので、望ましくはありませんが様子見します。フォアグラウンドで起動したまま置いておくと、5分ごとに以下のログが出力されます。2685.daemontools経由でflowscanを起動flowscanが落ちても自動で立ち上がるよう、daemontools経由で起動するように設定します。以下に手順をまとめておきますが、各コマンドの意味については「daemontoolsでkeepalivedデーモンの稼動管理」にまとめていますので参照して下さい。flowscanCUGrapherによるRRDデータのグラフ化CUFlowには、CUGrapher.plというCGIスクリプトが含まれます。このスクリプトはRRDデータをグラフに変換します。修正箇所は以下の通りです。$hours)});私の環境ではインストール時にWebサーバのCGIディレクトリに置いてありましたので、スクリプトの最初の方にある$rrddirに/usr/lib/cgi-bin/を指定しました。CUGrapher.pl$organizationは任意の文字列を指定します。デフォルトでは12時間単位でのグラフ化になりますが、自宅では一日のうち限られた時間しか使用しないことから拡大表示できるように、1,2,4,6時間単位でもグラフ化できるようにしています。CUGrapher.pl修正後、以下のURLにアクセスします。(導入する環境に合わせて読み直してください)。graph」を押下します。すると、以下のようにグラフが生成されます。以上でFlowScanとCUFlowによるグラフ化が完了しました。次はより細かなカスタマイズが可能なFlowViewerを導入したいと思います。コメントをキャンセルメールアドレスが公開されることはありません。