2011-12-05 11 views
1

サーバー上のログを確認するときに、私が深く掘り下げられる前に直面している問題の種類を簡単に概観したいと思います。私は通常、以下の1行を使用します。これは、各行をより汎用的にし、一意のものだけを保持することによって、検討する必要があるログ行の数を減らします。ログファイルを確認するスクリプト

ワンライナー

cat /var/log/apache2/error.log | sed 's/.*] \(.*\)/\1/' | sed 's/[0-9]*//g' | sort | uniq 

説明

| sed 's/.*] \(.*\)/\1/':一般的に、このような[Mon Dec 05 12:01:03 2011] [error] [client a.b.c.d]

など、クライアント/システム固有の情報に対応し、最後のブラケットグループ内および前に含まれるすべてのものを削除します

| sed 's/[0-9]*//g':数字を削除

| sort | uniq:異なる行のみを保持します。

約500行を含む/var/log/apache2/error.logに考えてみましょう。これは25行にフィルタリングされます。もちろん、より一般的な/同様のログエントリほど、1ライナーが効果的です。

私が今探していますが、より効果的になるように例えばファイルパスを難読化(もう少し高度な同じことを行うことができます(bashperlpythonまたは実際に何かすることができる)が、スクリプトです、アルファベット順のids ...)と便利です(各メッセージの出現回数、ログ全体の量と比較して...)。

これを行うスクリプトをご存知ですか?

+0

あなたがまだいない場合は、ScanErrLogを見てください –

+1

-1お気に入りの検索エンジンで見つかるログアナライザはたくさんあります。ホイールを再構築する必要はありません。 –

+0

上記に同意します。しかし、あなた自身をロールバックしなければならない場合、あなたが扱っている問題を具体的にするいくつかのサンプルデータを投稿する必要があります。がんばろう。 – shellter

答えて

4

logwatchをご覧ください。それはあなたに共通のログファイルの毎日の概要を送ります。私はこれまでメールログにしか使用していませんでしたが、afaikはApacheログも処理できます。

関連する問題