rsyslogを使用してホストごとに別々のsyslogファイルを作成する

rsyslogを使用してホストごとに別々のsyslogファイルを作成する

ネットワーク デバイスからのすべての syslog を統合する syslog サーバー (RHEL 7.4 で rsyslog を実行) があります。ポート TCP/514 でリッスンしています。

各デバイスのログをすべて に取得するのではなく、専用ディレクトリ (IP アドレスに基づく) 内の別のファイルにリダイレクトしたいと考えています/var/log/messages。どうすればできますか?

答え1

rsyslog Web サイトに文書化されているようです: https://www.rsyslog.com/storing-and-forwarding-remote-messages

要約する :

ログ ファイルのテンプレートを定義する必要があります。たとえば、次のようになります。

# log every host in its own directory
$template RemoteHost,"/var/syslog/hosts/%HOSTNAME%/%$YEAR%/%$MONTH%/%$DAY%/syslog.log"

次に、リモート ホストから送信されるメッセージにこのテンプレートを適用します。

# Remote Logging
$RuleSet remote
*.* ?RemoteHost

関連情報