1

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 - - - -

しかし、再び$MSGor$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 などで編集して、目的のデータだけを含めることができることを読みました。しかし、どうすればそれを達成できるか正確にはわかりません。

誰かが上記について少し手伝ってもらえますか?

4

2 に答える 2

1

no_header私にはうまくいきませんでした

設定

syslog-ng 3.7 
Centos 6.4 

以下は私のために働いた、私は使用した

tcp("*.*.*.*" port(5140) template("$MSG"));
于 2017-01-10T22:25:52.117 に答える