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

Splunk Enterprise через Fluentd

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

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

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

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

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

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

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

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

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

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

Настройка Splunk Enterprise

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

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

Для доступа к HTTP Event Collector сгенерирован токен: f44b3179-91aa-44f5-a6f7-202265e10475.

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

Настройка Fluentd

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

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

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

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

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

Пример настройки Fluentd описан в конфигурационном файле td-agent.conf:

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

    • Трафик поступает на порт 9880
    • Fluentd обрабатывает только HTTPS‑соединения
    • TLS-сертификат для Fluentd расположен в файле /etc/ssl/certs/fluentd.crt
    • Приватный ключ сертификата расположен в файле /etc/ssl/private/fluentd.key
  • Отправка логов в Splunk и вывод логов настроены в директиве match:

    • Логи всех событий копируются из Fluentd и отправляются в Splunk HTTP Event Controller через output‑плагин fluent-plugin-splunk-hec
    • Логи Fluentd дополнительно выводятся в командную строку в формате JSON (19-22 строки кода). Настройка используется для проверки, что события записываются в логи Fluentd
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<source>
  @type http # input‑плагин для HTTP и HTTPS‑трафика
  port 9880 # порт для входящих запросов
  <transport tls> # настройки для обработки подключений к Fluentd
    cert_path /etc/ssl/certs/fluentd.crt
    private_key_path /etc/ssl/private/fluentd.key
  </transport>
</source>
<match **>
  @type copy
  <store>
      @type splunk_hec # output‑плагин fluent-plugin-splunk-hec для отправки логов из Fluentd в Splunk API через HTTP Event Controller
      hec_host 109.111.35.11 # адрес Splunk
      hec_port 8088 # порт Splunk API
      hec_token f44b3179-91aa-44f5-a6f7-202265e10475 # токен HTTP Event Controller
    <format>
      @type json # формат отправки логов в Splunk
    </format>
  </store>
  <store>
     @type stdout # output‑плагин для вывода логов Fluentd в командную строку
     output_type json # формат вывода логов Fluentd в командную строку
  </store>
</match>

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

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

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

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

curl -X POST 'https://fluentd-example-domain.com' -H "Content-Type: application/json" -H "Authorization: Splunk f44b3179-91aa-44f5-a6f7-202265e10475" -d '{"key1":"value1", "key2":"value2"}'

Логи Fluentd:

Логи Fluentd

Событие в Splunk:

События Splunk

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Splunk dashboard

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

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

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

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

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