最も一般的なエラーメッセージを見つけるためにUNIXログファイルを見つける方法

最も一般的なエラーメッセージを見つけるためにUNIXログファイルを見つける方法

ファイルの例 Apache ログファイルがある場合

タイムスタンプなしでUnixログファイルから最も一般的なエラーメッセージを抽出する方法

重要なのは、最も一般的なエラーメッセージがリストの上部に表示されなければならないことです。

答え1

cat /tmp/file:

ERROR 1 1234
ERROR 2 1234
ERROR 3 1234
ERROR 4 1234
ERROR 4 1234
ERROR 3 1234
ERROR 2 1234
ERROR 5 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 1 1234
ERROR 1 1234
ERROR 3 1234
ERROR 2 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 2 1234

grep "ERROR" /tmp/file | sort | uniq -c | sort -r:

  8 ERROR 1 1234
  5 ERROR 4 1234
  4 ERROR 2 1234
  3 ERROR 3 1234
  1 ERROR 5 1234

最初の列には、見つかった各文字列の発生数が表示されます。

grep "ERROR" /tmp/file\ # select only ERROR string
| sort\ # order
| uniq -c\ #  count duplicate items
| sort -rn # reverse order and use numeric sort

最初の5つのエラーに追加できます。|head -n5

答え2

一意のエラーが発生するには、タイムスタンプを切り取る必要があると思います。

grep 'エラーメッセージ' /logfiles |cut-d' ' -f6- |sort-nr

答え3

すべてのsystem.logエラーを特定の順序で「並べ替える」ことに興味があるかもしれません。日付+時間また?

試み:(日付検索のみ)

grep -i "Jul 18" /var/log/*.log | sort | uniq -c | sort -n 

試してみてください:(特定日付+時間探す)

grep -i "Jul 18 16:" /var/log/*.log | sort | uniq -c | sort -n 

注:特定の日付については、まずcat * .logを実行してから、ヘッダーに表示される内容を見つけます。 OSによって異なる場合があります。上記の例はUNIX / MacOS用です。特定のオペレーティングシステムの「cat /var/log/system.log」ヘッダーの内容に基づいて、「Jul 18 16:」を「手動で」編集する必要があります。

役に立ったことを願っています!

:)

関連情報