воскресенье, 17 марта 2019 г.

graylog - экстракторы и дашборды


Продолжаем рассматривать graylog и на этот раз мы затронем дашборды.
Но перед этим перейдем в самый первый раздел (Search) и попробуем определить какие ip адреса нарушителей мы сможем найти.



Здесь видно, что несколько десятков сообщений было связанных с приложением ssh, попробуем более пристально рассмотреть одно из них:




Получается, что ip адрес нарушителя находится в поле message, и отдельно по нему искать особо не получается. А хотелось бы не просто находить такие сообщения, но и считать кол-во нарушений за 24 часа и выводить эту информацию на дашборд.
Чтобы реализовать подобное поведение, нужно обратиться к экстракторам graylog.
Экстракторы подключаются к input, поэтому переходим в System -> Inputs.
Далее, выбираем используемый input (в простом случае это будет syslog UDP), и жмем "Manage extractors".
И для того чтобы создать новый экстрактор нужно нажать "Get started". Появится возможность выбора сообщения, на котором будет тестироваться и создаваться новый экстрактор.
Как и в случае правил потока, нужно указать id сообщения и его индекс (узнать эту информацию можно прямо в разделе поиска).
Нажимаем "Load message" и сообщение подгружается



Напротив каждого поля сообщения справа есть возможность выбора типа экстрактора. Целимся на поле message и выбираем тип regular expression.
Попадаем непосредственно в режим создания нового экстрактора.




Вверху нам показывают сообщение которое должно обработаться (example message), а далее начинаем уже конфигурирование.
Прописываем регулярное выражение, как и в программировании тут множество различных решений одной задачи, в данном примере просто используется группа которая ловит всё что идет после слова from и до слова port.
Сразу нажимаем кнопку "Try" и видим, что regexp справляется с поставленной задачей:


Далее идет несколько вариантов поведения экстрактора (Condition). Извлечение только из нужных сообщений экономит ресурсы и помогает избегать ложные срабатывания, поэтому вместо опции "Always try to exctract" мы включаем вариант "Only attemp exctration if field matches regular expression". Тем самым появляется поле "Field matches regular expression", которое мы тоже заполняем.
На этот раз регулярное выражение призвано отфильтровать только ip адрес, в обычном формате с разделителем в виде точки.
Так же как и в прошлый раз нажимаем "Try", чтобы сразу проверить работу выражения, если позеленело, то всё в порядке, можно двигаться дальше.
Следующее поле "Store as field", сюда нужно написать название нового поля которое будет содержать данные которые мы извлекаем (ip адрес).
Затем идет выбор стратегии извлечения - либо копировать и исходное оставить как есть, либо вырезать.
И последнее значение "Extractor title" - это название самого экстрактора.
Если всё устраивает нажимаем кнопку "Create exctractor".
После создания экстрактор сразу же начинает работу.
Возвращаемся в поиск и видим следующее:


Новоприбывшее сообщение уже содержит поле ssh_attacker_source.
Но это еще не всё, если внимательно посмотреть в левую часть "Search result", там есть вкладка "Fields", где тоже появилось новое поле. Его можно отметить и развернуть список действий с ним.


Нажимаем "Quick values" и получаем график по ip адресам нарушителей.




Практически каждый график, гистограмму или результат поиска можно сохранить и отправить на дашборд.
По дефолту ни одного дашборда нет, и создать его можно либо из раздела "Dashboards", либо прямо при добавлении графика на дашборд (Add to dashboard).
Сразу стоит заметить, что на дашборде графики будут обновляться так же как и в разделе поиска, если стоит последние 5 мин, то так и будет происходить на дашборде. Поэтому если нужны данные за последний день или неделю, то это лучше выставить эти параметры до отправки графика в дашборд.
При создании дашборда нужно указать название и краткое описание, больше ничего не требуется. А при добавлении графика на дашборд, или создании виджета другими словами, тоже попросят придумать название.
В конечном итоге можно получить нечто как на скриншоте ниже:



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

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