人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

あなたのWebサーバのログの保存ポリシー、logrotateのスクリプト or 参考にしているURL等を教えて下さい。

知りたいのは、スバリ利用しているapacheのlogrotateスクリプトです。しかし、他にも知りたいのは

・基本的なログ管理のポリシー
・どの頻度で切り出しているか?
・どのようなディレクトリ
・圧縮しているか?
・できれば、どのように保存・管理しているのか?

などです。

●質問者: p_question
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Apache URL Web あなた いるか
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● ffmpeg
●27ポイント

ふつうそんなものはデフォルトで機能するのでは?

◎質問者からの返答

機能します。機能しています。

知りたいのは

・weeklyなどで、access_log.1,access_log.2,ccess_log.3,などと増えていくのは管理しづらい、利用しづらい

・他の方がどのようなlogrotateスクリプトを利用しているのか?

・それを利用している理由を知りたい。

・良いものがあれば、利用したい。

という目的のためです。


2 ● まきのっぴ
●27ポイント

Web サーバのログは基本的に全て残すつもりなので、また 0:00 できっかり区切りたいので、logrotate は使わず rotatelogs を使っています。

ローテーション頻度は日次で切っています。

出力先はディストリビューションのデフォルト設定の (Debian を使っています) /var/log/apache2/ に。

具体的には下記のような設定ですね。

CustomLog "|/usr/sbin/rotatelogs /var/log/apache2/access.%Y%m%d.log 86400 540" combined

ErrorLog "|/usr/sbin/rotatelogs /var/log/apache2/error.%Y%m%d.log 86400 540"

ただし過去ログが全部同じディレクトリに溜まると鬱陶しいので、cron.daily に下記のようなスクリプトを置き、過去ログを bzip2 圧縮し /var/log/apache2/past/ ディレクトリに移動しています。

#!/usr/bin/env perl

use strict;

use warnings;

use POSIX qw(strftime);

# 生ログのある場所と過去ログを移動する場所

my $logdir = '/var/log/apache2';

my $pastdir = '/var/log/apache2/past';

# 圧縮に使用するコマンドと拡張子

my $cmd = 'bzip2';

my $ext = 'bz2';

# 本日

my $today = strftime('%Y%m%d', localtime);

# 本日以外の生ログを圧縮する

system("find $logdir -name '*.log' ! -name '*.$today.log' | nice -19 xargs $cmd");

# 圧縮されたログを過去ログディレクトリに移動する

system("mv $logdir/*.log.$ext $pastdir/");

(Apache のログは bzip2 圧縮が覿面に効きますね。gzip 圧縮した場合よりさらに2/3程度に縮みます。)


3 ● kuli
●26ポイント

* 自分用のメモより

なんのひねりもなくlogrotateを使っています。

毎日 /var/log/httpd のログを /var/log/httpd/00old にコピーして圧縮する。

  1. access_log, error_log, robot_log の3つのログを取っているので、それぞれのファイルのバックアップを日毎に移動する。
  2. ファイル名に日付けを付けて分かりやすくする。
  3. bzip2で圧縮する。

/etc/logrotate.d/httpd

/var/log/httpd/*log {
 daily
 copytruncate
 nomissingok
 ifempty
 nosharedscripts
 nocompress
 postrotate
 EXT=`date --date '1 days ago' '+%Y%m%d'`
 for f in $1
 do /bin/mv $f.1 $f.$EXT
 done
 endscript
 lastaction
 EXT=`date --date '1 days ago' '+%Y%m%d'`
 /bin/mv /var/log/httpd/*.$EXT /var/log/httpd/00old/
 /usr/bin/bzip2 -9 /var/log/httpd/00old/*.$EXT
 /bin/rm /var/log/httpd/*.1
 endscript
}

もっとスマートなやり方があるかも。


4 ● ffmpeg
●10ポイント

たぶん、レンタルサーバーでも運営していないかぎり、WEBサーバーのログにそんなにこだわっている人は少ないでしょう。

検索した範囲では、こだわり派はこんな感じ。

http://www.atmarkit.co.jp/flinux/rensai/apache14/apache14a.html

http://www.rescue.ne.jp/CGI-BBS/server/apache/20020227224425.sht...

http://www.rfs.jp/server/apache/01/05.html

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