• ベストアンサー

Apacheで特定のログだけ抽出したい。

LinuxにてApache2を運用しているのですが、特定の条件のログのみ抽出できないものかと悩んでいます。 特定の条件とは、例えばUser-Agentが"Mozilla"で、 ステータスコードが"206"、尚且つURIに".gif"を含む。 と言う様な複数の条件を全てクリアしたアクセスのみロギングしたいのです。 SetEnvIfを使おうかと思ったのですがアンド条件の場合の方法が 思いつきませんでした。 外部のスクリプト等を使えば簡単だとは思うのですが、 httpd.confの設定のみで行なえないものでしょうか? どうかアドバイスをよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Lean
  • ベストアンサー率72% (435/603)
回答No.2

SetEnvIfディレクティブとCustomLogディレクティブで行うとしているわけですよね? しかし、OR条件は作れますが、AND条件を作る事は出来ません。 AND条件を作りたいのでしたら、参考URLにある方のようにSetEnvIfディレクティブを提供しているmod_setenvif.cを修正(hack)し機能拡張する方法もあります。 パッチもありますがApache 1.3.28に対してのものようです。 ソース修正を行える力があるのでしたら、Apache2の方にも有効かどうかしりませんが参考にしてディレクティブの追加を考えてみるのも1つの方法かもしれません。

参考URL:
http://www.nminoru.jp/~nminoru/unix/apache.html#setenvif2
samisan
質問者

お礼

なるほど、直接モジュールを編集しちゃう訳ですね。 紹介していただいたページを参考にモジュールを変更してみようと思います。 ありがとうございました!

その他の回答 (1)

  • mcq
  • ベストアンサー率48% (45/93)
回答No.1

httpd.confのディレクティブには詳しくないのですが、 ご要望の手法はかなり例外的な使い方だと思います。 もし宜しければ、「httpd.confの設定のみで行ないたい」理由を教えていただけませんか? その方が、より適切な回答を得られると思います。

関連するQ&A