syslog/rsyslog の設定
syslog の動作を設定するには、syslog の設定ファイルである /etc/syslog.conf に記述する。(rsyslog の場合は /etc/rsyslog.conf)
/etc/syslog.conf は次のような書式で記述される。
[書式] ファシリティ.プライオリティ 出力先
ファシリティ
ファシリティはメッセージの出力元であり、具体的にはカーネルや実行中のプロセスとなる。
ファシリティを使うことで、メッセージの出力元に応じてログの出力先を制御することができる。* によりすべてのファシリティを選択可能。
ファシリティ | 説明 |
---|---|
auth, authpriv | 認証システム (login や su) |
cron | cron |
daemon | 各種デーモン |
kern | カーネル |
lpr | 印刷システム |
メールシステム | |
syslog | syslog 機能 |
local0~local7 | 独自の設定 |
プライオリティ
プライオリティはメッセージの優先度を表す。低く設定すればするほど、ログに出力される情報量も多くなる。
プライオリティ | 説明 |
---|---|
emerg | 機器的な状態 |
alert | 早急に対処が必要 |
crit | 危険な状態 |
err | 一般的なエラー |
warning | システムからの警告 |
notice | システムからの重要な通知 |
info | システムからの情報 |
debug | デバッグ情報 |
none | ファシリティ無効化 |
出力先
メッセージの出力先の選択肢は以下。
出力先 | 説明 |
---|---|
ファイル名 | ファイルに出力する |
@ ホスト名 | リモートホストの syslogd に出力する |
ユーザー名 | ユーザーの端末に出力 |
/dev/console | コンソールに出力する |
* | 全てのユーザーの端末に出力する |
/etc/rsyslog.conf の設定例
$ cat /etc/rsyslog.conf | grep -v ^#
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
$IncludeConfig /etc/rsyslog.d/*.conf
ログのローテーション
ログファイルは放置すると追記される一方なので、肥大化する。
ログファイルのローテーション機能を用いると、古くなったログを切り分けてログファイルが肥大化するのを防ぐ。
この機能は logrotate ユーティリティが提供している。
logrotate ユーティリティは cron を利用して、定期的に実行される。
設定は /etc/logrotate.conf ファイルで行う。
$ cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# 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
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}