Splunk - вычисляемые поля
Много раз нам нужно будет произвести некоторые вычисления в полях, которые уже доступны в событиях Splunk. Мы также хотим сохранить результат этих вычислений в виде нового поля, которое позже будет использоваться при различных поисках. Это стало возможным благодаря использованию концепции вычисляемых полей в поиске Splunk.
Самый простой пример - показать первые три символа дня недели вместо полного названия дня. Нам нужно применить определенную функцию Splunk, чтобы выполнить эту манипуляцию с полем и сохранить новый результат под новым именем поля.
пример
Файл журнала Web_application имеет два поля с именами bytes и date_wday. Значение в поле байтов - это количество байтов. Мы хотим отобразить это значение как ГБ. Для этого потребуется разделить поле на 1024, чтобы получить значение в ГБ. Нам нужно применить этот расчет к полю байтов.
Точно так же date_wday отображает полное название дня недели. Но нам нужно отобразить только первые три символа.
Существующие значения в этих двух полях показаны на изображении ниже -
Использование функции eval
Для создания вычисляемого поля мы используем функцию eval. Эта функция сохраняет результат расчета в новом поле. Мы собираемся применить следующие два расчета -
# divide the bytes with 1024 and store it as a field named byte_in_GB
Eval byte_in_GB = (bytes/1024)
# Extract the first 3 characters of the name of the day.
Eval short_day = substr(date_wday,1,3)
Добавление новых полей
Мы добавляем новые поля, созданные выше, в список полей, отображаемых как часть результатов поиска. Для этого выбираемAll fields параметры и отметьте галочкой напротив названия этих новых полей, как показано на изображении ниже -
Отображение вычисленных полей
Выбрав поля выше, мы можем увидеть рассчитанные поля в результатах поиска, как показано ниже. Поисковый запрос отображает вычисленные поля, как показано ниже -