揮発性のメモ2

知識をメモ書きしておく

syslogの設定

日本語訳⇒米麹の検証日記 rsyslog.conf の man ページ
スライド⇒#logstudy 01 rsyslog入門
わかりやすい解説⇒Rsyslog - Wikinote
本⇒rsyslog 実践ログ管理入門

Facility :メッセージの種類

kern カーネル lpr プリンタ
user ユーザーレベル news ネットニュース
mail メール 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

authauthprivを全部、auth.log に保存する。 .*auth,authpriv にかかる。

 *.*;auth,authpriv.none          -/var/log/syslog

すべて、アンド、authauthpriv を含まない*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にかかる。くそ分かり難い仕様