rotatelogs.exeでApacheのログを分ける
こないだApacheのログを見たら開けなくて、そんな位に肥大してしまっていたのでした。 100MBとかになっていた...。
そんな訳でログを月ごとに分ける事にしました。 Windows版のApacheにもrotatelogs.exeが入ってますので、これを使ってhttpd.confを書き換えて反映させます。
CustomLog "| C:/home/padmalog/rotatelogs.exe C:/home/padmalog/%Y-%m.log 1" combined
デフォルトではbinディレクトリーの中にrotatelogs.exeが入っているのですけれども、そのパスで行うと、Apacheは起動するものの、ログに書き込みがされません。
何でだ何でだと悩みましたが結局原因はわからず、わからないながらも一つの仮説を勝手に立ててみました。 それは「パス内に半角空白が入っているとダメ」というもの。 これまでのでは「C:/Program Files/Apache Group/Apache/」なんていって半角空白が2つも入っちゃってるので、なんとなくそう思っただけなんですけどね。
そこでC:/homeにpadmalogというディレクトリーを作り、そこにrotatelogs.exeのコピーを置きました。 また、ログも同じディレクトリーに置いてしまえば管理が楽だな、なんて。 更にはawstatsのコンフィグファイルのエイリアスも置いちゃえ! だって(笑)。
右の画像はMacから覗いてみたところ。 awstatsのコンフィグファイルを(Macな)エイリアスにしたのは、管理をMac側から行おうとしているからです。
rotationtimeが1(秒)なのは苦肉の策と申しましょうか。 最初はお約束通りに86400(1日)にしていたんです。 でも、ログが月別なのに、なんで1日更新にするのか自分でもよくわかんなかった。 でも1月にするのも難しい、何故ならば月によって日数が違うので、自然と秒数も変わってきます。 ですから指定が出来ないです。
Otherwise, the suffix .nnnnnnnnnn is automatically added and is the time in seconds. Both formats compute the start time from the beginning of the current period.
そもそもこれって拡張子にシステムタイムがスタンプされて、それが1日経つと別ファイルになる、っていうものらしいんですが、そんなこんなでウチでは月別ですから、全然整合していない訳です。
いや、私だってよくわからないまま作業しているんで、もしかしたら重大な間違いがあるかも知れません。 が、アクセスの度にログファイルの入っているディレクトリーをリロードしたんですけど、1秒毎に新しいファイルが作られるなんてことは無かったので、多分これでいいんじゃないかと。 後は来月になって、ですね。 新しいファイルが作られるのかな...(期待&不安)
ちなみにこの作業と同時にワームのアクセスをログに残さない作業も行いました。 これもhttpd.confを書き換えるのですが、googleで「worm apache SetEnvIf Request_URI」とかで検索すればうじゃうじゃと(まるでワームのように)ヒットしますので、それらを参考にしました。




