「Rsyslog」の版間の差分
提供: Wikinote
(→プロパティベース フィルタ) |
|||
行16: | 行16: | ||
$ModLoad imtcp | $ModLoad imtcp | ||
$InputTCPServerRun 514 | $InputTCPServerRun 514 | ||
+ | |||
+ | === 基本構文 === | ||
+ | |||
+ | syslogd と同様に以下が基本。 | ||
+ | |||
+ | ''フィルタ'' ''アクション'' | ||
+ | |||
+ | * 複数のアクションを適用する | ||
+ | |||
+ | ''フィルタ'' ''アクション1'' | ||
+ | & ''アクション2'' | ||
+ | & ''アクション3'' | ||
+ | |||
+ | * それ以降の処理をやめる (discard) | ||
+ | |||
+ | ''フィルタ'' '''~''' | ||
=== フィルタ === | === フィルタ === | ||
行55: | 行71: | ||
daemon.notice;daemon.!err # daemon の notice と warning のみマッチ?(試してない) | daemon.notice;daemon.!err # daemon の notice と warning のみマッチ?(試してない) | ||
− | === プロパティベース フィルタ === | + | ==== プロパティベース フィルタ ==== |
rsyslogd 独自のフィルタ。 | rsyslogd 独自のフィルタ。 | ||
行61: | 行77: | ||
:''property'', [!]''compare-operation'', "''value''" | :''property'', [!]''compare-operation'', "''value''" | ||
− | ==== property ==== | + | ===== property ===== |
主なプロパティは以下。 | 主なプロパティは以下。 | ||
行75: | 行91: | ||
; timestamp (timereported) : メッセージのタイムスタンプ | ; timestamp (timereported) : メッセージのタイムスタンプ | ||
− | ==== compare-operations ==== | + | ===== compare-operations ===== |
以下があるらしいが全部は試していない。 | 以下があるらしいが全部は試していない。 | ||
行90: | 行106: | ||
:msg, regex, "fatal .* error" | :msg, regex, "fatal .* error" | ||
− | ==== value ==== | + | ===== value ===== |
* クォートされた文字列を指定する。 | * クォートされた文字列を指定する。 |
2013年4月23日 (火) 07:44時点における版
結構、設定がわかりにくいのであるよ。
目次
設定
モジュール
$ModLoad でモジュールを読み込む。
UDP あるいは TCP ソケットで待ち受ける
syslogd では -r オプションだったが、rsyslog では rsyslog.conf に記述する。
$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514
基本構文
syslogd と同様に以下が基本。
フィルタ アクション
- 複数のアクションを適用する
フィルタ アクション1 & アクション2 & アクション3
- それ以降の処理をやめる (discard)
フィルタ ~
フィルタ
セレクタ
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