テンプレートは、rsyslog によって生成された出力を変更およびフォーマットします。ユーザーが希望する任意の形式を指定できます。また、動的ファイル名の生成にも使用されます。テンプレートを作成する構文は次のとおりです:
$template TEMPLATE_NAME,"text %PROPERTY% text", [OPTION]
フィールドは次のように説明されています:
フィールド | 目的 |
---|---|
$template | テンプレートを定義するディレクティブ |
TEMPLATE_NAME | テンプレートの名前 |
「テキスト」 | 引用符で囲まれた実際のテンプレート テキスト |
%PROPERTY% | パーセント記号で囲まれた特定のメッセージ コンテンツ |
オプション | テンプレートの機能を変更するオプションを指定します |
テンプレートを使用して、動的なファイル名を生成できます。プロパティをファイル パスの一部として指定して、一意のプロパティごとに新しいファイルを作成します。たとえば、time generated を使用します。 rsyslog メッセージごとに一意のファイル名を生成するプロパティ:
$template DynamicFile,“/var/log/%timegenerated%-test.log”
ルールでテンプレート名を指定して、rsyslog 出力を変更します。動的ファイルは、テンプレートと疑問符 (?) プレフィックスで表されます。例:
*.* ?DynamicFile
プロパティ
テンプレート内のプロパティを使用して、rsyslog メッセージの特定の内容を参照できます。テンプレート内でプロパティを定義するには、次の構文を使用します:
%PROPERTY_NAME[:FROM_CHAR:TO_CHAR:OPTION]%
フィールドは次のように説明されています:
フィールド | 目的 |
---|---|
PROPERTY_NAME | プロパティの名前 |
FROM_CHAR と TO_CHAR | 指定されたプロパティが作用する文字の範囲 |
オプション | プロパティ オプション |
利用可能なプロパティと説明のリストは、http://www.rsyslog.com/doc/property_replacer.html にあります。
1. 次のプロパティは、rsyslog メッセージのメッセージ テキスト全体を表します:
%msg%
2. 次の例は、メッセージ テキストの最初の 2 文字を表しています:
%msg:1:2%
3. 次のプロパティは、rsyslog メッセージ内のホスト名を表します:
%hostname%
4. 次のプロパティは、メッセージの機能をテキスト形式で表します:
%syslogfacility-text%
テンプレート:例
次の例では、メッセージのタイムスタンプ、テキスト形式の機能、テキスト形式の優先度、ホスト名、およびメッセージ テキストを出力するように rsyslog メッセージをフォーマットし、改行で終わる class という名前のテンプレートを定義します。
$template class, "Time: %timestamp%, Facility: %syslogfacilitytext%, Priority: %syslogpriority-text%, Hostname: %hostname%, Message: %msg%\n"
/var/log/logfile メッセージのテンプレートを使用するには、次のようにテンプレート名を含めます:
*.* /var/log/logfile;classCentOS / RedHat :ログ ファイル管理の初心者ガイド
rsyslog アクションについて
rsyslog フィルター オプションについて