今までサーバのログ管理はsyslog-ngを使うようにしていました。
が、とあるサーバで試験的にrsyslogを使ってみたところ、設定が非常に簡単で分かりやすいのが気に入って、ほぼ全てのサーバをrsyslogに変えてみました。
リモートサーバに飛ばす真似はしていませんので、全てローカル処理です。
ちなみにrsyslogのインストールはyumコマンドを使いました(CentOS 5.5 or 5.6へインストール)。
[bash]# yum install rsyslog[/bash]
設定ファイルは”/etc/rsyslog.conf”になります。
[bash]# vi /etc/rsyslog.conf[/bash]
設定ファイルは下記のように変更しました。
[bash]# Use traditional timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# Provides kernel logging support (previously done by rklogd)
$ModLoad imklog
# Provides support for local system logging (e.g. via logger command)
$ModLoad imuxsock
$template Messages,"/var/log/%$year%%$month%%$day%/messages"
$template Secure,"/var/log/%$year%%$month%%$day%/secure"
$template Maillog,"/var/log/%$year%%$month%%$day%/maillog"
$template Cron,"/var/log/%$year%%$month%%$day%/Cron"
$template Spooler,"/var/log/%$year%%$month%%$day%/Spooler"
$template Local7,"/var/log/%$year%%$month%%$day%/boot.log"
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don’t log private authentication messages!
*.info;mail.none;authpriv.none;cron.none ?Messages
# The authpriv file has restricted access.
authpriv.* ?Secure
# Log all the mail messages in one place.
mail.* -?Maillog
# Log cron stuff
cron.* ?Cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit ?Spooler
# Save boot messages also to boot.log
local7.* ?Local7
[/bash]
設定を追加したい場合は”$template”行を増やして、変更すべき箇所を変更すれば簡単に追加できます。
この辺りの記述は上記を参考にして下さい。基本的にはsyslogの設定と同じです。
この設定だと、”/var/log/”配下に日付でディレクトリを生成し、その中にログを保存していってくれます。
ですので、別途ローテーションの設定が不要です。
ローテーションが不要、というのが便利ですが、例えば、ログを監視させるプログラムを起動する場合はちょっと工夫が必要になるかもしれません。
[tmkm-amazon]4774146005[/tmkm-amazon]