我正在尝试从 Graylog 中的几个不同消息条目中提取第一个有效的公共 mac 地址。我可以用不同的 Grok Extractor 来做,但我想用 Regex 来做,这样我就可以在 Mac 上转换为所有小写字母。下面是一些示例消息和有效的 Grok 模式。
问题,我如何将这些 Grok 提取器转换为正则表达式,或者是否有一个正则表达式适用于所有 4 个示例?基本上,正则表达式只需要匹配每个字符串中的第一个有效 MAC 地址并提取它。
示例 1:Equinox:* spamApTask1:3 月 20 日 15:26:04.033:#CAPWAP-3-ECHO_ERR:capwap_ac_sm.c:7019 未收到心跳回复;美联社:00:3a:9a:48:9b:40
示例 2:Equinox:*spamReceiveTask:3 月 17 日 12:34:39.264:#CAPWAP-3-DTLS_CONN_ERR:capwap_ac.c:934 00:3a:9a:30:f5:90:未找到 AP 192.168.99.74 的 DTLS 连接(43456 )、控制器:192.168.99.2(5246)发送数据包
Sample3:Equinox:* spamApTask1:Mar 22 08:35:14.562:#LWAPP-4-SIG_INFO1:spam_lrad.c:44474 签名信息;AP 00:14:1b:61:f8:40,警报开启,标准 sig NULL 探测响应 1,跟踪 per-Macprecedence 2,命中 1,插槽 0,通道 1,最有问题的 MAC 00:00:00:00:00 :00 #yes 但必须将 Mac 设为小写
示例 4:Equinox:*idsTrackEventTask:3 月 22 日 08:40:13.816:#WPS-4-SIG_ALARM_OFF:sig_event.c:656 AP 00:14:1B:61:F8:40:警报关闭,标准 sig NULL 探针响应 1 , track=per-Mac preced=2 hits=1 slot=0 channel=1 是但必须使 Mac 小写
Sample1 Grok pattern:%{GREEDYDATA}AP: {COMMONMAC:WLC_APBaseMac}
Sample2 Grok pattern:%{GREEDYDATA}capwap_ac.c:934 %{COMMONMAC:WLC_APBaseMac}
Sample3 Grok pattern:%{GREEDYDATA}AP %{COMMONMAC:WLC_APBaseMac}
Sample4 Grok pattern:%{GREEDYDATA}AP %{COMMONMAC:WLC_APBaseMac}