システムログの設定

June 06, 2018

syslog/rsyslog の設定

syslog の動作を設定するには、syslog の設定ファイルである /etc/syslog.conf に記述する。(rsyslog の場合は /etc/rsyslog.conf)
/etc/syslog.conf は次のような書式で記述される。

[書式] ファシリティ.プライオリティ 出力先

ファシリティ

ファシリティはメッセージの出力元であり、具体的にはカーネルや実行中のプロセスとなる。
ファシリティを使うことで、メッセージの出力元に応じてログの出力先を制御することができる。* によりすべてのファシリティを選択可能。

ファシリティ 説明
auth, authpriv 認証システム (login や su)
cron cron
daemon 各種デーモン
kern カーネル
lpr 印刷システム
mail メールシステム
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  
}  

 © 2023, Dealing with Ambiguity