Приветствую, уважаемый читатель!
Сегодня я расскажу о создании дашбордов в splunk, немного разберемся с токенами и запросами для визуальных элементов.
Вообще, тема создания дашбордов и их настройки достаточно большая, и в одном
посте всего не расскажешь, но основы заложим.
Начнем с простого, для чего могут быть необходимы дашборды в SIEM? Я
выделяю две основные идеи, во-первых, конечно, для наглядной визуализации
событий, в которых мы по каким-то критериям производим фильтрацию (объекты
сетевой инфраструктуры, типы событий, сенсоры их породившие и т.д.), во-вторых
дашборды в splunk хранят конкретные запросы к данным, и у нас нет необходимости
постоянно помнить синтаксис кучи запросов.
Очень грубо можно назвать дашборд контейнером для запросов, которому мы
средствами XML, CSS, JS, HTML придаём нужный вид.
Начнем J
Для перехода в раздел дашбордов можно перейти по ссылке <ip_splunk_server:8000>/en-US/app/search/dashboards
или нажать на кнопку "Dashboards" в приложении
"Search&Reporting". Для создания нового, нажмите на кнопку
"Create new dashboard" и в
появившемся окне заполните предложенные поля (ID и название дашборда).
Обобщенно, все элементы на дашбордах в splunk можно разделить на два типа:
Панели (Panel), которые предназначены для собственно визуализации событий, полученных
в результате выполнения запроса.
Селекторы (Input), которые предназначены для фильтрации и выборки событий.
Для добавления любого компонента на дашборд необходимо нажать на кнопку
"Edit - Edit Panels", дашборд перейдет в режим редактирования и
появится панель выбора компонентов.
Для примера создадим дашборд, отображающий события из журнала веб-сервера
Apache. В качестве параметра будем передавать IP-адрес запросившего ту или иную страницу.
1) Первое – необходим запрос для получения событий из журнала:
sourcetype=Apache_access
| table
_time,clientip,uri,referer,useragent
2) Пишем
запрос для получения нескольких IP-адресов,
с которых были обращения к web-серверу:
sourcetype=Apache_access
|
stats count by clientip
| head 4 | fields –
count
В
результате вы получите 4 адреса, которые нам еще пригодятся.
3) Нажмите
на кнопку «Add Panel» и в разделе «New» выберите элемент Statistics Table. И в
разделе «Search String» вбейте запрос из пункта 1. После этого нажмите на
кнопку «Add to
Dashboard». В рабочей области дашборда появится панель с
результатами запроса.
4) Нажмите
на кнопку «Add
Input»
и выберите элемент – Dropdown.
На дашборде появится новый селектор.
5) Нажмите
на кнопку в виде карандаша у добавленного селектора и введите значения как на
скрине ниже (имя селектора и имя токена):
Дополнительно
в разделе Static
Option
необходимо внести 4 IP-адреса, которые получены на шаге 2.
6) Теперь,
когда у нас есть панель для отображения результатов запроса и селектор, который
может использоваться для выбора значения IP-адреса источника, настало время их
связать друг с другом. Механизм связывания называется – токены (объяснение
принципа работы в конце поста).
На дашборде нажмите «Edit - Edit Panels» и далее в панели для результатов
запроса нажмите на кнопку в виде лупы и выберите «Edit Search String».
7) В открывшемся окне добавить к запросу clientip=$ip_tok$. Далее кнопку
«Save»
- «Done».
sourcetype=Apache_access
clientip=$ip_tok$
| table
_time,clientip,uri,referer,useragent
Результат
должен быть как на скрине ниже.
Всё,
простейший дашборд готов. Как это работает: при изменении значения в элементе Dropdown, выбранное значение
попадает в токен – ip_tok, который фигурирует в запросе на
получение результатов. Как только splunk увидел, что значение
токена обновилось, автоматически пересчитываются запросы в которых этот токен
фигурирует. Пересчитываются все запросы на дашборде.
Надеюсь
немного ясности внёс.
Лирические
отступления
Что
такое токен? Фактически это переменная, в которую можно записать какое-либо
значение. В отличие от языков программирования, где вы может объявить
переменную в любом месте, на дашбордах все токены привязаны к действиям
пользователя или к выполнению конкретного запроса.
Какие
виды дашбордов бывают? В принципе, можно выделить 2 вида дашбордов: real-time дашборды
и статистические дашборды. Как понятно из названия, первые предназначены для
постоянного отображения и обновления данных в виджетах. Проще говоря, запрос
поставляющий данные для виджета с определенным интервалом будет постоянно
выполняться и полученные события прилетят в виджет. В статистических дашбордах
наборы данных меняются только при изменении значения какого-либо селектора (или
при помощи особой xml-магии
J).
Причем есть особенность, на одном дашборде могут быть как real-time компоненты, так и статистические,
но я не сторонник этого.
Где
хранятся дашборды? Как уже говорилось ранее, дашборды в splunk –
это XML-файлы.
У каждого приложения могут быть свои дашборды, которые физически хранятся в
директории - /opt/splunk/etc/apps/«имя приложения»/local/data/ui/views.
Виды
запросов для элементов? Я думаю, вы заметили, что у каждого селектора есть 2
раздела «Static
Options»
и «Dynamic
Options»,
их основное отличие следующее: в первом случае значения для селектора вбиваются
вручную, во втором случае – они получаются в результате запроса. Важный момент –
необходимо соблюсти условие уникальности элементов селектора. Про динамическое
вычисление элементов селектора я планирую написать отдельно.
Комментариев нет:
Отправить комментарий