Splunk. Легкий Troubleshooting работы приложений

0v23easuhjlcpzivghsje_yeq_0.png

Как часто вы используете уже созданные надстройки со Splukbase, вместо того, чтобы написать собственные? Всегда ли в них есть то, что вы хотели бы увидеть? Все ли в них работает нормально, даже если устанавливалось точно по инструкции? Сегодня мы поговорим об особенностях работы с приложениями Splunk.

А именно, научимся разбираться в том, как формируются запросы в приложениях, чтобы в дальнейшем на их основе сделать что-то конкретное под свою задачу. А также рассмотрим несколько причин, из-за которых зачастую приложения начинают работать криво или не работают совсем.
Почему мы говорим об этом? Потому что многие приложения имеют более сложную структуру запросов, чем используют обычные рядовые пользователи при написании собственных приложений. Но при этом, часто возникает потребность разобраться, как строится та или иная таблица, чтобы подкорректировать ее под себя.

Какие фишки используются продвинутыми разработчиками приложений:

  • Eventtype
  • Macros
  • Alerts
  • Lookups


Сейчас мы на примерах нескольких запросов попробуем показать, что это такое и как в них разобраться.

Пример № 1


Возьмем запрос из приложения Splunk App for Windows Infrastructure, который должен выдать нам количество новых пользователей в Active Directory. Мы получаем в результате такую вот таблицу:

-9wojswctlostiukzg3ahg5csmy.png

Предположим, нас в этой таблице что-то не устраивает: нужно добавить еще одно поле, сделать дополнительную фильтрацию по Subject User или что-то другое. Кажется, что тут сложного? Сейчас откроем поисковый запрос, и все отредактируем!

Но… что-то пошло не так.

n7z3wrk0g6cehz97z6-acys7tzk.png

Вместо стандартного и понятного запроса появилась странная конструкция в одинарных кавычках. Давайте знакомиться, это макрос.

Макрос в Splunk — это поисковый запрос для многоразового пользования. Макросы создают, когда в рамках одного приложения приходится часто делать однотипные преобразования, и чтобы не повторять их в каждом запросе, сохраняют их отдельно. Макрос в запросе можно узнать по такой структуре `macros_name`. Также макросы могут требовать какой-то входящей переменной, такие макросы в запросе имеют структуру `macros_name (value)`.

Далее откроем текст макроса, его можно найти тут Settings — Advanced Search — Search macros.

2wjtqvzyzrqt5m7btviaxap_enc.png

В целом, такой запрос выглядит более обычным и с ним уже можно поработать. Но есть один нюанс, если вы попытаетесь найти в логах такое поле как eventtype, то вы ничего не найдете. Это еще один инструмент Splunk.

Eventtype — это инструмент фильтрации. Он используется в случаях если, нужные события отбираются по множеству критериев. Поэтому с помощью eventtype мы можем один раз настроить, какие события будут относиться к этому типу, дать им адекватное название и в дальнейшем использовать в любых запросах.

Найти Eventtype можно в Settings — Event types.

Под «eventtype = wineventlog_security» скрывается следующий поиск:

jptjbi_gaecfvtfesut7_oemgai.png

Таким образом мы «раскрутили» один из запросов в приложении. Теперь мы знаем на основе каких данных и какие преобразования проводились, чтобы получить результат, а значит при необходимости можем откорректировать его или создать свой собственный похожий. Только будьте внимательны, не стоит пытаться редактировать макросы и типы событий, встроенные в приложения. На них могут ссылаться другие дашборды и тогда результаты изменятся тоже. Чтобы этого не происходило, лучше все фрагменты собрать в один поиск или же создать новые макросы и типы событий.

Отмечу сразу, что это далеко не самая сложная и запутанная история. Eventtype может ссылаться на любой другой eventtype, а этот другой на третий и тд. Некоторые макросы могут ссылаться на справочники, которые формируются с помощью других макросов и тд.

Пример № 2


Рассмотрим еще один пример: формирование списка доменов.

k8emjjscmgivjjxh0vau1kl0a5w.png

Посмотрим на запрос, который формирует нам этот список.

