Сбор текстовых журналов с помощью агента Log Analytics в Azure Monitor

С помощью настраиваемых журналов для агента Log Analytics, выступающих в качестве источников данных, в Azure Monitor можно собирать события из текстовых файлов на компьютерах Windows и Linux. Во многих приложениях вместо стандартной службы ведения журнала, например журнала событий Windows или системного журнала, данные журналов записываются в текстовые файлы. По окончании сбора данных можно проанализировать их с разделением на отдельные поля в ваших запросах или во время сбора извлечь данные в отдельные поля.

Важно!

В этой статье описывается, как собирать текстовый журнал с помощью агента Log Analytics. Если вы используете агент Azure Monitor, см . статью "Сбор текстовых журналов с помощью агента Azure Monitor".

Важно!

Поддержка устаревшего агента Log Analyticsбудет прекращена в августе 2024 года. После этой даты корпорация Майкрософт больше не будет предоставлять поддержку агента Log Analytics. Чтобы продолжить прием данных, перейдите на агент Azure Monitor до августа 2024 года.

Diagram that shows custom log collection.

Собираемые файлы журнала должны соответствовать следующим условиям:

  • В каждой строке журнала должна содержаться одна запись либо в начале каждой строки должна быть временная метка в одном из следующих форматов:

    ГГГГ-ММ-ДД ЧЧ:ММ:СС;
    М/Д/ГГГГ ЧЧ:ММ:СС AM/PM (12-часовой формат);
    М ДД ГГГГ ЧЧ:ММ:СС;
    ггммдд чч:мм:сс;
    ддммгг чч:мм:сс;
    ммм д чч:мм:сс;
    дд/ммм/гг чч:мм:сс;
    гггг-ММ-ддTчч:мм:сс.

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

  • В файле журнала должна использоваться кодировка ASCII или UTF-8. Другие форматы, например, UTF-16, не поддерживаются.

  • В Linux не поддерживается преобразование часовых поясов для меток времени в журналах.

  • Рекомендуется включить в файл журнала дату и время создания, чтобы предотвратить перезапись или переименование при ротации журналов.

Примечание.

Если в файле журнала есть повторяющиеся записи, Azure Monitor будет собирать их. Генерируемые результаты запроса будут несогласованны. Результаты фильтра будут отображать больше событий, чем число результатов. Необходимо проверить журнал, чтобы определить, вызваны ли такие действия приложением, в котором он создан. По возможности укажите проблему перед созданием определения сбора настраиваемых журналов.

Рабочая область Log Analytics поддерживает следующие ограничения.

  • Вы можете создать только 500 пользовательских журналов.
  • Таблица поддерживает до 500 столбцов.
  • Имя столбца не может содержать более 500 символов.

Важно!

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

Определение настраиваемой таблицы журналов

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

Открытие мастера настраиваемого журнала

Мастер настраиваемых журналов на портале Azure позволяет определить новый настраиваемый журнал для сбора данных.

  1. В портал Azure выберите рабочие области Log Analytics в таблицах> рабочей области>.

  2. Выберите "Создать" и "Создать настраиваемый журнал" (на основе MMA).

    По умолчанию все изменения конфигурации автоматически отправляются во все агенты. Файл конфигурации агентов Linux отправляется в сборщик данных Fluentd.

Загрузка и преобразование примера журнала

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

Новая строка — тип разделителя по умолчанию, который используется для файлов журнала с одной записью в строке. Если строка начинается с даты и времени в одном из доступных форматов, можно указать тип разделителя Метка времени, который поддерживает записи, охватывающие несколько строк.

Если в качестве разделителя используется метка времени, свойство TimeGenerated каждой записи в Azure Monitor заполняется датой и временем, указанными для этой записи в файле журнала. Если в качестве разделителя используется новая строка, свойство TimeGenerated заполняется датой и временем сбора этой записи в Azure Monitor.

  1. Выберите Обзор, чтобы перейти к примеру файла. В некоторых браузерах эта кнопка может называться Выбрать файл.

  2. Выберите Далее.

    Мастер настраиваемого журнала загружает файл и выводит список идентифицируемых записей.

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

  4. Выберите Далее.

Добавление пути к файлам журнала

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

Например, приложение может каждый день создавать файл журнала, добавляя в имя дату, например log20100316.txt. Шаблоном для такого журнала может быть log*.txt, который будет применяться к любому файлу журнала в соответствии со схемой именования приложения.

Ниже приведены примеры допустимых шаблонов для указания различных файлов журналов.

