Поделиться через


Ведение журнала для групп и экземпляров контейнеров с помощью журналов Azure Monitor

Рабочие области Log Analytics предоставляют централизованное расположение для хранения данных журналов и обращения к ним не только для ресурсов Azure, но и для ресурсов в локальной среде и других облаках. Экземпляры контейнеров Azure по умолчанию поддерживают отправку журналов и данных событий в журналы Azure Monitor.

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

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

Примечание.

Эта статья была недавно обновлена, чтобы использовать термин "журналы Azure Monitor" вместо "Log Analytics". Данные журнала по-прежнему хранятся в рабочей области Log Analytics, собираются и анализируются той же службой Log Analytics. Мы обновляем терминологию, чтобы точнее отражать роль журналов в Azure Monitor. Дополнительные сведения см. в статье Изменения фирменной символики Azure Monitor.

Предпосылки

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

Получение учетных данных Log Analytics

Экземплярам контейнеров Azure нужны разрешения на отправку данных в рабочую область Log Analytics. Чтобы предоставить такие разрешения и включить ведение журнала, необходимо указать идентификатор рабочей области Log Analytics и один из ключей для нее (первичный или вторичный) при создании группы контейнеров.

Чтобы получить идентификатор рабочей области и первичный ключ Log Analytics, выполните следующие действия:

  1. На портале Azure перейдите к рабочей области Log Analytics.
  2. В разделе Параметры выберите Управление агентами.
  3. Запишите следующее:
    • Идентификатор рабочей области
    • Главный ключ

Создание группы контейнеров

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

В следующих примерах показаны два способа создания группы контейнеров, состоящей из одного контейнера fluentd: с помощью Azure CLI и Azure CLI с шаблоном YAML. Контейнер Fluentd в стандартной конфигурации создает несколько строк выходных данных. Поскольку эти выходные данные отправляются в рабочую область Log Analytics, они отлично подходят для демонстрации просмотра и запроса журналов.

Развертывание с помощью интерфейса командной строки Azure

Для развертывания с помощью Azure CLI следует указать параметры --log-analytics-workspace и --log-analytics-workspace-key при вызове команды az container create. Замените два значения рабочей области значениями, полученными на предыдущем шаге (и обновите имя группы ресурсов), прежде чем выполнять следующую команду.

Примечание.

В следующем примере извлекается общедоступный образ контейнера из Docker Hub. Рекомендуем настроить секрет доступа для аутентификации с использованием учетной записи Docker Hub вместо анонимного запроса на извлечение. Чтобы повысить надежность при работе с общедоступным содержимым, импортируйте образ и управляйте им в частном реестре контейнеров Azure. Узнайте больше о работе с общедоступными образами.

az container create \
    --resource-group myResourceGroup \
    --name mycontainergroup001 \
    --image fluent/fluentd:v1.3-debian-1 \
    --log-analytics-workspace <WORKSPACE_ID> \
    --log-analytics-workspace-key <WORKSPACE_KEY>

Развертывание с помощью YAML

Используйте этот метод, если вы предпочитаете развертывать группы контейнеров с помощью YAML. Этот пример YAML определяет группу контейнеров с одним контейнером. Скопируйте код YAML в новый файл, а затем замените LOG_ANALYTICS_WORKSPACE_ID и LOG_ANALYTICS_WORKSPACE_KEY значениями, полученными на предыдущем шаге. Сохраните файл как deploy-aci.yaml.

Примечание.

В следующем примере извлекается общедоступный образ контейнера из Docker Hub. Рекомендуем настроить секретный ключ для извлечения, чтобы проверка подлинности выполнялась через учетную запись Docker Hub, вместо анонимного запроса на скачивание. Чтобы повысить надежность при работе с общедоступным содержимым, импортируйте образ и управляйте им в частном реестре контейнеров Azure. Узнайте больше о работе с общедоступными образами.

apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
  containers:
  - name: mycontainer001
    properties:
      environmentVariables: []
      image: fluent/fluentd:v1.3-debian-1
      ports: []
      resources:
        requests:
          cpu: 1.0
          memoryInGB: 1.5
  osType: Linux
  restartPolicy: Always
  diagnostics:
    logAnalytics:
      workspaceId: LOG_ANALYTICS_WORKSPACE_ID
      workspaceKey: LOG_ANALYTICS_WORKSPACE_KEY
tags: null
type: Microsoft.ContainerInstance/containerGroups

Затем выполните следующую команду, чтобы развернуть группу контейнеров. Замените myResourceGroup на группу ресурсов в вашей подписке (или сначала создайте группу ресурсов с именем "myResourceGroup").

az container create --resource-group myResourceGroup --name mycontainergroup001 --file deploy-aci.yaml

Вскоре после выполнения команды вы получите от Azure ответ с информацией о развертывании.

Просмотр журналов

После развертывания группы контейнеров может пройти несколько минут (до 10), прежде чем первые записи журнала появятся в портале Azure.

Чтобы просмотреть журналы группы контейнеров в таблице ContainerInstanceLog_CL, выполните следующие действия:

  1. На портале Azure перейдите к рабочей области Log Analytics.
  2. В разделе Общие выберите Журналы.
  3. Введите следующий запрос: ContainerInstanceLog_CL | limit 50.
  4. Выберите Выполнить.

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

Результаты поиска по журналам на портале Azure

Просмотреть события

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

  1. На портале Azure перейдите к рабочей области Log Analytics.
  2. В разделе Общие выберите Журналы.
  3. Введите следующий запрос: ContainerEvent_CL | limit 50.
  4. Выберите Выполнить.

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

Результаты поиска событий на портале Azure

Запросить журналы контейнера

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

Базовая структура запроса включает имя таблицы с исходными данными (в этой статье ContainerInstanceLog_CL или ContainerEvent_CL) и ряд операторов, разделенных символом вертикальной черты (|). Вы можете объединить несколько операторов в цепочку, чтобы получить более точные результаты или применить более сложные функции.

Чтобы просмотреть пример результатов запроса, вставьте следующий текст в поле запроса и нажмите кнопку Запустить, чтобы выполнить этот запрос. Этот запрос отображает все записи журнала, у которых поле 'Сообщение' содержит слово 'Предупреждение'.

ContainerInstanceLog_CL
| where Message contains "warn"

Также поддерживаются более сложные запросы. Например, такой запрос отображает записи из журнала группы контейнеров mycontainergroup001, которые были созданы за последний час:

ContainerInstanceLog_CL
| where (ContainerGroup_s == "mycontainergroup001")
| where (TimeGenerated > ago(1h))

Схема журнала

Чтобы узнать об устаревшей схеме Azure Monitor для Log Analytics, см. таблицы устаревшего Log Analytics.

Использование параметров диагностики

Более новые таблицы требуют использования параметров диагностики для маршрутизации сведений в Log Analytics. Функция параметров диагностики для экземпляров контейнеров доступна в общедоступной предварительной версии, и ее можно включить с помощью параметров предварительной версии на портале Azure.

Для получения дополнительной информации см. таблицы Log Analytics в Azure Monitor.

Дальнейшие действия

Логи Azure Monitor

Дополнительные сведения о запросах по журналам и настройке предупреждений в журналах Azure Monitor см. в следующих статьях:

Мониторинг ЦП и памяти контейнера

Для получения информации о мониторинге ресурсов ЦП и памяти экземпляра контейнера см. здесь: