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

Splunk Enterprise через Logstash

Обзор примера

Вебхуки могут использоваться как один из источников логов в системе. Общее количество подобных источников зависит от сложности системы: чем больше компонентов в системе, тем больше количество источников и объем логов. Наиболее распространенная схема логирования в сложных системах состоит из компонентов:

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

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

В приведенном примере уведомления о событиях отправляются через вебхуки в сборщик логов Logstash и выгружаются в SIEM‑систему Splunk.

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

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

Настройка Splunk Enterprise

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

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

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

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

Настройка Logstash

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

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

    • Весь HTTP и HTTPS‑трафик поступает на порт Logstash 5044
    • SSL‑сертификат для HTTPS‑подключения расположен в файле /etc/pki/ca.pem
  • Отправка логов в Splunk и вывод логов настроены в секции output:

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

Более подробное описание конфигурационного файла доступно в официальной документации 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

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

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

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

  • В запросе передается дополнительный параметр аутентификации X-Auth-Token

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

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

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

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

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

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

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

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

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