logrotateの動作確認

logrotateの設定をしたのにうまく動作してなかったので

logrotateに設定したものがうまく動作してるかについて確認する術を

以下にまとめる。

まずlogrotateの流れは以下の通り


logrotateの流れ

/etc/cron.daily/logrotate(cron) →/etc/logrotate.conf(includeにより) →/etc/logrotate.d/配下のファイルを読み込む

※ポイント 設定の優先順位は/etc/logrotate.d/配下 > /etc/logrotate.confである

 

/etc/crontabと/var/spool/cronの違い

/etc/crontab システムジョブ(デイリーログローテーションやデイリーバックアップなど)で使用
全てroot権限で実行される

この内容はリアルタイムで反映されませんので、このファイルを変更した後はcronにHUPシグナルを手動で送信する必要がある(これはcrondが1分おきに/etc/crontabの内容をチェックするため手動で何かをするのではない)

/var/spool/cron ユーザジョブ
許可された各ユーザごとのcronが入る
実行ユーザは各ユーザとなり、ここには主に頻繁に変更したり、臨時で実行するジョブ(臨時バックアップ、その他臨時ジョブ)、それとユーザジョブ(ホームディレクトリ内のクリーンアップジョブなど)を入れる

http://q.hatena.ne.jp/1139540811

 

詳細設定オプション

monthly ログを毎月ローテーションする
weekly  
daily  
missingok ログファイルが存在しなくてもエラーを出さずに処理を続行
notifempty ログファイルが空ならローテーションしない
ifempty ログファイルが空でもローテーションする
sharedscripts 複数指定したログファイルに対し、postrotateまたはprerotateで記述したコマンドを実行
postrotate  endscript  
rotate 回数 ローテーションする回数を指定
ローテーションする回数を指定 ローテーション後に空のログファイルを新規作成。ファイルのパーミッション、ユーザー名、グループ名を指定可能
delaycompress ログの圧縮作業を次回のローテーション時まで遅らせる。compressと共に指定
olddir ディレクトリ名 指定したディレクトリ内にローテーションしたログを格納
dateext  
lastaction endscript  
minsize 容量  

 

参考したページ:

http://orihubon.com/blog/2013/03/07/logrotate-as-compressed-and-previous-date-formatted-file-name/

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/747logrotatecmd.html


logrotateの設定に問題がないか確認する方法

logrotate -d /etc/logrotate.conf //logrotate全てをチェック

logrotate -d /etc/logrotate.d/httpd //特定の設定だけチェック


logrotateの設定に問題がなかった場合は以下のコマンドを打つ(詳細を表示してくれる)

logrotate -v /etc/logrotate.d/httpd


強制的に実行する方法(-f オプションをつける)

logrotate -f /etc/logrotate.d/elastic

実際に問題となった設定を強制的に実行してみた

[root@negabaro logarchive]# logrotate -f /etc/logrotate.d/elastic


error: /etc/logrotate.d/elastic:4 unknown option ‘roate’ — ignoring line error: /etc/logrotate.d/elastic:4 unexpected text

/var/www/kibana/elasticsearch-0.90.1/logs/elasticsearch.log.1
[root@negabaro logarchive]#

やっぱ何かエラーが出ていたんだ。。(原因はrotateではなくroateだったので文法の誤りかと)


正常にログのローテーションが行われたか確認する方法

cat /var/lib/logrotate.status


主なエラーログ

エラーログ1.

considering log /var/log/httpd/access_log

log does not need rotating

ローテーションがされてないという意味(あくまでローテーションできないということ)

エラーログ2.

rotating pattern: /var/log/httpd/access_log 1048576 bytes (no old logs will be kept)

のような出力があった場合、対象となるログファイルがローテーションの対象サイズより小さいためローテーションされていない可能性があります。

上記の例の場合、対照のログファイルのサイズが1MB以下であるためローテーションの対象ではないと判断されてしまっています。

これを変更するためには、設定ファイルに「size」の項目を追加して、対象にしたいファイルサイズを指定してあげれば動作します。

「0」を指定した場合、ファイルサイズに関係なくローテーションされます。

デフォルトでは、1MBのようです。

※抜粋http://ameblo.jp/itboy/entry-10027962914.html


参考したURL

http://ameblo.jp/samosamosalmon/entry-10534552772.html

    1. http://ameblo.jp/itboy/entry-10027962914.html
    2. http://open-groove.net/linux/logrotate-test/
    3. http://server-setting.info/centos/loglotation.html
カテゴリー: 未分類

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です