Приветствую, уважаемый читатель!
Хотел бы продолжить тему разработки дашбордов в Splunk для визуализации событий. При
определенных усилиях дашборды в Splunk
можно превратить в очень мощный и динамичный инструмент для проведения
аналитики. Сегодня мы исследуем возможности визуального элемента Statistic Table, а именно научимся совершать
из таблицы переходы на внешние ресурсы и передавать токены из таблицы в
произвольный элемент и т.д.
Итак, как я уже говорил ранее, дашборд в Splunk – это особенным способом
оформленный XML-файл, в котором описаны параметры каждого визуального элемента.
Эти параметры могут настраиваться как в GUI каждого компонента, так и
дописываться ручками в теле самого XML-файла.
Для экспериментов воспользуемся запросом из поста, посвященного контролю usb-носителей и создадим на
его основании дашборд.
sourcetype=usb Hostname=Host
CollectTime="2016-02-05 13:39:54"
| join type=inner USBVendor
USBProduct [| inputcsv Device.csv | eval USBVendor = upper(USBVendorId) | eval
USBProduct = upper(USBDeviceId) | table
USBVendor,USBVendorName,USBProduct,USBDeviceName]
| table CollectTime, Hostname,
USBVendor, USBProduct, USBVendorName, USBDeviceName
Данный запрос
получает из типа данных «usb»
все записи о подключенных USB-носителях
для компьютера с именем «Host»
и собранные 5 февраля.
Как создать
новый дашборд написано в этом посте.
Если вы откроете
текст данного дашборда в формате XML (в правой верхней части окна Edit – Edit Source), будет примерно
следующая картина:
Таблица состоит
из следующих обязательных и опциональных тегов (теги row и panel пока не рассматриваем, т.к. они служат для группировки
визуальных элементов):
<table> - собственно тип
визуального элемента;
<title> - заголовок;
<search> - самый важный
тег, содержащий всё, что связано с запросом для данного элемента;
<search><query> - текст запроса;
<search><earliest> - временной
диапазон для событий (начало);
<search><latest> -
временной диапазон для событий (конец);
<option> - дополнительные
параметры для компонента.
Запросы и любые
параметры у визуальных элементов можно редактировать прямо в XML-коде, причем иногда это даже
удобнее.
Теперь
непосредственно к добавлению динамики нашим дашбордам. Я буду писать куски текста
на XML и попутно
объяснять.
Создание ссылки на внешний ресурс
<drilldown>
<condition field="USBVendorName">
<link
target="_blank">https://yandex.ru/search/?text=$click.value2$</link>
</condition>
</drilldown>
Тут всё
достаточно просто, после закрывающего тега </search> и до начала тегов <option>, впишите код
приведенный выше.
Тег <drilldown> сообщает Splunk, что выбранная таблица может содержать динамические
опции.
Тег <condition> предназначен
для явного указания имени поля в таблице, для которого включается динамика.
Тег <link target="_blank"> указывает,
что при нажатии на значении ячейки необходимо перейти по ссылке на адрес,
указанной после тега.
Теперь внимание,
как вы успели заметить, в тексте ссылки присутствует переменная - $click.value2$. В переменной $click.value2$ содержится значение текущей ячейки, по которой вы
кликнули. Таким образом в запрос на Яндексе подставится значение ячейки.
Сохранение значения выбранной
(произвольной) ячейки в токен
<drilldown>
<condition
field="USBVendor">
<set
token="dr_usbvendor">$click.value2$</set>
<set
token="dr_usbdevice">$row.USBProduct$</set>
</condition>
</drilldown>
В данном примере
добавился новый тег <set token>.
Как понятно из его имени, он предназначен для сохранения значения поля таблицы
в токен. В дальнейшем этот токен можно использовать в любых запросах на
дашборде.
Примечание:
одному из токенов значение присвоено с использованием переменной $row.USBProduct$. Переменная $row$ содержит значения всех
полей таблицы в выбранной строке. Обращение к нужному происходит через точку.
<drilldown>
<condition field="USBVendorName">
<unset token=" dr_usbvendor"></unset>
</condition>
</drilldown>
В данном примере
появился тег <unset token>,
как понятно из имени, он удаляет значение из токена.
Лирические
отступления
Какие на дашбордах доступны переменные для
сохранения в токен?
$сlick.value$ –
значение самого левого элемента (обычно время события);
$сlick.value2$ –
значение выбранной ячейки в строке;
$click.name$ – имя
самой левой колонки;
$click.name2$ –
имя колонки, в которой вы кликнули.
Что можно сохранить в токен?
В токен можно
сохранить произвольное количество переменных значений, что часто спасает при
отладке дашбордов.
<set
token="test_token">$click.value$ + $click.value2$ +
$row.USBProduct$</set>
Влияние токенов на запросы?
Как я уже говорил ранее, после объявления токена на дашборде, вы можете использовать его в любом запросе на этом же дашборде, но имейте ввиду, до тех пор пока в токене не появится значение запрос выполняться не будет.
Всем удачного использования J
Этот комментарий был удален автором.
ОтветитьУдалитьдобрый день! Интересная статья. Возник вопрос - возможно ли по подобной схеме работать с другими источниками визуализации? Можно примеры?
ОтветитьУдалитьАртем, добрый день! Да, конечно, можно и с другими визуальными компонентами работать по подобной схеме. Какие интересуют?
ОтветитьУдалитьБыла бы интересна информация или статья по передаче параметров из одного дашборда в другой для поиска событий
ОтветитьУдалить