シェルスクリプトマガジン

第20回 ログを収集する(rsyslogのログメッセージ)

ログメッセージにテンプレートを適用するには、次のように「セレクター」と「アクション」で定義した「ルール」の末尾に「;」に続けてテンプレート名を記述します。これで、アクションで使用するログメッセージを、テンプレートで定義したフォーマットに合わせられます。

セレクター                 アクション;テンプレート名

それでは、例として、

実行したプログラム=プログラム名 メッセージ=メッセージ 発生日時=日時

のフォーマットで、システム関連のログメッセージを「/var/log/customlog.log」ファイルに保存する設定を記述してみましょう。次のコマンドを実行してエディタを開き、rsyslogの設定ファイルを「/etc/rsyslog.d/99-custom.conf」として新規に作成します。

このファイルに書き込む設定は、次の通りです。「\n」は改行マークであり、テンプレートテキストの最後に追加することで、1行ずつ改行してログメッセージが書き込まれるようにしています。

プロパティーは「%」で囲みます。テンプレート名は任意で構いません。ここでは「custom」としました。システム関連のログのルールは「/etc/rsyslog.d/50-default.conf」ファイルを参考に記述しています。

書き換えたら、rsyslogdを再起動します。