Включение мониторинга виртуальных машин в Azure Monitor

В этой статье описывается, как активировать мониторинг виртуальных машин, наборов масштабирования виртуальных машин и серверов с поддержкой Arc в крупном масштабе с помощью инструментов командной строки, которые позволяют использовать инфраструктуру как код (IaC) и методы автоматизации. Эти методы позволяют последовательно развертывать мониторинг в парке виртуальных машин и интегрировать конфигурацию мониторинга в конвейеры DevOps.

Замечание

Поддерживаемые компьютеры

  • Виртуальные машины Azure
  • Масштабируемые наборы виртуальных машин Azure
  • Серверы с поддержкой Arc

Список поддерживаемых операционных систем см. в статье о поддерживаемых операционных системах агента Azure Monitor.

Необходимые условия

Обзор

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

Step Описание
Установка агента Azure Monitor Агент должен быть установлен на каждой виртуальной машине для мониторинга. Это необходимо выполнить только один раз, так как агент может использовать любое количество контроллеров домена, каждое из которых собирает разные данные.
Создание правил сбора данных (DCR) Каждый DCR указывает данные для сбора и место, куда их нужно отправить. Вы можете создать собственные контроллеры домена или использовать существующие в зависимости от ваших требований. Необходимо понять различные типы DCR и их цели, чтобы определить, какие из них следует использовать.
Ассоциировать ДЦР с виртуальными машинами При создании ассоциации между виртуальной машиной и DCR агент загружает тот DCR и начинает сбор данных. Создайте связи с несколькими контроллерами домена для агента для сбора различных типов данных. Удалите связи, чтобы остановить сбор данных.

Замечание

Сведения о включении мониторинга в масштабе с помощью политики Azure см. в статье "Включение аналитики виртуальных машин с помощью политики Azure".

Установка агента Azure Monitor

Первым шагом является установка расширения агента Azure Monitor на виртуальных машинах и серверах с поддержкой Arc.

Виртуальная машина Azure

# Windows
az vm extension set \
  --name AzureMonitorWindowsAgent \
  --publisher Microsoft.Azure.Monitor \
  --vm-name <vm-name> \
  --resource-group <resource-group>

#  Linux
az vm extension set \
  --name AzureMonitorLinuxAgent \
  --publisher Microsoft.Azure.Monitor \
  --vm-name <vm-name> \
  --resource-group <resource-group>

Сервер с поддержкой Arc

# Windows
az connectedmachine extension create \
  --name AzureMonitorWindowsAgent \
  --publisher Microsoft.Azure.Monitor \
  --type AzureMonitorWindowsAgent \
  --machine-name <arc-server-name> \
  --resource-group <resource-group> \
  --location <location>

# Linux
az connectedmachine extension create \
  --name AzureMonitorLinuxAgent \
  --publisher Microsoft.Azure.Monitor \
  --type AzureMonitorLinuxAgent \
  --machine-name <arc-server-name> \
  --resource-group <resource-group> \
  --location <location>

Масштабируемый набор виртуальных машин

# Windows
az vmss extension set \
  --name AzureMonitorWindowsAgent \
  --publisher Microsoft.Azure.Monitor \
  --vmss-name <vmss-name> \
  --resource-group <resource-group>

# Linux
az vmss extension set \
  --name AzureMonitorLinuxAgent \
  --publisher Microsoft.Azure.Monitor \
  --vmss-name <vmss-name> \
  --resource-group <resource-group>

Создание правил сбора данных

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

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

В следующей таблице описаны наиболее распространенные типы DCR, используемые для мониторинга виртуальных машин. Полный список типов DCR и их структур см. в разделе "Структура правила сбора данных". Дополнительные сведения о создании правил сбора данных см. в разделе "Правила сбора данных: создание и изменение".

Тип DCR Описание
Метрики OpenTelemetry Собирает счетчики производительности на уровне системы с помощью стандартов OpenTelemetry. Включает интерфейс на основе метрик для мониторинга виртуальных машин на портале Azure. Используйте приведенное ниже определение DCR. Измените counterSpecifiers раздел, чтобы добавить метрики для сбора. См. статью "Настройка метрик OpenTelemetry" для виртуальных машин Azure.
Метрики на основе журналов Собирает предопределенные счетчики производительности в рабочей области Log Analytics. Включает классический интерфейс на основе журналов на портале Azure. Используйте приведенное ниже определение DCR. Этот DCR не должен быть изменен.
Логи Сбор различных типов журналов из виртуальной машины, включая события Windows и системный журнал. Эти DCRs не предоставляют дополнительных возможностей в Azure Monitor, но их можно проанализировать с помощью Log Analytics и использовать для оповещений. Сведения о различных доступных источниках данных см. в статье Сбор данных гостевого журнала с виртуальных машин с помощью Azure Monitor . Примеры правил сбора данных в Azure Monitor см. в примерах определений DCR для сбора журналов.

Используйте следующие определения DCR, чтобы обеспечить расширенный мониторинг для виртуальной машины. Единственное изменение — обновить расположение и целевую рабочую область в каждом определении, чтобы указать рабочую область Azure Monitor для метрик OpenTelemetry или рабочей области Log Analytics для метрик на основе журналов.

Интерфейс на основе метрик (предварительная версия)
{
  "location": "<location>",
  "properties": {
    "dataSources": {
      "performanceCountersOTel": [
        {
          "streams": "Microsoft-OtelPerfMetrics",
          "samplingFrequencyInSeconds": 60,
          "counterSpecifiers": [
              "system.filesystem.usage",
              "system.disk.io",
              "system.disk.operation_time",
              "system.disk.operations",
              "system.memory.usage",
              "system.network.io",
              "system.cpu.time",
              "system.network.dropped",
              "system.network.errors",
              "system.uptime"
          ],
          "name": "OtelPerfCounters"
        }
      ]
    },
    "destinations": {
      "monitoringAccounts": [
        {
          "accountResourceId": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Monitor/accounts/<workspace-name>",
          "name": "MonitoringAccount"
        }
      ]
    },
    "dataFlows": [
      {
        "streams": [
            "Microsoft-OtelPerfMetrics"
        ],
        "destinations": [
            "MonitoringAccount"
        ]
      }
    ]
  }
}
Интерфейс на основе журналов (классический)
{
    "location": "<location>",
    "properties": {
        "description": "Data collection rule for VM Insights.",
        "dataSources": {
            "performanceCounters": [
                {
                    "name": "VMInsightsPerfCounters",
                    "streams": [
                        "Microsoft-InsightsMetrics"
                    ],
                    "scheduledTransferPeriod": "PT1M",
                    "samplingFrequencyInSeconds": 60,
                    "counterSpecifiers": [
                        "\\VmInsights\\DetailedMetrics"
                    ]
                }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.OperationalInsights/workspaces/<workspace-name>",
                    "name": "VMInsightsPerf-Logs-Dest"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Microsoft-InsightsMetrics"
                ],
                "destinations": [
                    "VMInsightsPerf-Logs-Dest"
                ]
            }
        ]
    }
}

Сохраните определение DCR в JSON-файл и используйте его для создания DCR со следующими командами.

az monitor data-collection rule create \
  --name <dcr-name> \
  --resource-group <resource-group> \
  --location <location> \
  --rule-file <path-to-json-file>

Ассоциирование DCR с виртуальными машинами

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

Виртуальная машина Azure

az monitor data-collection rule association create \
  --name "dcr-association" \
  --rule-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/microsoft.insights/datacollectionrules/<dcr-name>
  --resource /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Compute/virtualMachines/<vm-name>

Масштабируемый набор виртуальных машин Azure

az monitor data-collection rule association create \
  --name "dcr-association" \
  --rule-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/microsoft.insights/datacollectionrules/<dcr-name>
  --resource /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Compute/virtualMachines/<vm-name>

Сервер с поддержкой Arc

az monitor data-collection rule association create \
  --name "dcr-association" \
  --rule-id /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/microsoft.insights/datacollectionrules/<dcr-name> \
  --resource /subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.HybridCompute/machines/<arc-server-name>

Включение сетевой изоляции

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

Метод Описание
Приватная ссылка См. раздел "Включить сетевую изоляцию для агента Azure Monitor" с помощью приватного канала.
Периметр безопасности сети См. статью "Настройка Azure Monitor с помощью периметра безопасности сети".