Flowmon FAQ 152

記事公開日:

アラート機能を使用してトラフィック流量の監視をしています。
帯域が閾値を超えた時に直近5分の送信元Top10のレポートをメールに添付して通知することはできますか?

アラート機能をトリガーとしてレポートを生成することはできません。
しかしながら、スクリプトを作成することで直近5分の送信元Top10のCSV形式を作成し、メール本文に記載して通知することは可能です。

以下のサンプルスクリプトでは、5分前の送信元Top10を集計し、メールで通知する例です。 アラート画面の「スクリプトのパラメータ」に送信したいメールアドレスと空白を1つ開けてメールの件名を指定します。

送信元Top10などの集計用のコマンドは解析画面で解析を行うと高度な解析欄の右上に表示される黒い■マークをクリックすると表示されます。
(本FAQのサンプルスクリプトはサポートの対象外です。)

#/bin/bash

export LANG=ja_JP.UTF-8

Mail_to=$1

# 以下のパスを解析したいプロファイルに合わせます。
ProfilePath="/data/nfsen/profiles-data/live/172-16-247-247_p3000"

make_date=`date "-d -5 minutes" "+%Y/%m/%d"`
ProfilePathDate=$ProfilePath/$make_date

#直近の5分のファイルを抽出
search_term=`ls -rt $ProfilePathDate | tail -n 1`
search_term=$search_term":"$search_term

# 統計基準や並べ替え基準、TopN数を指定します。
top10=`/usr/local/bin/nfdump -M $ProfilePath -R $search_term -n '10' -S 'srcip'/'bytes' -6 --no-scale-number -o 'csv'`

subject="$2"
contents="$2

送信元のTOP10は以下のとおりです。

$top10
"
/usr/bin/php /var/www/shtml/index.php cli:SendEmail -body="$contents" -to="$Mail_to" -subject="$subject"
ret=$?
if [ $ret -eq 1 ]; then
 logger "send mail failure"
 exit 1
fi

(注意)
上記スクリプトを直接アラート画面の「スクリプトのアップロード」からアップロードすると動作しないことが有ります。
その場合は以下のようなスクリプトを起動するだけのスクリプトをアラート画面からアップロードし、実際に集計する上記スクリプトはFlowmonにSSH接続して以下のスクリプトで記載した場所に配置してください。

#/bin/bash
sh /home/flowmon/Script/Top10/Top10_sample.sh $1 $2