0

我需要一个 rsyslog 正则表达式来将所有包含“防火墙”一词的消息转发到远程服务器。原始日志格式为:

7 月 24 日 16:33:09 FW02 内核:[3456825.472985] FIREWALL_DENY_IN: IN=eth2 OUT=MAC=ff:ff:ff:ff:ff:ff:00:1b:78:e4:b3:24:08:00 SRC =10.101.103.193 DST=10.101.103.255 LEN=237 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=51512 DPT=694 LEN=217

所需的日志格式是没有内核时间:

7 月 24 日 16:33:09 FW02 内核:FIREWALL_DENY_IN: IN=eth2 OUT=MAC=ff:ff:ff:ff:ff:ff:00:1b:78:e4:b3:24:08:00 SRC=10.101。 103.193 DST=10.101.103.255 LEN=237 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=51512 DPT=694 LEN=217

我对正则表达式的经验是基本的。我能够匹配我需要排除的部分:

[ *[0-9]*\.[0-9]*\]

但仅此而已。正则表达式必须在http://www.rsyslog.com/regex/上进行验证

4

1 回答 1

0

免责声明:我不知道 rsyslog 是如何工作的,但也许下面的正则表达式可以提供帮助

^([^[]*).*\](.*)$

子赛1:

"Jul 24 16:33:09 FW02 kernel: "

子赛2:

" FIREWALL_DENY_IN: IN=eth2 OUT=MAC=ff:ff:ff:ff:ff:ff:00:1b:78:e4:b3:24:08:00 SRC=10.101.103.193 DST=10.101.103.255 LEN=237 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=51512 DPT=694 LEN=217"

于 2012-09-07T08:53:52.790 回答