Splunk Enterprise через Logstash¶
Обзор примера¶
Вебхуки могут использоваться как один из источников логов в системе. Общее количество подобных источников зависит от сложности системы: чем больше компонентов в системе, тем больше количество источников и объем логов. Наиболее распространенная схема логирования в сложных системах состоит из компонентов:
-
Сборщик логов: принимает логи от нескольких источников и выгружает логи в SIEM-систему.
-
SIEM-система: используется для анализа логов и мониторинга состояния системы.
В приведенном примере уведомления о событиях отправляются через вебхуки в сборщик логов Logstash и выгружаются в SIEM‑систему Splunk.
Используемые ресурсы¶
-
Splunk Enterprise с веб‑интерфейсом на URL
https://109.111.35.11:8000
и с API на URLhttps://109.111.35.11:8088
-
Logstash 7.7.0, установленный на Debian 10.4 (Buster) и доступный по адресу
https://logstash.example.domain.com
-
Доступ администратора к Консоли управления Валарм в EU‑облаке для настройки webhook‑интеграции
Настройка Splunk Enterprise¶
Логи Logstash отправляются в Splunk HTTP Event Collector с названием Wallarm Logstash logs
и остальными настройками по умолчанию:
Для доступа к 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
input {
http { # input‑плагин для HTTP и HTTPS‑трафика
port => 5044 # порт для входящих запросов
ssl => true # обработка HTTPS‑трафика
ssl_certificate => "/etc/pki/ca.pem" # сертификат для HTTPS‑подключения
}
}
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:
Событие Splunk:
Настройка webhook‑интеграции¶
-
Вебхуки отправляются на
https://logstash.example.domain.com
-
Для отправки вебхуков используются запросы типа POST
-
В запросе передается дополнительный параметр аутентификации
X-Auth-Token
-
Вебхуки отправляют на Webhook URL все доступные события: хиты, системные события, уязвимости, изменения сетевого периметра
Тестирование примера¶
Для тестирования настроек в Консоли управления Валарм добавляется новый пользователь:
В логах Logstash появится запись:
В событиях Splunk появится запись: