ネットワークエンジニア系ブログ。エンターテイメント、おすすめ映画、本、キッズ系などお役立ち情報を紹介!

GOISBLOG

301191575_82b30ab778

サーバー技術

CentOSログローテーション(logrotate)の設定

投稿日:2014年6月20日 更新日:

CentOSで/var/log配下に蓄積されていく各種ログを圧縮したり定期的に置き換え、破棄などの処理をする為
logrotateの設定をします。

logrotateの設定

現状CentOSで構成されているlogrotateの確認をします。

# rpm -ql logrotate
/etc/cron.daily/logrotate		#logrotateを毎日実行するためのcronの設定ファイル
/etc/logrotate.conf			#logrotateの設定ファイル
/etc/logrotate.d			#このディレクトリ配下の各ファイルがlogrotate.confにより読み込みされる
/usr/sbin/logrotate			#logrotateの実行ファイル
/usr/share/doc/logrotate-3.7.8
/usr/share/doc/logrotate-3.7.8/CHANGES
/usr/share/doc/logrotate-3.7.8/COPYING
/usr/share/man/man5/logrotate.conf.5.gz
/usr/share/man/man8/logrotate.8.gz
/var/lib/logrotate.status		#logrotateの各ステータスの記録ファイル
スポンサーリンク


logrotate.confの設定

以下では、ログローテーションを毎月に変更し、世代管理を3か月間へ設定変更します。
また、各ログファイルは圧縮するように設定します。

それぞれのコマンドはなんのために使われているのか、各箇所でコメントを入れてます。

# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
monthly				#毎月に変更

# keep 4 weeks worth of backlogs
rotate 3			#ログを世代管理します。ここでは3か月間に設定

# create new (empty) log files after rotating old ones
create				#新規ログファイルをローテーション後に作成。デフォルト有効

# use date as a suffix of the rotated file
dateext				#ログファイルの末尾に日付(YYYYMMDD)がつく。デフォルト有効

# uncomment this if you want your log files compressed
compress			#ログファイルの圧縮。デフォルトは有効でない為、ディスクの空き容量などを考慮し使用するか決めること

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/btmp
/var/log/lastlog
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}
#/var/log/XXXファイルは毎月1世代のログを保管し、所有者がrootでグループがutmpで、なおかつパーミッションが644のログファイルを作成


# system-specific logs may be also be configured here.

ログローテーションの対象となるファイルの確認

ログローテーションの対象となるファイルは以下のディレクトリ配下で確認できます。

# ll /etc/logrotate.d/
合計 12
-rw-r--r--. 1 root root 103 11月 29 22:26 2013 dracut
-rw-r--r--. 1 root root 210  8月 15 20:24 2013 syslog
-rw-r--r--. 1 root root 100 12月 17 21:27 2013 yum


# cat /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

logrotateのcronを確認

/etc/cron.daily/logrotateファイルでcronにより、毎日一度logrotateが実行されるように指定されています。
※以下の値はデフォルト

# cat /etc/cron.daily/logrotate
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

こんな感じです。
ほとんどは”logrotate.conf”で設定しますので、環境に合わせて設定を実行しましょう。

この記事が気に入ったら
いいね!しよう

Twitter で
スポンサーリンク

-サーバー技術
-,

Copyright© GOISBLOG , 2016 AllRights Reserved.