「Rsyslog」の版間の差分
提供: Wikinote
(→プロパティベース フィルタ) |
|||
行86: | 行86: | ||
マニュアルによると、正規表現を使わなくて良いのであればそちらの方が速い。 | マニュアルによると、正規表現を使わなくて良いのであればそちらの方が速い。 | ||
+ | |||
+ | 正規表現のサンプル: | ||
+ | :msg, regex, "fatal .* error" | ||
+ | |||
+ | ==== value ==== | ||
+ | |||
+ | * クォートされた文字列を指定する。 | ||
+ | * エスケープシーケンス使用可 (\" でダブルクォート、\\ でバックスラッシュ) | ||
=== フォーマット === | === フォーマット === |
2013年4月23日 (火) 07:40時点における版
結構、設定がわかりにくいのであるよ。
目次
設定
モジュール
$ModLoad でモジュールを読み込む。
UDP あるいは TCP ソケットで待ち受ける
syslogd では -r オプションだったが、rsyslog では rsyslog.conf に記述する。
$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514
フィルタ
セレクタ
syslogd と同じ伝統的な形式。
facility.priority
- facility
- 主に:auth, authpriv, cron, daemon, kern, lpr, mail, news, syslog, user, uucp, local0 - local7
- priority
- 主に:debug, info, notice, warning, err, crit, alert, emerg
主なルール
- 指定した priority 以上のログにマッチする
- アスタリスク (*) ですべての facility あるいは priority にマッチ
- セミコロン (;) で複数のセレクタを指定可能
- none で対象 facility を除外可能
- コンマ (,) で複数の facility を指定可能
- イコール (=) で特定の priority のみにマッチ
- エクスクラメーションマーク (!) で priority 以上を無視
daemon.err # daemon の err, crit, alert, emerg にマッチ mail.* # mail のすべてのログにマッチ *.emerg # すべての emerg のログにマッチ *.* # すべてのログにマッチ daemon.warning;cron.err *.*;mail.none # mail 以外のすべてのログにマッチ uucp,news.crit # uucp と news の crit, alert, emerg にマッチ daemon.=err # daemon の err のみにマッチ daemon.notice;daemon.!err # daemon の notice と warning のみマッチ?(試してない)
プロパティベース フィルタ
rsyslogd 独自のフィルタ。
:property, [!]compare-operation, "value"
property
主なプロパティは以下。
- msg
- メッセージ本体 (MSG)
- hostname
- ホスト名
- fromhost, fromhost-ip
- メッセージを送信したホスト名 or IP アドレス
- syslogtag
- タグ部分 (TAG) (例:"kernel:", "ntpd[xxx]:")
- programname
- タグ中の名前部分 (例:"kernel", "ntpd")
- syslogfacility-text
- ファシリティ名
- syslogpriority-text
- プライオリティ名
- timegenerated
- メッセージを受信した日時
- timestamp (timereported)
- メッセージのタイムスタンプ
compare-operations
以下があるらしいが全部は試していない。
- contains
- 文字列が含まれているかどうか。ワイルドカードは使用不可。
- isequal
- exact マッチ
- startswith
- 指定した文字列から始まるかどうか。
- regex
- POSIX BRE
- ereregex
- POSIX ERE
マニュアルによると、正規表現を使わなくて良いのであればそちらの方が速い。
正規表現のサンプル:
:msg, regex, "fatal .* error"
value
- クォートされた文字列を指定する。
- エスケープシーケンス使用可 (\" でダブルクォート、\\ でバックスラッシュ)
フォーマット
- ファシリティ・プライオリティを syslogd の -SS オプションのように出力する
$template MyFormat,"%TIMESTAMP% <%syslogfacility-text%.%syslogpriority-text%> %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n" 例) Apr 19 08:04:08 <user.notice> courier hagio: test