syslog-ng を使用してファイアウォールから SIEM にログを転送しようとしましたが、問題は、syslog-ng によって追加されたヘッダーを追加せずに元の生ログのみを転送したいことです。次の syslog-ng conf ファイルがあります。
@version: 5.2
#Default configuration file for syslog-ng.
#
# For a description of syslog-ng configuration file directives, please read
# the syslog-ng Administrator's guide at:
#
# http://www.balabit.com/sites/default/files/documents/syslog-ng-pe-5.2- guides/en/syslog-ng-pe-v5.2-guide-admin/html-single/index.html
#
@include "scl.conf"
options {
};
######
# sources
source s_local {
# message generated by Syslog-NG
internal();
};
source s_udp {
udp(ip(X.X.X.X)
flags(no-parse)
port(514));
};
######
#templates
template no_header {
template($MSG); template_escape(no);
};
######
#destinations
destination d_siem {x
syslog("X.X.X.X" port(514) template(no_header));
};
log { source(s_udp); destination(d_siem);};
上記で、syslog-ng のヘッダーのほとんどを削除できましたが、以下の太字は削除できません
**531 <13>1 2015-03-03T17:35:12+04:00 X.X.X.X - - - -** <189>date=2015-03-03 time=05:27:43 devname=XXX-X-X device_id=XXXX log_id=XXXX type=XXX subtype=XXX pri=notice vd= src=X.X.X.X src_port=X src_int="XXX" dst=X.X.X.X dst_port=XXX dst_int="XXX" SN=XXXXX status=XXX policyid=X dst_country="XXXX" src_country="XXXX" dir_disp=XXX tran_disp=XXX tran_sip=X.X.X.X tran_sport=XXX service=XXX proto=X duration=XXX sent=XXX rcvd=XXX sent_pkt=XXX rcvd_pkt=XXX
Syslog-ng のドキュメントには、次のように記載されています。
(マクロには末尾の空白が含ま$MSGHDR$MSG
れているため、この部分は一緒に記述されます。)$MSGHDR
conf でテンプレートを から SIEM で受け取る唯一のものに変更する$MSG
と、$MSGHDR
次のようになります。
531 <13>1 2015-03-03T17:35:12+04:00 X.X.X.X - - - -
しかし、再び$MSG
or$MSGONLY
またはを使用すると、次の$MESSAGE
ようになります。
**531 <13>1 2015-03-03T17:35:12+04:00 X.X.X.X - - - -** <189>date=2015-03-03 time=05:27:43 devname=XXX-X-X device_id=XXXX log_id=XXXX type=XXX subtype=XXX pri=notice vd= src=X.X.X.X src_port=X src_int="XXX" dst=X.X.X.X dst_port=XXX dst_int="XXX" SN=XXXXX status=XXX policyid=X dst_country="XXXX" src_country="XXXX" dir_disp=XXX tran_disp=XXX tran_sip=X.X.X.X tran_sport=XXX service=XXX proto=X duration=XXX sent=XXX rcvd=XXX sent_pkt=XXX rcvd_pkt=XXX
私がsyslog-ngに転送させたいのはこれだけです:
<189>date=2015-03-03 time=05:27:43 devname=XXX-X-X device_id=XXXX log_id=XXXX type=XXX subtype=XXX pri=notice vd= src=X.X.X.X src_port=X src_int="XXX" dst=X.X.X.X dst_port=XXX dst_int="XXX" SN=XXXXX status=XXX policyid=X dst_country="XXXX" src_country="XXXX" dir_disp=XXX tran_disp=XXX tran_sip=X.X.X.X tran_sport=XXX service=XXX proto=X duration=XXX sent=XXX rcvd=XXX sent_pkt=XXX rcvd_pkt=XXX
次のようなオプションを使い果たしました。
options {
#keep-hostname(yes);
#chain-hostnames(no);
#use_fqdn(no);
#create_dirs(no);
#long_hostnames(off);
#flush_lines(0);
#use-dns(no);
#keep_timestamp(yes);
#flags(store-legacy-msghdr);
};
上記のどれも違いはありませんでした。
別のフォーラムで、書き換えとセットを使用してロックされた (変更不可能な) var の値を他の var に入れ、新しい var の値を PCRE などで編集して、目的のデータだけを含めることができることを読みました。しかし、どうすればそれを達成できるか正確にはわかりません。
誰かが上記について少し手伝ってもらえますか?