転送前の Rsyslog 変更ログ行

転送前の Rsyslog 変更ログ行

Ubuntu 16.04.5 LTSでrsyslogdを使用します。

次のような状況があります。

(1) デバイスは、syslog を Ubuntu ホストに転送します。 (2)Ubuntuホストは転送されたメッセージを別のログファイルに保存します。 (3)Ubuntuホストはまた、そのメッセージを第3のシステムに転送します。

現在の構成の外観の詳細な説明

(1) /etc/rsyslog.conf で以下の機能が有効になります。

# provides UDP syslog reception
module(load="imudp")
input(type="imudp" port="514")

# provides TCP syslog reception
module(load="imtcp")
input(type="imtcp" port="514")

(2) 以下の内容で、/etc/rsyslog.d に 30-remotehosts.conf を生成することで実装されます。

:fromhost-ip, isequal, "<sending_IP>" /var/log/remotesyslog/<name>.log
& ~

(3) 以下の内容で、/etc/rsyslog.d に 10-send_to_other_hosts.conf を生成して実装します。

:fromhost-ip, isequal, "<sending_IP>"   @<destination_IP>:514

これまでは予想通りうまく動作しています。

しかし、今私たちに必要なのは、目的地に送信する前にログラインを変更することです。

現在の例のログ行は次のとおりです。

Dec  7 11:10:07 srvde450.rce-group.local [S=582442040] [SID=9642c9:20:3850677]  1 RTP packets lost: CID=217 [Code:0x600b] [CID:217] [Time:07-12@10:10:13]

宛先に送信する前に、次のように変更する必要があります。

[S=582442040] [SID=9642c9:20:3850677]  1 RTP packets lost: CID=217 [Code:0x600b] [CID:217] [Time:07-12@10:10:13]

したがって、タイムスタンプとソースが削除されます。

これはどのように達成できますか?

ベストアンサー1

そのフィールドのみを含むデータのテンプレートを指定すると、これを行うことができますmsg。ただし、リモートサーバーは結果として非標準行を解析できない可能性があるため、デフォルト設定を使用して処理できない可能性があります。

たとえば、テンプレートを作成します。

$template myedit,"%msg%\n"

フィルターシリーズで使用してください。

:fromhost-ip, isequal, "<sending_IP>"   @<destination_IP>:514;myedit

たくさんあります特性このようなmsg入力から抽出するには、次のようにします。操縦するたとえば、部分文字列%msg:10:$:%(文字10から最後まで)を取得します。

おすすめ記事