前回、ローテーションの挙動を確認してアレコレ悩んでる最中のアレコレ
後日、最終まとめます。
ログローテをCRONにて実行すると、CRONの実行時間でローテされる。
たとえWeeklyにしていてもMonthlyにしていても、キッチリ00:00にはならない。
これは仕様のようだけども、CRONの時刻をキッチリに変更したところで1秒程度の微妙な誤差が生じる事もある。
ローテされる時間をキッチリ分けたい時はApacheの機能であるrotatelogsを使用すると良いらしい
現在
Apacheログ生成→logrotate.d優先→月別ローテーション→過去ログ保存→余剰分自動削除
月別のローテが、CRONにて実行される時刻で微妙に曖昧なトコロ
変更
Apacheログ生成→rotatelogs→月別ローテ→過去ログ保存→余剰分スクリプトで削除
と、してみたいけども~この方法は永遠に過去ログが保存されるとの事。
コチラには、たいして説明が無いが
http://httpd.apache.org/docs/2.2/ja/logs.html
ファイル名の後にlog.1 log.2と自動で付かず、デフォルトでは1970/1/1からの経過秒数が付いてしまう。
ちょっとだけ書いてあったcronlog
これがとても使えそうなので、あとでよく読んでみたい
http://cronolog.org/
参考サイト
http://www.drk7.jp/MT/archives/000916.html
http://www.nsworks.com/html/soft_apache_inst4_4.html
ローテ前のログを毎日解析したいけども、解析は後回しに
ついでに毎月蓄積されるログの解析も後回しにして、ログが正常にローテされてからの話しでw
rotatelogsで実行させるなら。。。
バーチャルホストごとにログを吐かせて、過去ログは7世代管理で自動で削除させる
年月を追加したファイル名で毎月保存
今月から保存したい月数を引いたファイルを削除すればいい
7ヶ月保存で今月が8月ならば、8ヶ月agoのファイルを削除するようにCRONにやらせる
参考サイト
http://bucci.bp7.org/archives/733
なんとなく出来そうな予感☆
httpd.conf のバーチャルホストに書いたCustomLogにもう1行追記
CustomLog “| /usr/local/apache2/bin/rotatelogs /var/log/apache2/access_log.%Y%m 86400 +540″ combined
上記は24時間ごとの記述ですけども…問題点ありました~
ログを切り分ける作業をApacheのrotatelogsにさせる場合、28日の月もあれば31日の月もある。。。
Apacheのrotatelogsは経過秒数で管理しているもんで…
どうやって毎月にする???
あれこれ悩む。。。
解析に通す為に1ヶ月のログが欲しい
visitorsの場合は累積しないので、1ヶ月で切り分けたログが欲しいわけ
解析結果を保存したいんですわ
で、awstatsやwebalizerは累積表示が出来て蓄積できるので、年間通しての解析結果が欲しいわけです。
ログをローテさせる日時に拘らなければ、簡単なのに。。。
結局~ログをGREPで1ヶ月のログを抽出するか
catコマンドで結合してからGREPのが早い手段のように思います…
バーチャルホスト別でログ蓄積
ローテはCRONまかせ
/Jul/2009 の行を抜き出せば7月のログが出来上がり
が…しかしログが微妙に2ヶ月にまたがっている時は、cat結合してからでいいとしても
ブログなどの過去ログ閲覧された時、ちょうど /Jul/2009 なんてアクセスが記述されてたらどうしよ~
ていうか、毎月キッチリ分ける意味ないように感じてきた。
結局は先達が必要としなかった事を夢見ているので、出来ないってことで^^;
そもそも、キッチリ分けたい理由として
visitorsに通した時に、7月の解析なハズなのに微妙に8月のログが混ざっているからキッチリ分けたい
これが今まで使った事のあるWebalizerやAwstatsの話しだけど
ローテされる前のログを1ヶ月毎日解析せても重複されずキッチリ月別に蓄積してくれる。
差分のみ解析なんてオプションもある。
visitorsをメインに考えず、WebalizerやAwstatsをメインとして、
解析が速いvisitorsを使うのは、過去ログも含めてcatしたログを解析させるで良いのでは
ログ解析で何をこんなに悩んでいるかといえば、結果の文字化け
こっちのがいいけど、化けるからアレも使いたいって事
logrotate.conf 毎週4世代管理
logrotate.d/apache2 毎週7世代管理
※正常に走ったら毎月ローテへ変更
ぁぃ☆次回、自分の欲しい解析を得られるように仕上げます