2017-02-28 7 views
0

私はあまりコーダーではありませんが、私は実行しているプログラムでloganalyzer(小さなシェルスクリプト?)を実行してコマンドを実行しますプロセスを開始し、新しいプロセスを開始する)、アラートを送信します。 /var/log/mylogfile.log で ログファイルプログラムの開発は、もののすべての種類があり書き込み、私はloganalyzerがパターンを検索したい、と言うことができます:「エラー33ファイルが見つからない」またはarroundの何指定されたエラーがあればexecコマンドとメールで警告を受け取ります

"前提変更"または "状態変更"。

パターンの1つがたとえば1分で4回一致する場合は、毎分ログファイルをチェックする(crontab)、コマンドを実行してメールで私に警告する。 私はスクリプトがすべての実行中のプロセスをチェックしてそれらをすべて終了するようにしたいので、pkill -x [nameofprogramm]を使用することをお勧めします。

私はtail -fn 0を使い、パターンが、何らかの理由で私はエラーが発生した場合にx時間を確認する方法を見つけ出すことはできません。

今、私はちょうどその試合が電子メールが起こるたびに得る。

あなたからの提案はありますか?

はすでにそのためMONITを使用しようとしましたが、いくつかの理由のMONITのために、私があれば知らないような複雑なもので、事前に

おかげ

よろしく

答えて

0

を処理することは容易ではありませんあなたのログファイルには何らかの回転がありますが、そうでない場合は、事象の発生を数えようと考えるなら、本当に考えるべきだと思います:)

awkあなたはpあなたのログで懸命に調査しています。

あなたの回数については、ここではファイルに「ERROR」が含まれている行数をカウントする簡単な例です:

#!/bin/ksh 
grep_occurence() { 
     pattern=$1 
     file=$2 
     limit=$3 
     nb_errors=$(grep ${pattern} ${file} | wc -l) 
     if [ ! -f ${file} ] 
     then 
       echo "[ERROR] The file ${file} does not exists" 
       exit 1 
     fi 


     if [ ${nb_errors} -gt ${limit} ] 
     then 
       echo "There were ${nb_errors} occurence of ${pattern} in ${file}" 
       return ${nb_errors} 

     fi 
} 

logfile=/var/log/mylogfile.log 
#grep_occurence "PATTERN" "LOGFILE" "LIMIT" 
grep_occurence "ERROR" "${logfile}" 5 
0

バックスラッシュ、私はあなたのポストをコメントしているだろうが、私が持っていませんそうするために十分な評判...だから私は別の「答え」

を作ってるんだ、私はそれはあなたのログに依存すると思う...

これらのログはapplicatives(JBossのは、WebLogic、...)であれば私は本当にtailオプションを使用することをお勧めしません。たとえば、特定のjavaエラーのためにログが200行ずついっぱいになっていて、尾を-20nにすると、多くの情報が欠落します...

タイムスタンプはありますかあなたのログに?はいの場合、ログを解析して最後の分だけを保存することができます。

関連する問題