[英]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.