Сбор данных системных логов с помощью OpenTelemetry Collector

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

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

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

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

Демо конфигурация

receivers:

  syslog/f5:

    tcp:

      listen_address: "0.0.0.0:54526"

    protocol: rfc5424

    operators:

      - type: add

        field: attributes.log.source

        value: syslog

      - type: add

        field: attributes.dt.ip_addresses

        value: "1xx.xx.xx.xx1"

      - type: add

        field: attributes.instance.name

        value: "ip-1xx-xx-x-xx9.ec2.internal"

      - type: add

        field: attributes.device.type

        value: "f5bigip"

  syslog/host:

    tcp:

      listen_address: "0.0.0.0:54527"

    protocol: rfc5424

    operators:

      - type: add

        field: attributes.log.source

        value: syslog

      - type: add

        field: attributes.device.type

        value: "ubuntu-syslog"

processors:

  attributes:

    actions:

      - key: net.host.name

        action: delete

      - key: net.peer.name

        action: delete

      - key: net.peer.port

        action: delete

      - key: net.transport

        action: delete

      - key: net.host.ip

        action: delete

      - key: dt.ingest.port

        from_attribute: net.host.port

        action: upsert

      - key: dt.ingest.source.ip

        from_attribute: net.peer.ip

        action: upsert

      - key: net.peer.ip

        action: delete

      - key: net.host.port

        action: delete

      - key: syslog.hostname

        from_attribute: hostname

        action: upsert

      - key: hostname

        action: delete

      - key: syslog.facility

        from_attribute: facility

        action: upsert

      - key: facility

        action: delete

      - key: syslog.priority

        from_attribute: priority

        action: upsert

      - key: priority

        action: delete

      - key: syslog.proc_id

        from_attribute: proc_id

        action: upsert

      - key: proc_id

        action: delete

      - key: syslog.version

        from_attribute: version

        action: upsert

      - key: version

        action: delete

      - key: syslog.appname

        from_attribute: appname

        action: upsert

      - key: appname

        action: delete

      - key: message

        action: delete

exporters:

  otlphttp:

    endpoint: ${env:DT_ENDPOINT}

    headers:

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

service:

  pipelines:

    logs:

      receivers: [syslog/f5, syslog/host]

      processors: [attributes]

      exporters: [otlphttp]

Компоненты

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

Приемники

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

Приёмник Syslog поддерживает ряд параметров конфигурации, позволяющих настраивать его поведение. В нашем примере мы используем следующие:

  • tcp— Указывает TCP-прослушиватель для приемника и настраивает порты 54526 и 54527
  • protocol— Указывает реализацию RFC 5424 для нашего приемника (в качестве альтернативы также поддерживается RFC 3164)
  • operators— Настраивает операторы, применяемые к каждой записи журнала. В нашем примере мы используем оператор add для добавления дополнительной информации.
    • field— Указывает имя значения, которое мы добавляем
    • value— Указывает содержание добавляемого нами значения.

Процессоры

В разделе processors мы настраиваем процессор attributes на отбрасывание и корректировку указанных атрибутов в нашем запросе OTLP.

Экспортеры

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

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

  • DT_ENDPOINT содержит базовый URL-адрес конечной точки API Ключ-АСТРОМ (например, https://{your-environment-id}.live.astromkey.com/api/v2/otlp)
  • DT_API_TOKEN содержит токен API

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

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