web-dev-qa-db-ja.com

リモートホストログのrsyslogのすべてのログ行に%fromhost-ip%変数を追加するにはどうすればよいですか?

Rsyslog変数を使用してログファイル名を作成します。変数%HOSTNAME%および%fromhost-ip%。すべて問題ありませんが、問題は、リモートホストから送信されるログのすべてのログ行にこれらの変数を追加/追加するにはどうすればよいですか?

2
dimovnike

解決策は、カスタム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)。他のディストリビューションでは動作が異なる場合があります。

3
dimovnike