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


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

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

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

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

Примечание.

Сведения из данной статьи были недавно обновлены. Теперь вместо термина "Log Analytics" используется термин "журналы Azure Monitor". Данные журнала по-прежнему хранятся в рабочей области 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 ответ с информацией о развертывании.

Просмотреть журналы

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

Чтобы просмотреть журналы группы контейнеров в таблице 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) и ряд операторов, разделенных символом вертикальной черты (|). Вы можете объединить несколько операторов в цепочку, чтобы получить более точные результаты или применить более сложные функции.

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

ContainerInstanceLog_CL
| where Message contains "warn"

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

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

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

Сведения о устаревшей схеме Azure Monitor для Log Analytics см . в таблицах Legacy Log Analytics.

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

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

Дополнительные сведения см . в таблицах Log Analytics в Azure Monitor.

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

Журналы Azure Monitor

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

Мониторинг использования ЦП и памяти

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