Искать в Splunk в поисковой таблице с многозначными полями - PullRequest
0 голосов
/ 06 мая 2020

У меня есть таблица поиска, которая выглядит следующим образом:

enter image description here

Итак, у меня есть запрос Splunk, который генерирует таблицу с IP-адресами, и я хочу для автоматического заполнения соответствующих имен DNS.

Я использую следующее, но оно не работает:

Index=servers signature_id=4624
| stats count by IpAddress
**| lookup lookup.csv "ip" AS IpAddress OUTPUT "dns" AS server_name**
| stats count by server_name IpAddress 

Есть идеи, как это решить?

Может быть, мне нужно сделайте что-то подобное перед поиском

| makemv delim="|" ip | mvexpand ip  | fields ip dns ?

1 Ответ

0 голосов
/ 06 мая 2020

Поиск по Splunk использует точное соответствие, соответствие подстановочным знакам или соответствие CIDR, но они не могут выбрать одно из нескольких значений. Значение по умолчанию - точное, что означает, что данные должны точно соответствовать значению в указанном столбце подстановки. В вашем примере поле «ip» должно быть «ip1 | ip2 | ip3», чтобы вернуть «server1».

Подстановочные знаки относятся к наличию «» в файле поиска. Это позволит «ip» соответствовать, например, «subnet1 ».

Сопоставление CIDR позволяет использовать строки CIDR в файле поиска, что позволяет, например, «ip» соответствовать «ip1 / 24».

В определении поиска должны быть настроены как подстановочные знаки, так и сопоставление CIDR. См. Настройки-> Поиск-> Определения поиска.

Подумайте о реструктуризации файла поиска, чтобы иметь один IP-адрес на строку.

dns        ip
server1    ip1
server1    ip2
server1    ip3
server2    ip4
server2    ip5

Это будет работать с вашим существующим запросом. Однако поиск в поле DNS вернет только первый IP-адрес этого сервера.

...