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

Datadog через Fluentd/Logstash

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

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

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

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

Схема отправки уведомлений в Datadog

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

Нативная интеграция с Datadog

Вебмониторэкс также поддерживает нативную интеграцию с Datadog через Datadog API, без промежуточного коллектора логов.

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

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

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

Обратите внимание, что публичные IP-адреса Вычислительного кластера Вебмониторэкс могут изменяться время от времени. Если у вас возникают проблемы с используемыми адресами, обратитесь за актуальным списком в службу поддержки Вебмониторэкс.

Требования

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

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

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

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

  • Выводить логи в Datadog с помощью специального плагина: datadog_logs для Logstash или fluent-plugin-datadog для Fluentd

  1. Установите плагин datadog_logs для вывода логов в Datadog.
  2. Задайте конфигурацию Logstash для чтения запросов и выгрузки логов в Datadog.

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
input {
  http { # input‑плагин для HTTP и HTTPS‑трафика
    port => 5044 # порт для входящих запросов
    ssl => true # обработка HTTPS‑соединения
    ssl_certificate => "/etc/server.crt" # TLS-сертификат для Logstash
    ssl_key => "/etc/server.key" # приватный ключ сертификата
  }
}
filter {
  mutate {
    add_field => {
        "ddsource" => "wallarm" # mutate-фильтр для добавления поля source в логи Datadog (для фильтрации логов Вебмониторэкс)
    }
  }
}
output {
  stdout {} # output‑плагин для вывода логов Logstash в командную строку
  datadog_logs { # output‑плагин для вывода логов Logstash в Datadog
      api_key => "XXXX" # ключ API, сгенерированный для организации в Datadog
      host => "http-intake.logs.datadoghq.eu" # эндпоинт Datadog, зависит от региона регистрации
  }
}
  1. Установите плагин fluent-plugin-datadog для вывода логов в Datadog.
  2. Задайте конфигурацию Fluentd для чтения запросов и выгрузки логов в Datadog.

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<source>
  @type http # input‑плагин для HTTP и HTTPS‑трафика
  port 9880 # порт для входящих запросов
  <transport tls> # настройки для обработки HTTPS‑соединения
    cert_path /etc/ssl/certs/fluentd.crt # TLS-сертификат для Fluentd
    private_key_path /etc/ssl/private/fluentd.key # приватный ключ сертификата
  </transport>
</source>
<match datadog.**>
  @type datadog # output‑плагин для отправки логов из Fluentd в Datadog
  @id awesome_agent
  api_key XXXX # ключ API, сгенерированный для организации в Datadog
  host 'http-intake.logs.datadoghq.eu' # эндпоинт Datadog, зависит от региона регистрации

  # Optional
  include_tag_key true
  tag_key 'tag'

  # Optional tags
  dd_source 'wallarm' # добавление поля source в логи Datadog (для фильтрации логов Вебмониторэкс)
  dd_tags 'integration:fluentd'

  <buffer>
          @type memory
          flush_thread_count 4
          flush_interval 3s
          chunk_limit_size 5m
          chunk_limit_records 500
  </buffer>
</match>

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

  1. Перейдите в Консоль управления Вебмониторэкс → НастройкиИнтеграции и откройте окно настройки интеграции с промежуточным коллектором логов Fluentd/Logstash.

  2. Введите имя интеграции.

  3. Введите Fluentd URL или Logstash URL (Webhook URL), на который Вебмониторэкс будет отправлять уведомления.

  4. Если требуется, задайте дополнительные настройки для отправки запросов на указанный URL:

    • Тип запроса: POST или PUT. По умолчанию отправляются POST-запросы.
    • Заголовок запроса и значение, если для запроса к серверу с указанным адресом требуется передать нестандартный заголовок. Количество заголовков не ограничено.
    • Корневой сертификат, который был использован для подписи TLS-сертификата сервера. Если корневой сертификат выдан доверенным центром, это поле опционально. Если TLS-сертификат сервера самоподписанный, необходимо загрузить корневой сертификат, который был использован для подписи TLS-сертификата.
    • Проверить TLS-сертификат: данная настройка позволяет отключить проверку TLS‑сертификата сервера с указанным адресом. По умолчанию Вебмониторэкс проверяет, что TLS-сертификат сервера подписан доверенным центром сертификации. Мы не рекомендуем отключать проверку. Если ваш сервер использует самоподписанный TLS-сертификат, для успешной проверки вам необходимо загрузить самоподписанный корневой сертификат.
    • Время ожидания ответа, сек: если сервер не отвечает на запрос в течение указанного времени, запрос завершается с ошибкой. По умолчанию: 15 секунд.
    • Время ожидания соединения, сек: если в течение указанного времени не удается установить соединение с сервером, запрос завершается с ошибкой. По умолчанию: 20 секунд.
  5. Выберите типы событий, которые необходимо логировать. Если события не выбраны, уведомления не отправляются.

  6. Протестируйте интеграцию и убедитесь в корректности настроек.

  7. Нажмите Добавить интеграцию.

Пример настройки интеграции с Fluentd:

Добавление интеграции с Fluentd

Тестирование интеграции

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

Тестирование интеграции выполняется следующим образом:

  • В выбранную систему отправляются тестовые уведомления с префиксом [Тестовое сообщение].

  • Тестовые уведомления отправляются для всех событий, которые доступны для выбранной системы. Если в карточке интеграции доступны 3 типа событий, в выбранную систему придет 3 уведомления.

    Для типа событий Системные события отправляется тестовое уведомление о добавлении нового пользователя.

  • В тестовых уведомлениях не используются реальные данные.

Тестовый лог в промежуточном коллекторе логов Logstash или Fluentd:

[
    {
        summary:"[Тестовое сообщение] [Вебмониторэкс] Обнаружена новая уязвимость",
        description:"Тип события: vuln

                    В вашей системе обнаружена новая уязвимость.

                    ID: 
                    Название: Test
                    Домен: example.com
                    Путь: 
                    Метод: 
                    Источник: 
                    Параметры: 
                    Тип: Info
                    Уровень риска: Medium

                    Подробнее: https://my.wallarm.ru/object/555


                    Клиент: TestCompany
                    Вычислительный кластер: RU
                    ",
        details:{
            client_name:"TestCompany",
            cloud:"RU",
            notification_type:"vuln",
            vuln_link:"https://my.wallarm.ru/object/555",
            vuln:{
                domain:"example.com",
                id:null,
                method:null,
                parameter:null,
                path:null,
                title:"Test",
                discovered_by:null,
                threat:"Medium",
                type:"Info"
            }
        }
    }
]

Тестовый лог в Datadog:

Тестовое уведомление в Datadog

Чтобы найти логи Вебмониторэкс среди других записей, используйте тег source:wallarm_cloud в поисковой строке сервиса Datadog Logs.