簡體   English   中英

嘗試使用正則表達式在 rsyslog 中提取字段但沒有成功

[英]Trying to extract a field in rsyslog using regex with no luck

這是數據:

DROP IN=eth0 OUT= MAC=00:00:64:34:65:f8:00:00:5c:6f:36:46:08:00 SRC=6.6.73.64 DST=45.45.89.250 LEN=40 TOS=0x00 PREC=0x20 TTL=235 ID=2329 PROTO=TCP

我正在嘗試從 IN、MAC、SRC 等變量中提取值。

我在SED或者各種REGEX模擬器中成功使用:

(?<=\sIN=)(.*?)(?=\s)

但是當嘗試在 rsyslog 模板配置中使用它時,它似乎失敗了,因為數據停止發送:

property(outname="IN" name="msg" regex.expression="(?<=\sIN=)(.*?)(?=\s)" regex.submatch="1" regex.type="ERE" format="jsonf" onEmpty="keep")

這似乎是rsyslog特有的問題。

使用 ERE:

[^[:space:]=]+=([^[:space:]]+)

正則表達式演示

根據評論,完整的工作命令:

property(outname="IN" name="msg" regex.expression="IN=([^[:space:]]*)" regex.submatch="1" regex.type="ERE" format="jsonf" onEmpty="skip")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM