Как включить поддержку многострочных записей для пользовательских текстовых журналов в Правиле сбора данных в Azure

Вопрос или проблема

Что я пытаюсь сделать:
собирать логи с виртуальной машины в Azure с помощью Azure Monitoring Agent. Файл логов — это обычный текстовый файл с временными метками. Каждое сообщение лога представляет собой многострочный текст.

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

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

Вопрос:
Согласно следующему документу, поддержка многострочности доступна. К сожалению, я не смог найти более детальную документацию или примеры. Любая помощь, пожалуйста?

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

Заранее большое спасибо!

Ответ или решение

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

Понимание проблемы

Вы уже настроили сбор логов с виртуальной машины и использовали PowerCLI для создания необходимых ресурсов, включая правила сбора данных, конечные точки и пользовательские таблицы. Однако, как вы отметили, каждая строка лога трактуется как отдельное событие, что не соответствует вашим требованиям. Цель состоит в том, чтобы логи, содержащие многострочные сообщения с временными метками, рассматривались как одно событие.

Что такое поддержка многострочных логов?

Поддержка многострочных логов в Azure позволяет обрабатывать вложенные сообщения, основанные на временных метках, и объединять их в единые лог-записи, что значительно упрощает анализ и поиск в логах. Это особенно полезно для приложений, которые генерируют больше информации в виде логов на одной временной метке.

Шаги для включения поддержки многострочных логов

  1. Определите паттерн временной метки: Убедитесь, что ваш лог-файл имеет четко определенный формат временной метки, который вы будете использовать в качестве разделителя для многострочных сообщений. Например, формат может выглядеть следующим образом: YYYY-MM-DD HH:MM:SS.

  2. Создайте шаблон развертывания ресурса (Resource Management Template): Как указано в документации, на данный момент поддержка многострочных логов осуществляется через развертывание с использованием шаблонов ресурсов. Вы можете создать JSON-шаблон, который будет конфигурировать правила сбора данных с многострочной поддержкой.

    Пример шаблона:

    {
     "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
     "contentVersion": "1.0.0.0",
     "resources": [
       {
         "type": "microsoft.insights/datacollectionrules",
         "apiVersion": "2021-05-01",
         "name": "YourDataCollectionRule",
         "location": "YourRegion",
         "properties": {
           "dataSources": {
             "logs": [
               {
                 "dataType": "customLog",
                 "resourceId": "<YourVMResourceId>",
                 "source": {
                   "kind": "File",
                   "path": "/path/to/your/logfile.log",
                   "multiline": {
                     "enabled": true,
                     "pattern": "^(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}).*$"
                   }
                 }
               }
             ]
           },
           "streams": {
             "customLogs": {
               "tableName": "YourCustomTable"
             }
           }
         }
       }
     ]
    }
  3. Разверните шаблон через PowerShell или Azure CLI: Вы можете использовать PowerShell или Azure CLI для развертывания вашего шаблона. Пример команды для PowerShell:

    New-AzResourceGroupDeployment -ResourceGroupName "YourResourceGroup" -TemplateFile "Path\To\Your\Template.json"
  4. Проверьте корректность работы: После развертывания шаблона и настройки многопоточности, проверьте таблицы в вашем Log Analytics Workspace, чтобы убедиться, что логи теперь собираются и отображаются правильно, как единые записи.

Заключение

Следуя приведенным шагам, вы сможете настроить поддержку многострочных логов с использованием временных меток в Azure. Это обеспечит удобный анализ данных и улучшит работу с вашей системой мониторинга. Убедитесь, что ваш шаблон развертывания правильно настроен, и тестируйте различные сценарии логирования, чтобы подтвердить, что все работает как задумывалось. Если у вас возникнут дополнительные вопросы или сложности, не hesitate to reach out к официальной документации Azure или сообществу для получения дополнительной помощи.

Оцените материал
Добавить комментарий

Капча загружается...