ログメッセージにテンプレートを適用するには、次のように「セレクター」と「アクション」で定義した「ルール」の末尾に「;」に続けてテンプレート名を記述します。これで、アクションで使用するログメッセージを、テンプレートで定義したフォーマットに合わせられます。
セレクター アクション;テンプレート名
それでは、例として、
実行したプログラム=プログラム名 メッセージ=メッセージ 発生日時=日時
のフォーマットで、システム関連のログメッセージを「/var/log/customlog.log」ファイルに保存する設定を記述してみましょう。次のコマンドを実行してエディタを開き、rsyslogの設定ファイルを「/etc/rsyslog.d/99-custom.conf」として新規に作成します。
1 |
$ sudo nano /etc/rsyslog.d/99-custom.conf |
このファイルに書き込む設定は、次の通りです。「\n」は改行マークであり、テンプレートテキストの最後に追加することで、1行ずつ改行してログメッセージが書き込まれるようにしています。
1 2 |
$template custom,"実行したプログラム=%programname% メッセージ=%msg% 発生日時=%timegenerated%\n" *.*;auth,authpriv.none -/var/log/customlog.log;custom |
プロパティーは「%」で囲みます。テンプレート名は任意で構いません。ここでは「custom」としました。システム関連のログのルールは「/etc/rsyslog.d/50-default.conf」ファイルを参考に記述しています。
書き換えたら、rsyslogdを再起動します。
1 |
$ sudo systemctl restart rsyslogd |