Перейти к содержанию

Splunk Enterprise через Logstash

В этой инструкции описан пример интеграции Вебмониторэкс со Splunk Enterprise через промежуточный коллектор логов Logstash.

Схема логирования событий в комплексных системах может состоять из нескольких компонентов, например:

  • Коллектор логов: принимает логи от нескольких источников и выгружает логи в SIEM-систему.

  • SIEM-система или другая система управления логами: используется для анализа логов и мониторинга состояния системы.

Движение вебхука

Чтобы логировать события Вебмониторэкс в Logstash → Splunk Enterprise таким образом, ознакомьтесь с приведенным примером интеграции.

Используемые ресурсы

IP-адреса Вычислительного кластера Вебмониторэкс

Для предоставления Вычислительному кластеру Вебмониторэкс доступа к вашей системе, вам может понадобиться список публичных IP-адресов Вычислительного кластера:

Ссылки на сервисы Splunk Enterprise и Logstash приведены в документации в качестве примера и недоступны для внешнего использования.

Настройка Splunk Enterprise

Логи Logstash отправляются в Splunk HTTP Event Collector с названием Вебмониторэкс Logstash logs и остальными настройками по умолчанию:

Настройка HTTP Event Collector

Для доступа к HTTP Event Collector сгенерирован токен: 93eaeba4-97a9-46c7-abf3-4e0c545fa5cb.

Более подробная информация о настройке HTTPS Event Collector в Splunk доступна в официальной документации Splunk.

Настройка Logstash

Вебмониторэкс отправляет логи в промежуточный коллектор логов через вебхуки. Поэтому для корректной интеграции конфигурация Logstash должна соответствовать следующим требованиям:

  • Принимать POST- или PUT-запросы

  • Принимать запросы по протоколу HTTPS

  • Иметь публичный URL

  • Выводить логи в Splunk Enterprise, в примере для этого используется плагин http

Пример настройки Logstash описан в конфигурационном файле logstash-sample.conf:

  • Обработка входящих вебхуков настроена в секции input:

    • Трафик поступает на порт 5044
    • Logstash обрабатывает только HTTPS‑соединения
    • TLS-сертификат для Logstash расположен в файле /etc/server.crt
    • Приватный ключ сертификата расположен в файле /etc/server.key
  • Отправка логов в Splunk и вывод логов настроены в секции output:

    • Логи из Logstash в Splunk отправляются в формате JSON
    • Логи всех событий из Logstash отправляются через POST‑запрос к Splunk API на эндпоинт https://109.111.35.11:8088/services/collector/raw. Для авторизации запросов используется токен HTTPS Event Collector
    • Логи Logstash дополнительно выводятся в командную строку (15 строка кода). Настройка используется для проверки, что события записываются в логи Logstash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
input {
  http { # input‑плагин для HTTP и HTTPS‑трафика
    port => 5044 # порт для входящих запросов
    ssl => true # обработка HTTPS‑соединения
    ssl_certificate => "/etc/server.crt" # TLS-сертификат для Logstash
    ssl_key => "/etc/server.key" # приватный ключ сертификата
  }
}
output {
  http { # output‑плагин для отправки логов из Logstash по протоколу HTTP/HTTPS
    format => "json" # формат отправки логов 
    http_method => "post" # HTTP‑метод для отправки запросов
    url => "https://109.111.35.11:8088/services/collector/raw" # эндпоинт для отправки HTTP‑запросов
    headers => ["Authorization", "Splunk 93eaeba4-97a9-46c7-abf3-4e0c545fa5cb"] # HTTP‑заголовки для авторизации запросов
  }
  stdout {} # output‑плагин для вывода логов Logstash в командную строку
}

Более подробное описание конфигурационного файла доступно в официальной документации Logstash.

Тестирование настроек Logstash

Чтобы протестировать запись логов в Logstash и выгрузку данных в Splunk, можно отправить POST‑запрос в Logstash.

Пример запроса:

curl -X POST 'https://logstash.example.domain.com' -H "Content-Type: application/json" -H "Authorization: Splunk 93eaeba4-97a9-46c7-abf3-4e0c545fa5cb" -d '{"key1":"value1", "key2":"value2"}'

Логи Logstash:

Логи Logstash

Событие Splunk:

Событие Splunk

Настройка интеграции с Logstash

  • Вебхуки отправляются на https://logstash.example.domain.com

  • Для отправки вебхуков используются запросы типа POST

  • В расширенных настройках интеграции заданы значения по умолчанию

  • Вебхуки отправляют на Webhook URL все доступные события: хиты, системные события, уязвимости, изменения сетевого периметра

Webhook-интеграция с Logstash

Подробнее о настройке интеграции с Logstash

Тестирование примера

Для тестирования настроек в Консоли управления Вебмониторэкс добавляется новый пользователь:

Добавление пользователя

В логах Logstash появится запись:

Запись о новом пользователе в логах Logstash

В событиях Splunk появится запись:

Карточка о новом пользователе Logstash в Splunk

Построение дашборда Splunk с событиями Вебмониторэкс

События, отправленные Вебмониторэкс в Splunk, можно представить в виде наглядного дашборда. Приложение Вебмониторэкс для Splunk 9.0 и выше содержит готовый дашборд, в котором все события Вебмониторэкс отображаются автоматически.

Дашборд кликабельный, вы можете переходить из него к подробным логам о событиях. Также, данные с дашборда можно экспортировать.

Splunk dashboard

Чтобы установить приложение Вебмониторэкс для Splunk:

  1. В интерфейсе Splunk ➝ Apps найдите приложение Вебмониторэкс WAF.

  2. Нажмите Install и введите учетные данные Splunkbase.

На дашборде будут отображаться как уже зарегистрированные события Вебмониторэкс, так и все следующие.

Вы можете полностью кастомизировать готовый дашборд, например: внешний вид или поисковые запросы, которые извлекают записи Вебмониторэкс из всех записей Splunk.