Получение данных из файла логов: различия между версиями

Материал из Документация Ключ-АСТРОМ
(Новая страница: «В следующем примере конфигурации показано, как настроить экземпляр '''Collector''' для монитор...»)
 
 
Строка 40: Строка 40:
exporters:
exporters:


  otlphttp/dynatrace:
  otlphttp/astromkey:


    endpoint: ${env:DT_ENDPOINT}
    endpoint: ${env:DT_ENDPOINT}
Строка 58: Строка 58:
      processors: []
      processors: []


      exporters: [otlphttp/dynatrace]
      exporters: [otlphttp/astromkey]
|}
|}


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


* <code>DT_ENDPOINT</code> содержит базовый [[Экспорт с помощью OTLP|URL-адрес конечной точки API Ключ-АСТРОМ]] (например, <code><nowiki>https://{your-environment-id}.live.dynatrace.com/api/v2/otlp</nowiki></code>)
* <code>DT_ENDPOINT</code> содержит базовый [[Экспорт с помощью OTLP|URL-адрес конечной точки API Ключ-АСТРОМ]] (например, <code><nowiki>https://{your-environment-id}.live.astromkey.com/api/v2/otlp</nowiki></code>)
* <code>DT_API_TOKEN</code> содержит токен API
* <code>DT_API_TOKEN</code> содержит токен API


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

Текущая версия на 04:36, 8 октября 2025

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

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

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

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

receivers:

  filelog:

    include: [ /path/to/file.log ]

    start_at: beginning

    operators:

      - type: regex_parser

        regex: '^(?P<time>\d{4}-\d{2}-\d{2}) (?P<sev>[A-Z]*) (?P<msg>.*)$'

        timestamp:

          parse_from: attributes.time

          layout: '%Y-%m-%d'

        severity:

          parse_from: attributes.sev

exporters:

  otlphttp/astromkey:

    endpoint: ${env:DT_ENDPOINT}

    headers:

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

service:

  pipelines:

    logs:

      receivers: [filelog]

      processors: []

      exporters: [otlphttp/astromkey]

Пример файла логов

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

1970-01-01 INFO Something routine

1970-01-01 ERROR Some error occurred!

1970-01-01 DEBUG Some details...

Каждая строка начинается с временной метки ISO 8601, за которой следует уровень серьезности записи и заканчивается сообщением логов.

Мы разбираем каждую строку на отдельные части с помощью следующего регулярного выражения:

^(?P<time>\d{4}-\d{2}-\d{2}) (?P<sev>[A-Z]*) (?P<msg>.*)$

Помимо двух утверждений начала (^) и конца ($) строки, у нас есть следующие именованные группы захвата:

  • (?P<time>\d{4}-\d{2}-\d{2})— Присваивает имя своей группе захвата time и сопоставляет ее с типичной временной меткой ISO 8601.
  • (?P<sev>[A-Z]*)— Именует свою группу захвата sev и сопоставляет произвольное количество латинских заглавных символов.
  • (?P<msg>.*)— Присваивает имя своей группе захвата msg и сопоставляет ее с произвольным количеством символов.

Компоненты

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

Приемники

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

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

  • include— Указывает шаблон пути к файлам, которые мы хотим загрузить.
  • start_at— Указывает, должен ли получатель читать файл с начала или, только для самых последних записей, с конца.
  • operators— Настраивает операторы, применяемые к каждой записи логов. В нашем примере мы используем оператор regex_parser для извлечения информации с помощью регулярного выражения.
    • regex— Задаёт фактическое регулярное выражение. Используя именованные группы захвата ((?P<name>)), получатель делает захваченные данные доступными под соответствующим именем attributes.
    • timestamp— Указывает, откуда брать временную метку записи (поле регулярного выражения time) и формат даты.
    • severity— Указывает, откуда брать уровень серьезности записи (поле регулярного выражения sev).

Экспортеры

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

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

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

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