4r49zpnrmxasqcmaghnop9p4gom.png

И мы опять видим макрос, который заменяет собой почти весь запрос.

Идем в меню с макросами (Settings — Advanced Search — Search macros) и видим, что наш макрос берет основу из справочника с доменами.

61y-qjhcbshff_w-06ltgzs8w0u.png

Напрашиваются вопросы: что это за справочник, как и откуда он взял наши данные, если мы загрузили приложение из интернета и никакой справочной информации ему не давали.
Вспоминаем, что справочники могут создаваться не только из загруженных файлов, но и с помощью поисков или алертов. Заходим в соответствующий раздел (Settings — Searches, Reports, and Alerts) и действительно находим там объект, который по названию похож на что-то нам нужное. (DomainSelector_Lookup)

Это алерт, который запускается по расписанию, срабатывает с определенной периодичностью и обновляет справочник.

hx-mcnrbmgk0ywchlzbhudhi10i.png

Но давайте посмотрим, откуда он берет название доменов, а для этого откроем поисковый запрос. А в нем….снова макрос.

oogss7e_hckib0mfogm8pwgm3hm.png

В котором снова есть ссылка на eventtype.

xachiyrcilkvbloaoik3aivcguc.png

И в котором есть еще одна ссылка на eventtype

fjkddxibqb1psx4ivqaxybyfmni.png

И только сейчас мы добрались до конца этой запутанной цепочки:

peqk9m_fontrawrwcbzbaa2njca.png

На двух примерах мы рассмотрели, что скрывается за табличками и графиками такого приложения как Splunk App for Windows Infrastructure. Такая архитектура показывает высокий уровень проработки модели данных, а значит и качество приложения, но доставляет много боли пользователям, которые захотят разобраться в том, что же там происходит.

Troubleshooting


Как и было заявлено в начале статьи, скажем еще пару слов о том, почему приложение может не работать так, как мы этого ожидаем.

Рассмотрим такой пример: мы установили приложение Splunk App for Windows Infrastructure, установили аддоны, которые требуются для него, настроили загрузку данных на спланк. Но когда мы заходим в приложение, то видим вот такую вот картину:

qj1s25gosc-oyegddhxjxw7owt0.png

Почему так может быть? Если честно, причин может быть много, но мы сейчас рассмотрим две наиболее вероятные и распространенные.

1. Default Indexes


Как вы можете заметить, то во всех поисковых запросах, которые были в первой части статьи отсутствует классическая часть index=…. Когда в запросе не указано по какому индексу осуществляется поиск, то поиск идет только по тем индексам, которые есть в списке Default Indexes. По умолчанию туда входит только индекс main, поэтому нужно добавить нужные нам индексы в эту группу.

Это можно сделать следующим образом:
Settings — Users and authentication — Access controls — Roles — <те роли, которые будут работать с этим приложением> — Indexes searched by default

Затем, добавить к Selected indexes нужные индексы.

wlyjo6qnnh-fh1dvfd52qqh1au4.png

2. Scheduled Alerts


Многие фильтры основаны на справочниках, а справочники на алертах. Возможно, эти алерты еще не сработали и не заполнили справочники нужной информацией. Нужно посмотреть, когда они отработают и при необходимости изменить время и интервал обновлений справочника. (Settings — Searches, Reports, and Alerts)
В этой статье мы все рассмотрели на примере приложения Windows Infrastructure, но то же самое встречается во многих созданных опытными спланкерами приложениях.

Если вы хотите лучше в них разобраться, чтобы это не было для вас черным ящиком, преобразующим информацию, чтобы создавать качественную собственную аналитику на основе этих данных, то вам необходимо подробнее изучить макросы и eventtypes. Это также можно сделать в рамках курса Splunk Fundamentals 2.

Если вы все еще не пробовали Splunk, то самое время начать, бесплатная версия до 500Мб в сутки доступна всем желающим. А если у вас есть вопросы или проблемы со Splunk — вы можете задать их нам, а мы поможем.

Мы являемся официальным Premier Партнером Splunk.

eyyy9nzwq4rf9kolg17ihjq5bik.png

© Habrahabr.ru