awk

awkでapacheやnginxのアクセスログから欲しい情報を抜き出す

Apache のアクセスログを見る場面に遭遇すると、決まって「あのコマンド何だったっけ?」って状況に陥るので、忘れないうちにメモっておきます。

もっとたくさんあったんだけど、また思い出したら追記していきます。

今回は Apache を例にしますが nginx の場合も同様の方法でカバーできます。

リクエストの処理時間のフィルタ

例えば Apache のリクエスト単位の処理時間が 2 秒以上のアクセスのみ取得したいケースを想定します。

ちなみに、処理時間を秒でログに出力するには、Apache のログフォーマットで %T を指定する必要があります。

ステータスコードのフィルタ

Apache のレスポンスのステータスコードが 500 のアクセスのみ取得したいケースを想定します。

間違って == の条件式を = にしちゃうと、該当カラムにその値が表示されるだけなので注意が必要です。