Flowmon FAQ 187

記事公開日:
最終更新日:2021.09.29

トラフィックが閾値を超えた際にアラートを発報するように設定しています。
発報したアラート数を週次/月次などの単位で集計する機能はありますか?

Flowmonには、アラートの発生回数を集計する機能は有りません。
しかしながらアラート毎に発報数をカウントするスクリプトを作成することにより、回数を集計する事ができます。

以下のサンプルスクリプトでは週計と月計をアラート発報毎にカウントし、アラート画面の「スクリプトのパラメータ」に指定されたメールアドレスに現時点の集計数を通知する例です。
(本FAQのサンプルスクリプトはサポートの対象外です。)
#!/bin/bash

export LANG=ja_JP.UTF-8

Mail_to=$1

day_week=`date +%u`
#day_week=7
day=`date +%d`
HHMM=`date +%H%M`
ResetTime=0000

Weekly_File="/home/flowmon/Script/total_alerts/Weekly_total"
Monthly_File="/home/flowmon/Script/total_alerts/Monthly_total"

if [ ! -e $Weekly_File ]; then
  echo "0" > $Weekly_File;
fi

if [ ! -e $Monthly_File ]; then
  echo "0" > $Monthly_File;
fi

i=`cat $Weekly_File`
i=$(($i +1))
echo $i > $Weekly_File

j=`cat $Monthly_File`
j=$(($j +1))
echo $j > $Monthly_File

if [ "$day_week" -eq 7 ] ; then
#日曜日の0時に週計をリセット
        if [ $HHMM -eq $ResetTime ] ; then
                echo "0" > $Weekly_File;
        fi
fi

if [ $day -eq 01 ] ; then
#1日の0時に月計をリセット
        if [ $HHMM -eq $ResetTime ] ; then
                echo "0" > $Monthly_File;
        fi
fi

subject="現時点のアラート発報数"
contents="
現時点のアラート発報数は以下のとおりです。

週計:$i 件
月計:$j 件
"

/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接続して以下のスクリプトで記載した場所に配置してください。
集計/月計のリセット例は簡易的に示すために必ず5分毎にアラートが発報される前提としています。実際にはアラートが発報されなかったときに集計結果をリセットする仕組みを考慮する必要が有ります。
#!/bin/bash
sh /home/flowmon/Script/total_alerts/total_alerts.sh $1