Rsyslog変数を使用してログファイル名を作成します。変数%HOSTNAME%および%fromhost-ip%。すべて問題ありませんが、問題は、リモートホストから送信されるログのすべてのログ行にこれらの変数を追加/追加するにはどうすればよいですか?
解決策は、カスタムrsyslogテンプレートを使用することです。まず、ログメッセージテンプレートを作成します。次のテンプレートはデフォルトのsyslog形式に似ていますが、%fromhost-ip%
追加同じ方法で他の変数を追加できます
$template tplremote,"%timegenerated% %HOSTNAME% %fromhost-ip% %syslogtag%%msg:::drop-last-lf%\n"
次に、ファイル名テンプレートを作成します。
$template RemoteHost,"/var/log/remote/%HOSTNAME%.log"
そして最後に、作成したテンプレートを使用するようにrsyslogに指示します。
if ($hostname != 'localhost') then ?RemoteHost;tplremote
& ~
最後の行は、を含む行の直前に追加する必要があることに注意してください。
*.info;mail.none;authpriv.none;cron.none
また、これはredhatのepelリポジトリからの新しいrsyslogでテストされ、機能したことにも注意してください(rsyslog-7.6.7-1.el6.x86_64
)。他のディストリビューションでは動作が異なる場合があります。