3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

(Linux)ログファイルのローテション

久しぶりに Linux 触りました。 (Linuxサーバ完全に放置気味です。)

で、FTPのログのチェックをしようとしたんですが、過去1カ月分しかありません。

で、どうやらログローテーションの logrotate で1週間毎の4回という設定になってったっぽいです。

ということで、毎日の60回に設定を変更しました。(やっぱり日別のほうが見やすいですしね。)

変更前:

$ vi /etc/logrotate.conf

# see "man logrotate" for details

# rotate log files weekly

weekly

# keep 4 weeks worth of backlogs

rotate 4

(省略)

変更後:

$ vi /etc/logrotate.conf

# see "man logrotate" for details

# rotate log files weekly

daily

# keep 4 weeks worth of backlogs

rotate 60

(省略)

それから、Apache と vsftpd のログについては、vsftpd.log.1 みたいな感じでなく日付を含むようにしたほうが後々管理しやすいので、その方法をググると、社内SE徒然備忘録:apacheのlogrotateにて発見。

dateextを加えてやるといいようです。

下記のように Apache と vsftpd の個別の logrotate 設定ファイルに dateext を追加しました。

また、ログファイルが空でもローテーションするようにします。

# vi /etc/logrotate.d/vsftpd.log

/var/log/vsftpd.log {

# ftpd doesn't handle SIGHUP properly

nocompress

missingok

dateext →ログファイルに日付入れる。

}

# vi /etc/logrotate.d/httpd

/var/log/httpd/*log {

missingok

ifempty →ログファイルが空ならローテーションするために追加。

#notifempty →「ログファイルが空ならローテーションしない。」設定なのでコメントアウト

sharedscripts

dateext →ログファイルに日付入れる。

postrotate

/sbin/service httpd reload > /dev/null 2>/dev/null || true

endscript

}

これで、

# /usr/sbin/logrotate /etc/logrotate.conf

(もしくは /usr/sbin/logrotate /etc/logrotate.d/vsftpd.log とか)

を実行すると、ちゃんとファイル名が vsftpd.log-20090814 となってました。

/var/lib/logrotate.status

↑のファイルで、最後にローテーションされたログファイルの日付の確認できるようです。

あと、ついでに vsftpd のログの設定も見直しておきました。

今までは、vsftpd.log に wu-ftpd 相当のフォーマットで保存してきましたが、vsftpd オリジナルのログのほうが細かいので、両方を記録させることに。

ということで、 /etc/vsftpd/vsftpd.conf で下記のように設定を変更しました。

vsftpd_log_file=/var/log/vsftpd.log →vsftpd標準形式のログ

xferlog_file=/var/log/xferlog

xferlog_std_format=Yes →xferlog の形式を wu-ftpd 相当のフォーマットに。

#log_ftp_protocol=Yes →これが有効だと全てのやりとりをログに残すけど見にくくなったのでやっぱり無効にした。

dual_log_enable=Yes →sftpd オリジナルのログとwu-ftpd 相当のフォーマットのログの両方を採取可能

use_localtime=YES →デフォルトはUTC時刻のため、時刻をローカルタイム(JTC)にする。

参考:

MAKIZOU.COM:ログ・ローテーションでディスクのダイエット管理

logrotate によるログのローテーション

FTPサーバ(vsftpd)の構築(RedHat系編)