私は最初にログローテーションを使用しており、514を超えるファイアウォールログを受信するように設定されたsyslogサーバーを持っています。現在ファイアウォールでは1日600~800GB程度の膨大な量のデータが生成されており、サーバ容量は1TBに達する。 logrotationを使用して24時間後にログを削除しようとしています。
すべてのログは/var/log/syslogに移動されます。
私はrsyslogを使用しており、回転操作を試しています。私の行には/etc/logrotate.d/rsyslog
次のような行があります。
{
rotate 1
daily
missingok
notifempty
delaycompress
compress
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
/var/log/mail.info
/var/log/mail.warn
/var/log/mail.err
/var/log/mail.log
/var/log/daemon.log
/var/log/kern.log
/var/log/auth.log
/var/log/user.log
/var/log/lpr.log
/var/log/cron.log
/var/log/debug
/var/log/messages
{
rotate 1
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
/etc/logrotate.conf
図のように、私の構成では
# see "man logrotate" for details
# rotate log files weekly
daily
# use the adm group by default, since this is the owning group
# of /var/log/syslog.
su root adm
# keep 4 weeks worth of backlogs
rotate 1
# 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
# packages drop log rotation information into this directory
include /etc/logrotate.d
# system-specific logs may be also be configured here.
約30〜36時間後、サーバーには100 GBしか残っておらず、ログは削除されませんでした。
私は何が間違っていましたか?
答え1
提供した構成は完了しましたか?構成項目は適用されず、/var/log/syslog
最初のブロック/etc/logrotate.d/rsyslog
は役に立ちません。
毎週多くのファイルを交換する構成/var/log
と、毎日交換するが何も使用しない構成ブロックがあります。
あなたが望むかも/var/log/syslog
しれません/etc/logrotate.d/rsyslog
。
logrotate --debug --verbose /etc/logrotate.conf
これを使用して設定をテストできる必要があります。
logrotate設定を使用します(/var/log/syslog
最初のブロックの後に追加します)。 1日に1回、既存のログファイルをコピー/回転する必要がありますsyslog.1
。ここでは圧縮オプションは役に立ちません。delaycompress
最初の回転は圧縮されていないため、無で圧縮しrotate 1
たsyslog.2
後に表示されます。
あなたが望むのはrotate 0
(compress
オプションを削除することができます)です。マニュアルページから:
スピンカウント
ログファイルは、削除されるか電子メールディレクティブで指定されたアドレスに送信される前に複数回循環されます。カウントが0の場合、以前のバージョンは回転せずに削除されます。