2015年7月1日水曜日

rsyslog 圧縮した状態でログを出力するには

今回は、保存されたログを後から加工(gzipなどで圧縮)するのではなく、rsyslog単体でログを出力すると同時に圧縮もしてみよう!という内容です。
※評価は、CentOS6.6(x86_64) + rsyslog-8.10.0で行っています



設定例


以下、ファシリティがmailのログを圧縮した状態で出力する例です。

template(name="for_postfix"
         type="string"
         string="/var/log/postfix/%$year%%$month%%$day%.log.gz"
)

if \
        $syslogfacility-text == "mail" \
then {
        action(
                type="omfile"
                zipLevel="1"
                dynaFile="for_postfix"
        )
        stop
}

ドキュメントにも書いてありますが、zipLevelで指定する数字が大きくなると圧縮率も高く(良く)なりますが、それに伴ってCPUの使用率も高くなるので、本番環境で設定する場合はそのあたりを十分確認(検証)したうえで設定をしてください



ログの確認方法


設定例どおりにログが出力されると以下のようになります。
# ls -l /var/log/postfix/
total 4
-rw-r--r-- 1 root root 157 Jun 30 23:43 20150630.log.gz
#
# file /var/log/postfix/20150630.log.gz
/var/log/postfix/20150630.log.gz: gzip compressed data, from Unix, max speed
#

ログは圧縮されている状態なので、zcatやzlessで確認します。
またtailに相当するコマンドはないかさがしたら、そのままずばりのztailコマンドが存在し、tailと同じ操作でログを確認する事ができました。

  • ztailの配布元
http://emysoutlet.com/linux/ztail/index.html


0 件のコメント:

コメントを投稿