Я пытаюсь извлечь первый действительный общий MAC-адрес из нескольких разных записей сообщений в Graylog. Я могу сделать это с помощью разных экстракторов Grok, но я хочу сделать это с помощью Regex, чтобы я мог выполнять преобразования на Mac во все строчные буквы. Ниже приведены некоторые примеры сообщений и шаблоны Grok, которые работают.
Вопрос: как мне преобразовать эти экстракторы Grok в регулярное выражение и есть ли одно регулярное выражение, которое будет работать во всех 4 примерах? По сути, регулярному выражению просто нужно сопоставить первый действительный MAC-адрес в каждой строке и извлечь его.
Пример 1: Equinox: *spamApTask1: 20 марта 15:26:04.033: #CAPWAP-3-ECHO_ERR: capwap_ac_sm.c:7019 Не получен ответ пульса; АП: 00:3а:9а:48:9б:40
Пример 2: Equinox: *spamReceiveTask: 17 марта 12:34:39.264: #CAPWAP-3-DTLS_CONN_ERR: capwap_ac.c:934 00:3a:9a:30:f5:90: DTLS-соединение не найдено для точки доступа 192.168.99.74 (43456 ), Контроллер: 192.168.99.2 (5246) отправить пакет
Sample3: Equinox: *spamApTask1: 22 марта 08:35:14.562: #LWAPP-4-SIG_INFO1: spam_lrad.c:44474 Информация о подписи; AP 00:14:1b:61:f8:40, тревога включена, стандартный сигнал NULL, зонд соотв. 1, приоритет отслеживания 2, совпадения 1, слот 0, канал 1, MAC-адрес с наибольшим количеством нарушений 00:00:00:00:00 :00 #yes но должен сделать Mac строчными буквами
Пример 4: Equinox: *idsTrackEventTask: 22 марта 08:40:13.816: #WPS-4-SIG_ALARM_OFF: sig_event.c:656 AP 00:14:1B:61:F8:40 : Тревога ВЫКЛ, стандартный сигнал NULL, зонд соответственно 1 , track=per-Mac preced=2 совпадения=1 слот=0 канал=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}