Сбор данных системных логов с помощью OpenTelemetry Collector
В следующем примере конфигурации показано, как настроить экземпляр Collector для получения данных из syslog и отправки их на сервер Ключ-АСТРОМ.
Предустановка
- Один из следующих дистрибутивов Collector с процессором атрибутов и приемником Syslog:
- URL-адрес конечной точки API Ключ-АСТРОМ, на которую следует экспортировать данные.
- Токен API с соответствующей областью доступа (требуется только для SaaS и АктивногоШлюза)
Информацию о настройке 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 и 54527protocol— Указывает реализацию 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.