内容
Vyattaのログローテーションについて、調査しました。
バージョン確認
vyatta@vyatta:~$ show version
Version: VSE6.7R10
Description: Brocade vRouter 5415 6.7 R10
# logrotateがインストールされているかの確認
vyatta@vyatta# dpkg -l | grep logrotate
ii logrotate 3.7.8-6 Log rotation utility
システムログ /var/log/messages のローテーション
Vyattaのメインのログは、rsyslogdによって「/var/log/messages」に書き込まれています。
「/var/log/messages」のログローテーションは「/opt/vyatta/etc/logrotate/global」で管理されていますので、こちらのファイル設定を「sudo vi」で編集してローテーションさせます。
1日単位でローテーションさせたい場合は、以下のサンプル設定で動作を確認しました。
vyatta@vyatta:~$ cat /opt/vyatta/etc/logrotate/global
/var/log/messages {
missingok # ログファイルがなくてもエラーを出さない
notifempty # logファイルが空の時はrotateしない
create # 新しくlogを作る
rotate 30 # ログを30世代残す
daily # weekly, monthly など指定可能
postrotate # ログローテーション後に実行するスクリプト
invoke-rc.d rsyslog reload > /dev/null
endscript
compress # gzipで圧縮して保存
}
一方で、VyattaのCLI経由でも設定可能ですが、時間ベースのローテーションが設定できない仕様になっています。
たとえば、
set system syslog global archive files 30
set system syslog global archive size 16
commit
save
とすると、以下のように上書きされます。
(CLI経由では、filesとsizeしか指定できません。)
vyatta@vyatta# cat /opt/vyatta/etc/logrotate/global
/var/log/messages {
missingok
notifempty
create
rotate 30
size=16k
compress
}
その他のログ(/var/log/ 配下) のローテーション
その他のログ(/var/log/ 配下) のローテーションについては、「/etc/logrotate.conf」「/etc/logrotate.d/ 配下」で管理されていますので、各ファイル設定を「sudo vi」で編集してローテーションさせます。
「/var/log/auth.log」についての注意点
VSE6.7R10で確認しましたが、デフォルトで「/var/log/auth.log」がローテーションされない設定になっているBrocadeのバグがありますので、ご注意ください。
ログが肥大化することにより、システムがダウンしてしまう可能性があります。
このバグは、6.7R12以降で修正されていますので、最新の6.7R13にアップグレードするか、以下の設定ファイルを作成すれば問題ないです。
(中身はサンプルになりますので、任意設定可能です。)
vyatta@vyatta# cat /etc/logrotate.d/auth
/var/log/auth.log {
missingok
notifempty
create
rotate 5
size=25k
compress
postrotate
invoke-rc.d rsyslog reload > /dev/null
endscript
}
さいごに
ほかにもよい方法を知っている方がいれば、ぜひ教えてください!!!