access.logの記録内容の設定
sorry Japanese only
最終更新日 2004/06/14
page size = Mbyte

httpサーバーの apacheって、アクセスしてきた人の記録が残るようになっているのですが、それほどアクセスが多い訳では無くとも凄い量のテキストファイルが出来上がってしまいます。

apacheを installした直後の httpd.confでは、色々なアクセスをごちゃ混ぜで access.logというファイルが出来るようになっているのですが、見にくいので、アクセスごとにログの出力先を変更してみました。
httpd.confを以下のようにしました
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

SetEnvIf Request_URI "/ruby_counter" counter no_log
SetEnvIf Request_URI "/wcnt" counter no_log
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)$" gazoulog no_log
SetEnvIf Remote_Addr 192.168.0. locallog no_log !counter !gazoulog
SetEnvIf Remote_Addr 127.0.0. locallog no_log !counter !gazoulog
SetEnvIf Remote_Host "comp1$" locallog no_log !counter !gazoulog
SetEnvIf LIMITIP !locallog no_log !counter !gazoulog

CustomLog logs/gazou.log common env=gazoulog
CustomLog logs/local.log common env=locallog
CustomLog logs/counter.log combined env=counter
CustomLog logs/access.log combined env=!no_log
自分でページ確認する為にアクセスした物は省略モードで local.logへ
画像ファイルへのアクセスは省略モードで gazou.logへ
カウンター関係でアクセスのあった物は詳細モードで counter.logへ
その他のファイルへのアクセスは詳細モードで access.logへ
接続制限の errorは logを取らない。(どういう訳か、これはうまく働いていません)

-------------------------------------------------------------------------------------

2004/06/14追加
その後、ログファイルは以下のような設定になりました。
LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined    *8
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

SetEnvIf Request_URI "/ruby_counter" counter no_log                      *1
SetEnvIf Request_URI "/wcnt" counter no_log                              *1
SetEnvIf Request_URI "/c_count" no_log                                   *1
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(JPG)|(GIF)|(PNG)$" no_log     *2
SetEnvIf Request_URI "/favicon.ico" no_log                               *3
SetEnvIf Remote_Addr 192.168.0. locallog no_log !counter !gazoulog       *4
SetEnvIf Remote_Addr 127.0.0. locallog no_log !counter !gazoulog         *4
SetEnvIf Remote_Host "comp1$" locallog no_log !counter !gazoulog         *4
SetEnvIf LIMITIP limitlog !locallog no_log !counter !gazoulog            *5
SetEnvIf Request_URI "default\.ida" worm no_log                          *6
SetEnvIf Request_URI "cmd\.exe" worm no_log                              *6
SetEnvIf Request_URI "root\.exe" worm no_log                             *6
SetEnvIf Request_URI "NULL\.printer" worm no_log                         *6
SetEnvIf Request_URI "NULL\.IDA" worm no_log                             *6
SetEnvIf Request_URI "_vti_bin" worm no_log                              *6
SetEnvIf Request_URI "MSOffice" worm no_log                              *6
SetEnvIf Request_URI "scripts" worm no_log                               *6

CustomLog logs/limit.log common env=limitlog         *5
CustomLog logs/gazou.log common env=gazoulog         *2
#CustomLog logs/local.log common env=locallog        *4
CustomLog logs/counter.log combined env=counter      *1
CustomLog logs/worm.log common env=worm              *6
CustomLog logs/access.log combined env=!no_log       *7
*1 カウンターの CGIへのアクセスは、詳細モードで counter.logへ
*2 画像ファイルはログを取らない
*3 Netscapeがタブの所へ表示するアイコン favicon.icoへのアクセスもログを取らない
*4 自分からのアクセスはログを取らない (下でコメントアウトしてあります)
*5 limitipconnで制限がかかったエラーは、簡易モードで limit.logへ (働かなかったし、現在は limitipconn外してあるので書いてあっても意味無いのですが)
*6 ウィルス関係は簡易モードで worm.logへ
*7 1〜6で条件に引っかからず no_logに何も設定されてなければ、詳細モードで access.logへ
*8 近頃多い『URI too long』の worm対策の為 http error 414 (URI too long error)のログは取らない(!414で取らない設定)にしました

15351
戻る