
ネットワーク デバイスからのすべての 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