ログローテート

サーバ運用にあたり必ずついてまわる問題がログ保持問題
基本的にミドルウェアやソフトウェアにはロギング機能がありログを出力します
ディスクサイズは無限ではないので、ログのローテート保持数は必ず検討・設計をおこなう

CentOS /Redhat ではOSやシステムのログ管理ツールとしてlogrotatedがインストールされている
環境や利用用途にあわせ適切なローテート間隔、保持期間を設定する

ここでは基本設定は週次でログをローテートし、100世代(100週間分)保持し
ローテート後ファイルは日付形式のファイルにリネームし、圧縮するように指定する

# vim /etc/logrotate.conf
~~
# keep 4 weeks worth of backlogs
rotate 100

~~
# create new (empty) log files after rotating old ones
create

~~
# use date as a suffix of the rotated file
dateext

~~

# uncomment this if you want your log files compressed
compress

システムに関するログはデフォルトでローテートされるよう設定されているが
不要なものもあるので定義を少し修正する

  • syslog

デフォルトではログファイルが空でもローテートするようになっており、
ゴミログファイルが作成されてしまうので、空のログファイルはローテートしないよう修正
/var/log/spoolerが問題なだけなので、コメントアウトしてもいい

# vim /etc/logrotate.d/syslog

/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    missingok
    notifempty
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}
  • bootlog 同様に空の場合はローテートしないように修正
# vm /etc/logrotate.d/bootlog

/var/log/boot.log
{
    missingok
    notifempty
    daily
    copytruncate
    rotate 7
}

results matching ""

    No results matching ""