ログローテーションがうまくいかないとき

logarotateによるログローテーションがどうもうまくいかない、変なローテーションファイルが作成される、ログローテーションのテストでローテーション対象になるログができない、などちょっと困ってしまうことがあります。

ローテーションファイルのサフィックス(連番や日付)を途中で変更したときには、次のように変なローテーションファイルができてしまうことがあります。

-rw-r–r– 1 root root 1366515 7月 13 17:15 2014 access_log -rw-r–r– 1 root root 0 7月 13 03:16 2014 access_log.1 -rw-r–r– 1 root root 17375755 7月 13 03:15 2014 access_log.1.1 -rw-r–r– 1 root root 0 7月 13 03:16 2014 access_log.2 -rw-r–r– 1 root root 5301528 7月 6 03:15 2014 access_log.2.1 -rw-r–r– 1 root 続きを読む »

logrotateのテスト方法

logrotateの設定を、

/etc/logrotate.conf /etc/logrotate.d/に置かれたファイル

にした後に、意図したとおりにログローテーションするかをテストします。

logrotateは、実際はcrondによって、定められたタイミングで実行されるわけですが、今すぐに実行できないといけませんし、crondの設定を変更したくありません。 また、実際にはローテーションされないようにする必要もあります。

こういうときには、次のようにlogrotateコマンドを実行します。logrotate.confを指定すればlogrotate設定全体のテスト、dovecotなどの個別設定を指定すれば個別設定のテストを実行できます。

[root ~]# logrotate -dv /etc/logrotate.conf [root ~]# logrotate -dv /etc/logrotate.d/dovecot

実行結果は、ローテーションする場合とローテーションしない場合の2通りを示しておきます。 なお、/etc/logrotate.d/dovecot の内容は次の通りです。

# dovecot SIGUSR1: Re-opens the log files. /var/log/dovecot.log { missingok notifempty size 50k postrotate /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true endscript }

サイズが設定値に達していないので、ローテーションしない場合 [root ~]# logrotate -dv /etc/logrotate.d/dovecot reading config 続きを読む »

logrotateの設定パラメータ

logrotateのファイル毎のローテーション方式は、

/etc/logrotate.conf /etc/logrotate.d/に置かれたファイル

に設定されますが、そこで使用するパラメータを整理しておきます。

パラメータ 機能の説明 missingok 指定のログファイルが存在しない場合でもエラーにしないで、次のログファイルの処理へ移る。 dailyweeklymonthlyyearly それぞれ、日次、週次、月次、年次でローテーションを行う。 notifempty 指定のログファイルが空の場合にはローテーションを行わない。 size サイズ(K/M) 指定したログファイルが指定したサイズより大きい場合にローテーションを行う。 compress ローテーションしたログファイルをgzipで圧縮する。 rotate ローテーションしたファイルを保持する世代数。 create [パーミッション] [ユーザ] [グループ] ローテーションの後に、新規のログファイルを作成する。 dateext ローテーションしたファイルの末尾に日付を付ける。 prerotate~スクリプト~endscript ローテーション条件に合致したログファイルがあった場合に、ログファイル毎に、ローテーションの前に実行するスクリプト。 postrotate~スクリプト~endscript ローテーション条件に合致したログファイルがあった場合に、ログファイル毎に、ローテーションの後に実行するスクリプト。 sharedscripts ローテーション条件に合致したログファイルがあった場合に実行するprerotate、postrotateで指定するスクリプトを、1回だけ実行するようにする。

続きを読む »

Dovecotのログをローテーションする

Dovecotの設定の中に次のようなログファイルの設定があります。ファイル名をdovecot.logとした場合の例です。

log_path = /var/log/dovecot.log

このログは、Dovecotをインストール・設定しただけではローテーションされません。 そこで、次のように/etc/logrotate.d/dovecotを作成して、ローテーションが行われるように設定するといいでしょう。

[root ~]# vim /etc/logrotate.d/dovecot # dovecot SIGUSR1: Re-opens the log files. /var/log/dovecot.log { missingok notifempty size 50k postrotate /bin/kill -USR1 `cat /var/run/dovecot/master.pid 2>/dev/null` 2> /dev/null || true endscript }

なお、この設定はDovecotのWiki『Logging – Dovecot Wiki』を参考にしています。

サーバ移行時の AWStats の移行方法

サーバの64bit化に伴い、httpdログの統計・分析/解析・レポートツールの AWStats も移行する必要がありました。

ここでは、AWStats の移行方法を整理しておきます。ポイントは、旧環境における過去ログ分析データを移行することです。

移行に必要な作業は次の通りです。

1.AWStats のインストール

yumでインストール可能なパッケージが rpmforgeリポジトリにありますので、それをインストールします。

まずは、パッケージ情報を確認します。

[root ~]# yum info awstats Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * epel: ftp.kddilabs.jp * extras: www.ftp.ne.jp * rpmforge: ftp-stud.fht-esslingen.de * updates: www.ftp.ne.jp 277 packages excluded due to repository priority protections Available Packages Name : awstats Arch 続きを読む »