日本語訳⇒米麹の検証日記 rsyslog.conf の man ページ
スライド⇒#logstudy 01 rsyslog入門
わかりやすい解説⇒Rsyslog - Wikinote
本⇒rsyslog 実践ログ管理入門
Facility :メッセージの種類
kern | カーネル | lpr | プリンタ | |
user | ユーザーレベル | news | ネットニュース | |
メール | uucp | UUCP | ||
daemon | デーモン | cron | クロン | |
auth | 認証 | authpriv | 認証(private) | |
---|---|---|---|---|
syslog | syslogサーバ内 | ftp | ftp | |
local0〜7 | そのた |
Severity :ヤバさ加減
debug | デバッグ情報 |
info | 情報 |
notice | 通知 |
warn | 警告 |
err | 一般的なエラー |
crit | 致命的なエラー |
alert | 緊急に対処すべきエラー |
emerg | システムが落ちるような状態 |
設定 :Directive
$ModLoad imuxsock # provides support for local system logging
syslogをUNIXドメインソケットで受けるためのモジュール
⇒マクロとテンプレートによるrsyslog活用法 (2/2):新世代syslogデーモン徹底活用(5) - @IT
$ModLoad imklog # provides kernel logging support
カーネルログ(dmesgコマンドで見れるやつ)をsyslogに書くためのモジュール
#$ModLoad immark # provides --MARK-- message capability
定期的に--MARK--とか出すやつ。いらん。
#$ModLoad imudp #$UDPServerRun 514
syslogをUDPで受けるためのモジュール。syslogサーバにするときに有効化する
※送信者の制限には $AllowedSenderなんかを使う
⇒ルータのログをsyslogサーバに送信 [Fedora13]
⇒Linuxねた帳: rsyslog $AllowedSenderについて
#$ModLoad imtcp #$InputTCPServerRun 514
syslogをTCPで受けるためのモジュール。不要。
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
ログのフォーマット形式
⇒ログの種類と書式について | Linux & Android Dialy
$FileOwner root $FileGroup adm $FileCreateMode 0640 $DirCreateMode 0755 $Umask 0022
ログのパーミッション。
$WorkDirectory /var/spool/rsyslog
ワークディレクトリ。
$IncludeConfig /etc/rsyslog.d/*.conf
ほかのsyslog設定ファイルを取り込む
ルール
基本的な構文は以下の通り
facility.severity /var/log/tekito.log
facilityは複数をカンマでつなげて指定できる。(severityは両方にかかる)
facility.severityのセットを ; で区切って複数書くこともできる。 設定は後ろが強い
ログの前に - がついてる場合、非同期書き込み(syncされない)になる
ファイル名じゃなく、なんかほかの適当なアクションを書くこともできる
auth,authpriv.* /var/log/auth.log
authとauthprivを全部、auth.log に保存する。 .* は auth,authpriv にかかる。
*.*;auth,authpriv.none -/var/log/syslog
すべて、アンド、authとauthpriv を含まない*1、をsyslog に保存する。
#cron.* /var/log/cron.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* -/var/log/user.log mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err news.crit /var/log/news/news.crit news.err /var/log/news/news.err news.notice -/var/log/news/news.notice
確実さと速さを天秤にかけて - をつけるか決める。
*.=debug;\ auth,authpriv.none;\ news.none;mail.none -/var/log/debug
*.=debug 全てのfacilityのうちの ヤバさdebug を指定
つまり、auth,authpriv,news,mail以外のデバッグレベルを debug に保存
*.=info;*.=notice;*.=warn;\ auth,authpriv.none;\ cron,daemon.none;\ mail,news.none -/var/log/messages
auth,authpriv,cron,daemon,mail,news 以外の info,notice,warn を messages に保存
*.emerg :omusrmsg:*
ヤバさemerg なメッセージを 全員のコンソールに通知する。
omusrmsg はそういうビルトインモジュール。
後ろの * はユーザ名(カンマ区切り)なので、rootにだけピンポイント通知も可能。
daemon.*;mail.*;\ news.err;\ *.=debug;*.=info;\ *.=notice;*.=warn |/dev/xconsole
コンソール用パイプにいろいろメッセージを送る。今時なかなか使わない気がする
*1: .noneはauthとauthprivにかかる。くそ分かり難い仕様