• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【apache】特定のログだけ取りたくない)

【apache】特定のログだけ取りたくない

このQ&Aのポイント
  • Cent 5.2 Apache 2.2.3 suEXEC環境で特定のログを取得しない方法を教えてください
  • 特定の拡張子や特定のファイルのログを取得しない方法を教えてください
  • error_logに表示されるエラーログを非表示にする方法を教えてください

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

  • ベストアンサー
  • uwi
  • ベストアンサー率74% (55/74)
回答No.2

具体的に書いた方が早かったですね。 <VirtualHost 10.0.0.1> ErrorLog "|/usr/local/bin/errorlog.pl /var/log/httpd/error_log.10.0.0.1" </VirtualHost> /usr/local/bin/errorlog.plの中身 --- #!/usr/bin/perl my $text = <STDIN>; # 標準入力 $text =~ /Directory index forbidden by Options directive/ and exit; # 特定の文章が含まれていたら終了 my $filename = $ARGV[0]; #第一引数 open FILE, ">>${filename}"; # ファイルに追記 print FILE $text; close FILE; --- とすると/var/log/httpd/error_log.10.0.0.1には"Directory index forbidden by Options directive"を含む文字は追加されません。 ErrorLogをCustomLogに変えても同じです。 ※スクリプトは短くするためにいろいろ端折ってるのでこのまま実運用すると危険です。

r-n-y
質問者

補足

具体的に言って頂き、 ありがとうございますm(_ _)m これで色々とログ見るのが楽になるかと思います。 感謝です。 ありがとうございました。

その他の回答 (1)

  • uwi
  • ベストアンサー率74% (55/74)
回答No.1

mod_mime_magic: can't read Premature end of script headers: log.cgi はsuEXEC環境だとよくあるエラーログですね。 で、エラーがでなくなる方法ではなくログを出さない方法ということなので、私なら CustomLog "|/usr/local/bin/特定の文字列を保存しない便利なスクリプト.sh /var/log/access_log" common とパイプで標準入力を渡して、お手製ログを作ります。 これなら、どんなエラーだろうがログから消せます。

r-n-y
質問者

補足

レスありがとうございます。 なるほど! お手製ログですか・・・ 残った方が良いですからね! ただ、 バーチャルホストしてまして、 複数のドキュメントルートがある中で、 上記のをするとなると一つ一つになりません? 出来るかまだやってませんが、 # SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(ico)|(js)|(swf)|(css)$" nolog の変更したバージョン? # SetEnvIf Request_URI "\.(log.cgi)$" # CustomLog logs/hogehoge_log common など使えると言う事でしょうか? > 便利なスクリプト.sh /var/log/access_log" common とパイプで標準入力を渡して とこの辺りが少し理解しにくくて、、、 勉強不足ですいません・・・ ## Directory index forbidden by Options directive: /var/​www/httpdocs/21/​ の方はバーチャルなので、 /var/www/httpdocs/21/・・・・略 で一つ一つ取ると膨大な量なので、 エラーの内容のDirectoru index・・・ を吐かない、別のログファイルに保存は厳しそうでしょうか?

関連するQ&A