Description Путь
Все файлы агента Windows в папке C:\Logs с расширением .txt C:\Logs\*.txt
Все файлы агента Windows в папке C:\Logs с расширением .txt и именем, начинающимся со слова log C:\Logs\log*.txt
Все файлы агента Linux в папке /var/log/audits с расширением .txt /var/log/audit/*.txt
Все файлы агента Linux в папке /var/log/audit с расширением .txt и именем, начинающимся со слова log /var/log/audit/log*.txt
  1. Выберите Windows или Linux, чтобы указать, какой формат пути добавляется.
  2. Введите путь и нажмите кнопку +.
  3. Повторите эту процедуру для всех других путей.

Указание имени и описания журнала

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

  1. Введите имя для журнала. Суффикс _CL добавляется автоматически.
  2. При необходимости введите описание.
  3. Нажмите Далее, чтобы сохранить определение настраиваемого журнала.

Проверка того, собираются ли данные настраиваемых журналов

Чтобы начальные данные из нового настраиваемого журнала появились в Azure Monitor, может потребоваться около часа. Из журналов, расположенных по пути, который вы указали, Azure Monitor начнет собирать записи, добавленные после определения настраиваемого журнала. В нем не сохраняются записи, отправленные во время создания пользовательского журнала. Он соберет уже существующие записи в найденных файлах журналов.

После того, как Azure Monitor начнет собирать записи из настраиваемого журнала, их можно будет найти, используя запрос по журналу. В качестве типа запроса следует использовать имя, присвоенное настраиваемому журналу.

Примечание.

Если в разделе запроса отсутствует свойство RawData, закройте и откройте браузер снова.

Преобразование записей настраиваемого журнала

Вся запись журнала будет сохранена в свойстве RawData. Скорее всего, вам потребуется разделить различные сведения в каждой записи между отдельными свойствами для каждой записи. Сведения о параметрах для анализа RawData с разделением на несколько свойств см. в статье Анализ текстовых данных в Azure Monitor.

Удаление настраиваемой таблицы журналов

См. статью "Удалить таблицу".

сбор данных

Azure Monitor собирает новые записи из каждого настраиваемого журнала примерно каждые 5 минут. Агент фиксирует место сбора в каждом отслеживаемом файле журнала. Если агент на некоторое время переходит в автономный режим, Azure Monitor собирает записи, начиная с места остановки, даже если эти записи были созданы, пока агент был отключен.

Все содержимое записи журнала записывается в свойство RawData. Методы для анализа каждой импортированной записи журнала с разделением на несколько свойств см. в статье Анализ текстовых данных в Azure Monitor.

Свойства записей настраиваемого журнала

Записи настраиваемого журнала имеют тип на основе указанного имени журнала и указанные ниже свойства.

Свойство Description
TimeGenerated Дата и время сбора записи службой Azure Monitor. Если журнал использует разделитель на основе времени, это время берется из записи.
SourceSystem Тип агента, из которого собрана запись.
OpsManager — агент Windows, прямой подключение или System Center Operations Manager
Linux — все агенты Linux
RawData Полный текст собранной записи. Скорее всего, вам потребуется проанализировать эти данные с разделением на отдельные свойства.
ManagementGroupName Имя группы управления для агентов System Center Operations Manager. Для других агентов это имя — AOI-<Идентификатор рабочей области>.

Пошаговое руководство по добавлению настраиваемого журнала

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

2019-08-27 01:34:36 207,Success,Client 05a26a97-272a-4bc9-8f64-269d154b0e39 connected
2019-08-27 01:33:33 208,Warning,Client ec53d95c-1c88-41ae-8174-92104212de5d disconnected
2019-08-27 01:35:44 209,Success,Transaction 10d65890-b003-48f8-9cfc-9c74b51189c8 succeeded
2019-08-27 01:38:22 302,Error,Application could not connect to database
2019-08-27 01:31:34 303,Error,Application lost connection to database

Загрузка и преобразование примера журнала

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

Screenshot that shows uploading and parsing a sample log.

Добавление пути к файлам журнала

Файлы журналов будут храниться в каталоге C:\MyApp\Logs. Каждый день создается файл с именем, которое включает в себя дату, в формате приложение_ГГГГММДД.log. Для этого журнала будет использоваться путь C:\MyApp\Logs\*.log.

Screenshot that shows adding a log collection path.

Указание имени и описания журнала

Мы введем имя MyApp_CL и текст описания.

Screenshot that shows adding a log name.

Проверка того, собираются ли данные настраиваемых журналов

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

Screenshot that shows a log query with no custom fields.

Альтернативные варианты настройки журналов

Настраиваемые журналы являются важными в том случае, если ваши данные соответствуют перечисленным критериям, но в некоторых случаях вам необходимо применить другую стратегию:

  • Данные не соответствуют требуемой структуре, например, метка времени представлена в другом формате.
  • Файл журнала не соответствует требованиям, например, кодирование файла или неподдерживаемая структура папки.
  • Данные требуют предварительной обработки или фильтрации перед сбором.

В тех случаях, когда настраиваемые журналы не могут собрать данные, рассмотрите следующие альтернативные стратегии.

  • Используйте настраиваемый сценарий или другой метод для записи данных в События Windows или Syslog, которые собираются с помощью службы Azure Monitor.
  • Отправьте данные непосредственно в Azure Monitor с помощью API сборщика данных HTTP.

Следующие шаги

  • Методы для анализа каждой импортированной записи журнала с разделением на несколько свойств см. в статье об анализе текстовых данных в Azure Monitor.
  • Узнайте больше о запросах журнала, которые можно применять для анализа данных, собираемых из источников данных и решений.