Прием пакетов NetFlow

Материал из Документация Ключ-АСТРОМ

В следующем примере конфигурации показано, как настроить экземпляр Collector для приема пакетов NetFlow и их передачи в виде запросов OTLP в Ключ-АСТРОМ.

Предустановка

Информацию о настройке Collector с использованием указанной ниже конфигурации см. в разделах Развертывание коллектора и Конфигурация коллектора.

Конфигурация Collector

receivers:

  netflow:

    hostname: "0.0.0.0"

    scheme: netflow

    port: 2055

    sockets: 2

    workers: 4

processors:

  batch:

    send_batch_size: 30

    timeout: 30s

exporters:

  otlphttp:

    endpoint: ${env:DT_ENDPOINT}

    headers:

      Authorization: "Api-Token ${env:DT_API_TOKEN}"

service:

  pipelines:

    logs:

      receivers: [netflow]

      processors: [batch]

      exporters: [otlphttp]

Проверьте документацию по приемнику NetFlow на предмет доступных вариантов конфигурации.

Мы рекомендуем установить параметр sockets равным количеству ядер ЦП, доступных на экземпляре Collector, а этот параметр workers — равным удвоенному количеству сокетов. Такая конфигурация позволяет Collector обрабатывать несколько входящих пакетов NetFlow одновременно, что повышает производительность.

Для очень больших объемов данных следует распараллелить конфигурацию между несколькими экземплярами Collector.

Компоненты

Для нашей конфигурации мы настраиваем следующие компоненты.

Приемники

В разделе receivers мы указываем приемник netflow, как активный компонент приемника для нашего экземпляра Collector и настраиваем его на прослушивание указанных портов.

Процессоры

В разделе processors «Укажите процессор batch», который объединяет входящие пакеты NetFlow перед отправкой в ​​Ключ-АСТРОМ. Это полезно для оптимизации производительности и сокращения количества отправляемых запросов.

Экспортеры

В разделе exporters мы указываем экспортер otlphttp по умолчанию и настраиваем его с помощью URL-адреса нашего API Ключ-АСТРОМ и требуемого токена аутентификации.

Для этой цели мы устанавливаем следующие две переменные среды и ссылаемся на них в значениях конфигурации для endpoint и Authorization.

  • DT_ENDPOINT содержит базовый URL-адрес конечной точки API Dynatrace (например, https://{your-environment-id}.live.dynatrace.com/api/v2/otlp)
  • DT_API_TOKEN содержит токен API

Сервисные контейнеры

В разделе service мы собираем объекты приемника и экспортера в контейнер логов, который будет прослушивать настроенный адрес на предмет входящих пакетов NetFlow и пересылать их в Ключ-АСТРОМ с помощью экспортера.

Визуализация данных

Записи логов будут доступны в Ключ-АСТРОМ с полями, задокументированными в документации приемника.

Примеры DQL-запросов

  • Извлеките все логи NetFlow и просуммируйте байты и пакеты по адресам источника и назначения:
fetch logs

| filter otel.scope.name == "otelcol/netflowreceiver"

| summarize {bytes=sum(toDouble(flow.io.bytes)), packets=sum(toDouble(flow.io.packets))}, by: {source = source.address, destination = destination.address}

| fieldsAdd bytes_relative=bytes

| fieldsAdd packets_relative=packets

| sort bytes desc

Image4074.png

  • Выберите часто используемые порты:
fetch logs

| filter otel.scope.name == "otelcol/netflowreceiver"

| summarize {bytes=sum(toDouble(flow.io.bytes))}, by: {port = destination.port}

| sort bytes desc

| limit 10

Image4075.png