Я ищу способ анализа IP-адресов и MAC-адресов из записи системного журнала с помощью Logstash.В настоящее время я пытаюсь получить его с помощью GROK, но проблема в том, что мне может потребоваться сопоставить всю строку, а не только часть самого сообщения.
Например, мне нужно следующую строку:
9 апреля 12:41:01 cn1Label = идентификатор хоста dvchost = exch01 TrendMicroDsTenant = первичный TrendMicroDsTenantId = 0 dstMAC = 55: C0: A8: 55: FF: 41 srcMAC = CA: 36: 42: B1: 78: 3D TrendMicroDsFrameType = IP src = 10.0.251.84 dst = 56.19.41.128 out = 166 cs3 = cs3Label = Биты фрагментации прото = ICMP srcPort = 0 dstPort = 0cnt = 1 act = IDS: сброс cn3 = 0 cn3Label = позиция пакета DPI cs5 = 0 cs5Label = позиция потока DPI cs6 = 0 cs6Label = флаги DPI
Я хочу получить "src" и "dst"IPs и" srcMAC "и" dstMAC ", а также.Я хотел бы попробовать это в Logstash:
grok{
match => { "message" => "src=%{IPV4:src_ip}" }
match => { "message" => "dst=%{IPV4:dst_ip}" }
match => { "message" => "srcMAC=%{MAC:src_mac}" }
match => { "message" => "dstMAC=%{MAC:dst_mac}" }
}
Но это не работает, потому что он не соответствует всей строке.Я пытался использовать .*
и другие методы сопоставления, но безуспешно.
Есть ли способ просто проанализировать IP-адреса, как показано, без разбора полной строки?
Я бы попытался разобрать другие части сообщения, такие как протокол.Причина, по которой я не сопоставляю всю строку, состоит в том, что некоторые сообщения различаются и, следовательно, нужен еще один способ извлечения его значений.
Спасибо!