xinetd のログを別ファイルに保存する (RHEL6.3 編)

xinetd で起動しているデーモンのログが /var/log/messages を埋め尽くしてて、
非常に邪魔っぽかったので別ファイルに書き出す設定を実施。

RHEL6.3 (2.6.32-279.el6.x86_64) で確認していますが、
おそらく CentOS6.3 でも大丈夫かと。

なお、xinetd のバージョンは xinetd-2.3.14-34.el6.x86_64 です。

SYSLOG のファシリティ/レベルを変更し、syslog 側で対応しても良かったのだけども、
とりあえずは個別のファイルを書き出す方向で設定します。

まずは設定ファイルの変更

# vi /etc/xinetd.conf
   log_type = SYSLOG daemon info
-> log_type = FILE /var/log/xinetd.log

そして xinetd の reload
(restart ではなく、reload でOK。)

# /etc/init.d/xinetd reload

これで xinetd から起動されるデーモンのログは /var/log/xinetd.log に吐き出されます。
(ファイルが無ければ reload 時に自動で作成される。)

この状態だと xinetd 自体の停止・起動等のログは相変わらず
messages に出ますが、これはむしろこの方が望ましいのでこのままで。
# 時間が有ったら変更方法を調査。

デーモン個別で設定したい場合は /etc/xinetd.d/ 以下の
該当デーモンの設定ファイルで、log_type の設定を実施してもOK。

で、このままだと xinetd.log のサイズはガンガン増えていくのみなので、
ローテーションの設定を実施。ツールは標準でインストールされる loglotate を利用。

loglotate の設定ファイルを作成します。

# vi /etc/logrotate.d/xinetd
/var/log/xinetd.log {
    daily
    compress
    delaycompress
    missingok
    postrotate
        /bin/kill -HUP `cat /var/run/xinetd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

logrotate を一度実行し、ログの状態を (/var/lib/logrotate.status に) 記録する。

# /usr/sbin/logrotate /etc/logrotate.conf

あとはしばらくの期間見守り、設定した内容通りにログがローテートすることを確認すればOK。