ログファイルの回転と圧縮間隔

ログファイルの回転と圧縮間隔

私たちのサービスのlogrotate構成は次のとおりです。

{
    rotate 30
    create 644 root syslog
    missingok
    notifempty
    daily
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript }

compress設定に記載されていない場合でも、ログファイルは各回転後にgzipで圧縮されます。私はこれがcompress/etc/logrotate.confファイルでグローバルにアクティブになり、その行のコメントを外したためだと思います。問題は次のとおりです。

  1. ログファイルの回転間に時間遅延や間隔がありますか?debug.logからdebug.log-20190315へ)と圧縮された場合(debug.log-20190315からdebug.log-20190315.gzへ)?

  2. 遅延がある場合は、compressログファイルがdebug.logからdebug.log-20190315に回転された直後に圧縮されることがサービスの特定のログローテーション設定ファイルに記載されていますか?

delaycompresslogrotate設定ファイルに言及がありません。

背景:Splunkインデクサーは、このサービスでdebug.log-2019xxxxファイルにインデックスを付けるようです。私たちは*.gz$ブラックリストに登録し、debug.log$Splunkに移動することを禁止しましたが、debug.log-2019xxxxファイルが数秒または数分間存在するようです*.gz$。に渡されます。debug.log$。ブラックリストに追加すると、この問題を解決できることがわかりますが、debug.log-[0-9]*xxxxxx.debug.log-20190315が存在する原因が何であるかを知りたいです。)

ベストアンサー1

圧縮ステップにはgzip時間がかかり、圧縮プロセス中に元のファイルを表示する機会があります。元のファイルのサイズが十分に大きい場合、圧縮が完了するまでかなり長い間元のファイルが存在する可能性があります。圧縮に必要な時間は、gzipに渡される設定(圧縮速度とレベル)とファイルの圧縮率によって異なります。gzip元のファイルは、圧縮プロセスが完了した後にのみ削除されます。

検証のための小さなテストで、1GiBサイズのファイル/dev/urandomと1GiBサイズのファイルをそれぞれ作成し/dev/zeroて圧縮するのにかかる時間をテストしました。

任意のデータを含むファイルには約2分23秒かかります。

[root@testvm1 ~]# time gzip testfile-random.txt

real    2m27.417s
user    2m22.172s
sys     0m2.839s

そしてゼロファイルには約29秒かかりました。

[root@testvm1 ~]# time gzip testfile-zero.txt

real    0m28.930s
user    0m27.453s
sys     0m0.989s

圧縮すると、どちらの場合も元のファイルが表示されます。

[root@testvm1 ~]# ls -lh testfile-random.txt*
-rw-r--r--. 1 root root 1.0G Mar 15 17:49 testfile-random.txt
-rw-------. 1 root root  75M Mar 15 17:59 testfile-random.txt.gz

[root@testvm1 ~]# ls -lh testfile-zero.txt*
-rw-r--r--. 1 root root 1.0G Mar 15 18:04 testfile-zero.txt
-rw-------. 1 root root 992K Mar 15 18:05 testfile-zero.txt.gz

おすすめ記事