понедельник, 19 сентября 2016 г.

Splunk. Использование Search macros

Приветствую, уважаемый читатель!

На мой взгляд, одной из задач SIEM-систем является автоматизация контроля над происходящими в инфраструктуре событиями, т.е. не надо смотреть в десятки консолей администрирования средств защиты. В случае со Splunk мы сами создаём себе инструмент для автоматизации контроля. Достигается это, в том числе, с использованием языка запросов (SPL), в котором предусмотрены возможности по автоматизации и имя им – поисковые макросы (Search macros). :)




Макросом в Splunk является часть запроса на SPL, в которую можно передавать параметры. Разберёмся на примере. Итак, есть запрос, отображающий на карте источники активности (IP-адреса):


sourcetype=Apache_access
| table _time,clientip
| iplocation lang=ru clientip

| geostats count by clientip latfield=lat longfield=lon




Теперь предположим, что у нас есть несколько источников событий, для которых необходимо стоить аналогичные визуальные представления. Т.е. часть запроса с операторами iplocation и  geostats будет повторяться, а отличаться (возможно) будет только имя поля содержащего ip-адрес.

Создавать макросы можно двумя способами:

  • В web-интерфейсе Splunk сервера (Settings > Advanced Search > Search Macros > New)




  • Путем создания и редактирования файла macros.conf в директории пользовательских конфигурационных файлов (/opt/splunk/etc/apps/search/local).

Мне больше нравится второй вариант :) Поэтому открываем файл macros.conf и добавляем текст ниже:

[geoip_location(1)]
args = iploc
definition = table _time,$iploc$ | iplocation lang=ru $iploc$ | geostats count by $iploc$ latfield=lat longfield=lon
  
Пояснение:
geoip_location(1)  -  имя макроса, с указанием количества передаваемых параметров;
args -  список параметров, передаваемых в макрос (перечислять необходимо через запятую);
definition -  непосредственно текст макроса с переданными в виде переменных  параметрами(указывать параметры обязательно заключенными в знак $).


Перезагружаем Splunk и вбиваем в строке поиска запрос:

sourcetype=Apache_access | `geoip_location(clientip)`



или

sourcetype=fail2ban | `geoip_location(srcip)`



Таким образом, мы можем использовать созданный макрос для любого sourcetype




Комментариев нет:

Отправить комментарий