Отслеживание метрик и журналов с помощью диагностического расширения для Linux 4.0

Внимание

Эта статья ссылается на CentOS, дистрибутив Linux, который приближается к состоянию конца жизни (EOL). Обратите внимание на использование и план соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.

В этой статье описываются последние версии расширения диагностики Linux (LAD).

Расширение диагностики Linux помогает отслеживать работоспособность виртуальной машины Linux в Microsoft Azure. Оно предоставляет следующие возможности.

Источник данных Параметры настройки Обязательные назначения Дополнительные назначения
Метрики Счетчик, агрегирование, частота дискретизации, описатели Хранилище таблиц Azure EventHub, Хранилище BLOB-объектов Azure (формат JSON), Azure Monitor (новый в LAD 4.0)
Системный журнал Средство, уровень серьезности Хранилище таблиц Azure EventHub, хранилище BLOB-объектов Azure (формат JSON)
Файлы Путь к журналу, целевая таблица Хранилище таблиц Azure EventHub, хранилище BLOB-объектов Azure (формат JSON)

Это расширение работает как с моделями развертывания Azure: Azure Resource Manager, так и с классической версией.

Необходимые компоненты

  • Агент Linux для Azure 2.2.0 или более поздней версии. Большинство образов в коллекции виртуальных машин Azure на базе Linux включает версию 2.2.7 или более позднюю. Чтобы проверить версию, установленную в виртуальной машине, выполните команду /usr/sbin/waagent -version. Если виртуальная машина запускает старую версию гостевого агента, обновите агент Linux.
  • Azure CLI. Установите среду Azure CLI на компьютере.
  • Эта команда wgetвыполняет следующие действия. Если у вас его еще нет, установите его с помощью соответствующего диспетчера пакетов.
  • Подписка Azure и учетная запись хранения общего назначения для хранения данных. Учетные записи хранения общего назначения поддерживают хранилище таблиц, которое является обязательным. Учетная запись хранения BLOB-объектов не работает.
  • Python 2.

Поддерживаемые дистрибутивы Linux

См. раздел "Поддерживаемые операционные системы агента".

Требование Python

Для диагностического расширения в Linux требуется Python 2. Если виртуальная машина использует дистрибутив, который не включает Python 2, установите его.

Примечание.

В настоящее время мы планируем конвергировать все версии расширений диагностики Linux (LAD) с новым агентом мониторинга Azure, который уже поддерживает Python 3. LaD будет запланирован на отмену ожидающего объявления и утверждения.

Чтобы установить Python 2, выполните одну из следующих примеров команд:

  • Red Hat, CentOS, Oracle: yum install -y python2
  • Ubuntu, Debian: apt-get install -y python2
  • SUSE: zypper install -y python2

Исполняемый python2 файл должен быть псевдонимом python.

  1. Выполните следующую команду, чтобы удалить все существующие псевдонимы.

    sudo update-alternatives --remove-all python
    
  2. Выполните следующую команду, чтобы создать новый псевдоним.

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
    

Установка расширения

Это расширение можно включить для виртуальной машины и масштабируемого набора виртуальных машин с помощью командлетов Azure PowerShell, скриптов Azure CLI, шаблонов Azure Resource Manager (шаблонов ARM) или портал Azure. Дополнительные сведения см. в разделе о расширениях и функциях виртуальных машин для Linux.

Примечание.

Некоторые компоненты расширения для виртуальной машины диагностики Linux поставляются в виде расширения для виртуальной машины Log Analytics. Конфликты могут возникать, если оба расширения создаются в одном шаблоне ARM.

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

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

  • Сбор и хранение метрик, предоставленных LAD версиями 2.3 и 3.x.
  • Отправка метрик в приемник Azure Monitor вместе с обычным приемником в службе хранилища Azure. Эта функция впервые включена в LAD 4.0.
  • Сбор набора полезных метрик файловой системы как в версии LAD 3.0.
  • Сбор событий по умолчанию системного журнала, которые были доступны в LAD 2.3.
  • Обеспечение построения диаграмм и вывода оповещений на основе метрик виртуальных машин на портале Azure.

Загружаемая конфигурация приводится в качестве примера. Измените ее в соответствии со своими потребностями.

Установка

Вы можете установить и настроить LAD 4.0 в Azure CLI или в Azure PowerShell.

Если защищенные параметры находятся в файле ProtectedSettings.json, а сведения об общедоступной конфигурации — в файле PublicSettings.json, выполните следующую команду:

az vm extension set --publisher Microsoft.Azure.Diagnostics \
  --name LinuxDiagnostic --version 4.0 --resource-group <resource_group_name> \
  --vm-name <vm_name> --protected-settings ProtectedSettings.json \
  --settings PublicSettings.json

Эта команда предполагает, что вы используете режим управления ресурсами Azure в Azure CLI. Чтобы настроить LAD для виртуальных машин на основе классической модели развертывания, переключитесь в режим управления услугами (azure config mode asm) и не указывайте в команде имя группы ресурсов.

Дополнительные сведения см. в документации по кроссплатформенному интерфейсу командной строки.

Включение автоматического обновления

Чтобы включить автоматическое обновление агента, рекомендуется включить функцию автоматического обновления расширений:

az vm extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic \
  --version 4.0 --resource-group <resource_group_name> --vm-name <vm_name> \
  --protected-settings ProtectedSettings.json --settings PublicSettings.json \
  --enable-auto-upgrade true

Пример установки

В этих примерах образец конфигурации собирает набор стандартных данных и отправляет их в хранилище таблиц. URL-адрес и содержимое образца конфигурации могут меняться.

Примечание.

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

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

При включении нового приемника Azure Monitor для создания маркеров проверки подлинности управляемого удостоверения службы на виртуальных машинах необходимо включить удостоверение, назначенное системой. Эти параметры можно добавить во время создания виртуальной машины или после него. Инструкции по работе с порталом Azure, Azure CLI, PowerShell и Azure Resource Manager см. в статье Настройка управляемых удостоверений.

Пример установки — Azure CLI

# Set your Azure VM diagnostic variables.
my_subscription_id=<your_azure_subscription_id>
my_resource_group=<your_azure_resource_group_name_containing_your_azure_linux_vm>
my_linux_vm=<your_azure_linux_vm_name>
my_diagnostic_storage_account=<your_azure_storage_account_for_storing_vm_diagnostic_data>

# Login to Azure before you do anything else.
az login

# Select the subscription that contains the storage account.
az account set --subscription $my_subscription_id

# Enable system-assigned identity on the existing VM.
az vm identity assign --resource-group $my_resource_group --name $my_linux_vm

# Download the sample public settings. You could instead use curl or any web browser.
wget https://raw.githubusercontent.com/Azure/azure-linux-extensions/master/Diagnostic/tests/lad_2_3_compatible_portal_pub_settings.json -O portal_public_settings.json

# Build the VM resource ID. Replace the storage account name and resource ID in the public settings.
my_vm_resource_id=$(az vm show --resource-group $my_resource_group \
  --name $my_linux_vm --query "id" -o tsv)
sed -i "s#__DIAGNOSTIC_STORAGE_ACCOUNT__#$my_diagnostic_storage_account#g" portal_public_settings.json
sed -i "s#__VM_RESOURCE_ID__#$my_vm_resource_id#g" portal_public_settings.json

# Build the protected settings (storage account SAS token).
my_diagnostic_storage_account_sastoken=$(az storage account generate-sas \
  --account-name $my_diagnostic_storage_account --expiry 2037-12-31T23:59:00Z \
  --permissions wlacu --resource-types co --services bt -o tsv)
my_lad_protected_settings="{'storageAccountName': '$my_diagnostic_storage_account', \
  'storageAccountSasToken': '$my_diagnostic_storage_account_sastoken'}"

# Finally, tell Azure to install and enable the extension.
az vm extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic \
  --version 4.0 --resource-group $my_resource_group --vm-name $my_linux_vm \
  --protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json

Пример установки для Масштабируемые наборы виртуальных машин — Azure CLI

# Set your Azure virtual machine scale set diagnostic variables.
my_subscription_id=<your_azure_subscription_id>
my_resource_group=<your_azure_resource_group_name_containing_your_azure_linux_vm>
my_linux_vmss=<your_azure_linux_vmss_name>
my_diagnostic_storage_account=<your_azure_storage_account_for_storing_vm_diagnostic_data>

# Login to Azure before you do anything else.
az login

# Select the subscription that contains the storage account.
az account set --subscription $my_subscription_id

# Enable system-assigned identity on the existing virtual machine scale set.
az vmss identity assign --resource-group $my_resource_group --name $my_linux_vmss

# Download the sample public settings. You could also use curl or any web browser.
wget https://raw.githubusercontent.com/Azure/azure-linux-extensions/master/Diagnostic/tests/lad_2_3_compatible_portal_pub_settings.json -O portal_public_settings.json

# Build the virtual machine scale set resource ID. Replace the storage account name and resource ID in the public settings.
my_vmss_resource_id=$(az vmss show --resource-group $my_resource_group \
  --name $my_linux_vmss --query "id" -o tsv)
sed -i "s#__DIAGNOSTIC_STORAGE_ACCOUNT__#$my_diagnostic_storage_account#g" portal_public_settings.json
sed -i "s#__VM_RESOURCE_ID__#$my_vmss_resource_id#g" portal_public_settings.json

# Build the protected settings (storage account SAS token).
my_diagnostic_storage_account_sastoken=$(az storage account generate-sas \
  --account-name $my_diagnostic_storage_account --expiry 2037-12-31T23:59:00Z \
  --permissions wlacu --resource-types co --services bt -o tsv)
my_lad_protected_settings="{'storageAccountName': '$my_diagnostic_storage_account', 'storageAccountSasToken': '$my_diagnostic_storage_account_sastoken'}"

# Finally, tell Azure to install and enable the extension.
az vmss extension set --publisher Microsoft.Azure.Diagnostics --name LinuxDiagnostic
  --version 4.0 --resource-group $my_resource_group --vmss-name $my_linux_vmss \
  --protected-settings "${my_lad_protected_settings}" --settings portal_public_settings.json

Обновление параметров расширения

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

Переход с предыдущих версий расширения

Последняя версия расширения — 4.0, которая в настоящее время находится в общедоступной предварительной версии. Более старые версии 3.x все еще поддерживаются. Версии 2.x устарели с 31 июля 2018 г.

Внимание

Для перехода с версии 3.x на последнюю версию расширения удалите старое расширение. Затем установите версию 4, которая включает обновленную конфигурацию для присвоенных системой удостоверений и приемников, предназначенную для отправки метрик в приемник Azure Monitor.

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

  • В виртуальных машинах на основе модели развертывания с помощью Azure Resource Manager включите в шаблон развертывания виртуальных машин параметр "autoUpgradeMinorVersion": true.
  • В виртуальных машинах с классической моделью развертывания укажите значение версии 4.*, если для установки расширения вы используете интерфейс командной строки Azure или PowerShell.

Можно воспользоваться учетной записью хранения, которая применялась для LAD 3.x.

Защищенные параметры

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

{
    "storageAccountName" : "the storage account to receive data",
    "storageAccountEndPoint": "the hostname suffix for the cloud for this account",
    "storageAccountSasToken": "SAS access token",
    "mdsdHttpProxy": "HTTP proxy settings",
    "sinksConfig": { ... }
}
Имя. Значение
storageAccountName Имя учетной записи хранения, в которую расширение записывает данные.
storageAccountEndPoint Конечная точка, определяющая облако, в котором находится учетная запись хранения (необязательно). Если этот параметр отсутствует, по умолчанию LAD использует общедоступное облако Azure https://core.windows.net. Чтобы использовать учетную запись хранения в Azure в Германии, Azure для государственных организаций или Microsoft Azure под управлением 21Vianet, задайте это значение как необходимое.
storageAccountSasToken Маркер SAS учетной записи для служб BLOB-объектов и таблиц (ss='bt'). Этот маркер применяется к контейнерам и объектам (srt='co'). Он предоставляет разрешения на добавление, создание, получение списка, обновление и запись (sp='acluw'). Не включайте начальный вопросительный знак (?).
mdsdHttpProxy Сведения о прокси-сервере HTTP, необходимые для обеспечения подключения расширения к указанной учетной записи хранения и конечной точке (необязательно).
sinksConfig Сведения об альтернативных местах назначения, в которые могут доставляться метрики и события (необязательно). Следующие разделы содержат сведения о каждом приемнике данных, поддерживаемых расширением.

Чтобы получить маркер SAS в шаблоне ARM, используйте функцию listAccountSas. Пример такого шаблона см. в разделе Пример функции list.

С помощью портал Azure можно создать необходимый маркер подписанного URL-адреса:

  1. Выберите учетную запись хранения общего назначения, в которую расширение будет записывать данные.
  2. В меню слева в разделе "Безопасность и сеть" выберите подписанный URL-адрес.
  3. Выберите требуемые элементы, как описано ранее.
  4. Выберите Создать SAS и строку подключения.

Снимок экрана: страница подписи общего доступа, в которой есть SAS и строка подключения.

Скопируйте созданную подписанный URL-адрес в storageAccountSasToken поле. Удалите начальный вопросительный знак (?).

sinksConfig

Примечание.

Как общедоступные, так и защищенные параметры имеют необязательный раздел sinksConfig. Раздел sinksConfigзащищенных параметров содержит только конфигурации приемников EventHub и JsonBlob из-за включения секретных данных, таких как sasURL. Конфигурации приемников AzMonSinkне могут быть включены в защищенные параметры.

"sinksConfig": {
    "sink": [
        {
            "name": "sinkname",
            "type": "sinktype",
            ...
        },
        ...
    ]
},

Дополнительный sinksConfig раздел определяет больше назначений, в которые расширение отправляет собранные сведения. Массив "sink" содержит объект для каждого дополнительного приемника данных. Атрибут "type" определяет другие атрибуты в этих объектах.

Элемент Значение
name Строка, используемая для указания этого приемника в других местах конфигурации расширения.
type Тип определяемого приемника. Определяет другие значения, если таковые есть, в экземплярах этого типа.

Диагностическое расширение Linux 4.0 поддерживает два типа защищенных приемников: EventHub и JsonBlob.

Приемник EventHub

"sink": [
    {
        "name": "sinkname",
        "type": "EventHub",
        "sasURL": "https SAS URL"
    },
    ...
]

Запись "sasURL" содержит полный URL-адрес, включая маркер подписанного URL-адреса для концентратора событий, в котором должны быть опубликованы данные. ДЛЯ LAD требуется подписанный URL-адрес для имени политики, которая включает утверждение отправки. Приведем пример:

  • Создание пространства имен Центров событий с именем contosohub.
  • Создайте концентратор событий в этом пространстве имен с именем syslogmsgs.
  • Создание общей политики доступа для концентратора событий с именем writer, включающей утверждение отправки.

Если вы создаете SAS, который хорошо подходит до полуночи UTC 1 января 2018 года, sasURL это значение может быть похоже на следующий пример.

https://contosohub.servicebus.windows.net/syslogmsgs?sr=contosohub.servicebus.windows.net%2fsyslogmsgs&sig=xxxxxxxxxxxxxxxxxxxxxxxxx&se=1514764800&skn=writer

Дополнительные сведения о создании маркеров SAS для Центров событий и получении данных о них можно найти в статье Создание маркера SAS.

Приемник JsonBlob

"sink": [
    {
        "name": "sinkname",
        "type": "JsonBlob"
    },
    ...
]

Данные, передаваемые в приемник JsonBlob, сохраняются в BLOB-объектах в службе хранилища Azure. Каждый экземпляр LAD каждый час создает BLOB-объект для каждого имени приемника. Каждый BLOB-объект всегда содержит массив объектов в синтаксически правильном формате JSON. Новые записи добавляются в массив атомарным образом.

BLOB-объекты хранятся в контейнере, имя которого совпадает с именем приемника. Правила службы хранилища Azure для имен контейнеров BLOB-объектов применимы и к именам приемников JsonBlob. Имена должны иметь от 3 до 63 строчных буквенно-цифровых символов ASCII или дефисов.

Общедоступные параметры

Эта структура общедоступных параметров содержит различные блоки параметров, которые определяют то, какие сведения собираются расширением. Все параметры, кроме ladCfg, являются необязательными. Если вы укажете метрику или коллекцию syslog в ladCfg, необходимо также указать StorageAccount. Необходимо указать элемент sinksConfig, чтобы включить приемник Azure Monitor для метрик из LAD 4.0.

{
    "ladCfg":  { ... },
    "fileLogs": { ... },
    "StorageAccount": "the storage account to receive data",
    "sinksConfig": { ... },
    "mdsdHttpProxy" : ""
}
Элемент Значение
StorageAccount Имя учетной записи хранения, в которую расширение записывает данные. Должно быть именем, указанным в защищенных параметрах.
mdsdHttpProxy Прокси-сервер, указанный в защищенных параметрах (необязательно) Если задано значение защищенного параметра, оно переопределяет значение общедоступного параметра. Параметры прокси-сервера, которые содержат секретные данные, такие как пароль, следует указывать в защищенных параметрах.

Остальные элементы рассматриваются подробнее в следующих разделах.

ladCfg

"ladCfg": {
    "diagnosticMonitorConfiguration": {
        "eventVolume": "Medium",
        "metrics": { ... },
        "performanceCounters": { ... },
        "syslogEvents": { ... }
    },
    "sampleRateInSeconds": 15
}

Структура ladCfg управляет сбором метрик и журналов для доставки в службу метрик Azure Monitor и другие приемники данных. Укажите performanceCounters или syslogEvents, или и то, и другое. Задайте структуру metrics.

Если вы не хотите включить коллекцию системных журналов или метрик, укажите пустую структуру для ladCfg элемента:

"ladCfg": {
    "diagnosticMonitorConfiguration": {}
}
Элемент Значение
eventVolume Определяет количество разделов, создаваемых в таблице хранилища (необязательно). Значение должно быть равно "Large", "Medium" или "Small". Значение по умолчанию — "Medium".
sampleRateInSeconds (Необязательно) Интервал по умолчанию между коллекцией необработанных, то есть нерегрегированных метрик. Минимальная поддерживаемая частота выборки — 15 секунд. Значение по умолчанию — 15.

Метрики

"metrics": {
    "resourceId": "/subscriptions/...",
    "metricAggregation" : [
        { "scheduledTransferPeriod" : "PT1H" },
        { "scheduledTransferPeriod" : "PT5M" }
    ]
}
Элемент Значение
resourceId Идентификатор ресурса Azure Resource Manager виртуальной машины или масштабируемого набора виртуальных машин, к которому принадлежит виртуальная машина. Укажите этот параметр, если в конфигурации используется любой приемник JsonBlob.
scheduledTransferPeriod Частота, с которой совокупные метрики должны вычисляться и передаваться в службу метрик Azure Monitor. Частота выражается в формате интервала времени по стандарту IS 8601. Наименьший период передачи составляет 60 секунд, то есть PT1M. Укажите хотя бы один период scheduledTransferPeriod.

Выборка метрик, указанных в разделе performanceCounters, производится каждые 15 секунд или с частотой, явно определенной для этого счетчика. Если задано несколько значений частоты scheduledTransferPeriod, как в нашем примере, то каждое агрегирование производится независимо.

performanceCounters

"performanceCounters": {
    "sinks": "",
    "performanceCounterConfiguration": [
        {
            "type": "builtin",
            "class": "Processor",
            "counter": "PercentIdleTime",
            "counterSpecifier": "/builtin/Processor/PercentIdleTime",
            "condition": "IsAggregate=TRUE",
            "sampleRate": "PT15S",
            "unit": "Percent",
            "annotation": [
                {
                    "displayName" : "cpu idle time",
                    "locale" : "en-us"
                }
            ]
        }
    ]
}

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

  • Среднее
  • Минимум
  • Максимум
  • Последнее собранное значение
  • Количество необработанных выборок для вычисления агрегата
Элемент Значение
Приемники Разделенный запятыми список имен приемников, в которые LAD отправляет агрегированные результаты метрик (необязательно). Все агрегированные метрики публикуются в каждом приемнике из списка. Например, "MyEventHubSink, MyJsonSink, MyAzMonSink". Дополнительные сведения см. в статье sinksConfig (защищенные параметры) и sinksConfig (общедоступные параметры).
type Определяет фактический поставщик метрики.
class Вместе с элементом "counter" определяет конкретную метрику в пространстве имен поставщика.
людей Irisys Вместе с элементом "class" определяет конкретную метрику в пространстве имен поставщика. См. список доступных счетчиков.
counterSpecifier Определяет метрику в пространстве имен метрик Azure Monitor.
condition Выбирает экземпляр объекта, к которому применяется метрика (необязательно). Или выбирает агрегирование для всех экземпляров этого объекта.
sampleRate Интервал IS 8601, определяющий частоту, с которой собираются необработанные выборки этой метрики. Если значение не задано, значение sampleRateInSeconds набора интервала сбора. Минимальная поддерживаемая частота выборки — 15 секунд (PT15S).
unit Определяет единицу измерения для метрики. Допустимыми значениями являются такие строки: "Count", "Bytes", "Seconds", "Percent", "CountPerSecond", "BytesPerSecond", "Millisecond". Потребители собранных данных ожидают, что значения собранных данных выражены в этой единице. LAD игнорирует это поле.
displayName Метка для присоединения к данным в метриках Azure Monitor при просмотре Guest (classic) в пространстве имен метрик. Эта метка указывается на языке, определенном в соответствующем параметре языкового стандарта. LAD игнорирует это поле. Примечание. При просмотре той же метрики в azure.vm.linux.guestmetrics пространстве имен метрик, доступном при AzMonSink настройке, отображаемое имя полностью зависит от счетчика. Чтобы найти сопоставление между счетчиками и именами, см . метрики, поддерживаемые встроенным поставщиком.

counterSpecifier — произвольный идентификатор. Потребители метрик, такие как функция портал Azure диаграммы и оповещения, используйте counterSpecifier в качестве ключа, определяющего метрики или экземпляр метрики.

Для метрик builtin рекомендуется использовать значения counterSpecifier, начинающиеся с /builtin/. Чтобы собрать определенный экземпляр метрики, прикрепите идентификатор экземпляра к значению counterSpecifier . Далее приводятся некоторые примеры.

  • /builtin/Processor/PercentIdleTime. Среднее время простоя для всех виртуальных ЦП
  • /builtin/Disk/FreeSpace(/mnt). Свободное место для файловой /mnt системы
  • /builtin/Disk/FreeSpace. Свободное место в среднем во всех подключенных файловых системах

На портале Azure и в LAD не ожидается, что значение counterSpecifier соответствует какому-то шаблону. Соблюдайте единый формат при создании значений counterSpecifier.

Если вы укажете performanceCounters, расширение LAD всегда записывает данные в таблицу службы хранилища Azure. Эти же данные могут записываться в BLOB-объекты JSON и (или) в Центры событий. Вы не можете отключить хранение данных в таблицу.

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

Параметр eventVolume позволяет распределять записи по нескольким разделам: 1 раздел (малый), 10 (средний) или 100 (большой). Чтобы избежать регулирования трафика, обычно бывает достаточно средних разделов.

Функция метрик Azure Monitor на портале Azure использует данные в этой таблице для создания графов или активации оповещений. Имя таблицы образуется путем сцепления следующих строк:

  • WADMetrics
  • "scheduledTransferPeriod" для агрегированных значений, хранящихся в таблице;
  • P10DV2S
  • Дата, в форме ГГГГММДД, которая изменяется каждые 10 дней

Примеры: WADMetricsPT1HP10DV2S20170410 и WADMetricsPT1MP10DV2S20170609.

syslogEvents

"syslogEvents": {
    "sinks": "",
    "syslogEventConfiguration": {
        "facilityName1": "minSeverity",
        "facilityName2": "minSeverity",
        ...
    }
}

Необязательный раздел syslogEvents управляет сбором событий из системного журнала. Если этот раздел отсутствует, события системного журнала не собираются.

Коллекция syslogEventConfiguration содержит по одной записи для каждого субъекта системного журнала, представляющего интерес. Если для определенного субъекта параметр minSeverity имеет значение "NONE" или этот субъект отсутствует в элементе, события от этого субъекта не собираются.

Элемент Значение
Приемники Разделенный запятыми список имен приемников, в которых публикуются отдельные события журнала. Все события журнала, соответствующие ограничениям в syslogEventConfiguration, публикуются в каждом приемнике из списка. Пример: "EHforsyslog"
facilityName Имя субъекта системного журнала, например "LOG_USER" или "LOG_LOCAL0". Дополнительные сведения см. в разделе "Значения для объекта " на странице руководства системного журнала.
minSeverity Уровень серьезности системного журнала, например "LOG_ERR" или "LOG_INFO". Дополнительные сведения см. в разделе "Значения для уровня" на странице руководства по системным журналам. Расширение собирает события, отправляемые субъекту, с указанным или более высоким уровнем.

Если вы укажете syslogEvents, расширение LAD всегда записывает данные в таблицу службы хранилища Azure. Эти же данные могут записываться в BLOB-объекты JSON и (или) в Центры событий. Вы не можете отключить хранение данных в таблицу.

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

  • LinuxSyslog
  • Дата, в форме ГГГГММДД, которая изменяется каждые 10 дней

Примеры: LinuxSyslog20170410 и LinuxSyslog20170609.

sinksConfig

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

Примечание.

Как общедоступные, так и защищенные параметры имеют необязательный раздел sinksConfig. Раздел sinksConfig в общедоступных параметрах содержит только конфигурацию приемника AzMonSink. Конфигурации приемника EventHub и JsonBlobне могут быть включены в общедоступные параметры.

Примечание.

Для раздела sinksConfig требуется включить назначаемое системой удостоверение на виртуальных машинах или масштабируемом наборе виртуальных машин. Назначаемое системой удостоверение можно активировать с помощью портала Azure, интерфейса командной строки, PowerShell и Azure Resource Manager. Следуйте подробным инструкциям или просмотрите предыдущие примеры установок в этой статье.

  "sinksConfig": {
    "sink": [
      {
        "name": "AzMonSink",
        "type": "AzMonSink",
        "AzureMonitor": {}
      }
    ]
  },

fileLogs

Раздел fileLogs управляет записью файлов журналов. LAD записывает новые текстовые строки по мере их записи в файл. Он записывает их в строки таблицы и любые указанные приемники, например JsonBlob и EventHub.

Примечание.

Данные fileLogs собираются подкомпонентом LAD с именем omsagent. Для сбора fileLogs убедитесь, что у пользователя omsagent есть права доступа на чтение указанных файлов. Кроме того, должны быть разрешения на выполнение для всех каталогов пути к этому файлу. После установки LAD выполните команду sudo su omsagent -c 'cat /path/to/file'проверка разрешения.

"fileLogs": [
    {
        "file": "/var/log/mydaemonlog",
        "table": "MyDaemonEvents",
        "sinks": ""
    }
]
Элемент Значение
файл Полный путь к файлу журнала для просмотра и записи. Путь не может указывать каталог или содержать дикие карта символы. Учетная запись пользователя omsagent должна иметь доступ на чтение ко всем каталогам в пути к этому файлу.
table (Необязательно) Таблица служба хранилища Azure, в которую записываются новые строки из хвоста файла. Эта таблица должна находиться в учетной записи хранения, которая указана в защищенной конфигурации.
Приемники Разделенный запятыми список имен множества приемников, в которые отправляются строки из журнала (необязательно).

Необходимо указать значение "table" и (или) "sinks".

Метрики, поддерживаемые встроенным поставщиком

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

Примечание.

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

  • Guest (classic) заполнено из учетной записи хранения: указанное displayName в performanceCounters разделе или отображаемое имя по умолчанию, как показано на портале Azure. Для виртуальной машины в разделе "Параметры диагностики мониторинга>" перейдите на вкладку "Метрики".
  • azure.vm.linux.guestmetrics заполнено AzMonSinkиз поля , если настроено:azure.vm.linux.guestmetrics отображаемое имя, указанное в следующих таблицах.

Значения метрик между Guest (classic) версиями отличаются azure.vm.linux.guestmetrics . Для классических метрик применяется определенное агрегирование в агенте, а новые метрики представляют собой не агрегированные счетчики, дающие клиентам возможность выполнять агрегирование по мере необходимости во время оповещения или просмотра.

Поставщик метрик builtin является источником метрик, наиболее интересных широкому кругу пользователей. Эти метрики делятся на пять основных классов:

  • Процессор
  • Память
  • Network
  • Файловая система
  • Диск

Встроенные метрики для класса "Процессор"

Класс метрик "Процессор" предоставляет сведения об использовании процессоров в виртуальной машине. В результате статистической обработки процентных значений получается среднее значение по всем ЦП.

Если в виртуальной машине с двумя виртуальными ЦП нагрузка на один ЦП равна 100 %, а второй полностью бездействует, то PercentIdleTime получает значение 50. Если в течение аналогичного же периода каждый виртуальный процессор был загружен на 50 %, значение счетчика также будет равно 50. Если на виртуальной машине с четырьмя виртуальными ЦП один из виртуальных ЦП загружен на 100 %, а остальные простаивают, то PercentIdleTime получает значение 75.

Счетчик отображаемое имя azure.vm.linux.guestmetrics Значение
PercentIdleTime cpu idle time Процентная доля от периода статистической обработки, в течение которой процессоры выполняли цикл простоя ядра.
PercentProcessorTime cpu percentage guest os Процент времени выполнения неактивного потока
PercentIOWaitTime cpu io wait time Процент времени ожидания завершения операций ввода-вывода
PercentInterruptTime cpu interrupt time Процент времени выполнения аппаратных или программных прерываний и отложенных вызовов процедур (DPCs)
PercentUserTime cpu user time Время бездействия в окне агрегирования, процент времени, затраченного в пользовательском режиме в обычном приоритете
PercentNiceTime cpu nice time От неактивного времени процент, потраченный на пониженный (хороший) приоритет
PercentPrivilegedTime cpu privileged time Неактивное время, процент, потраченный в режиме привилегированного (ядра)

Сумма показаний первых четырех счетчиков должна составлять 100 %. Последние три счетчика также суммируются до 100 %. Сумма PercentProcessorTime, PercentIOWaitTime и PercentInterruptTime распределяется между этими тремя счетчиками.

Встроенные метрики для класса "Память"

Класс метрик "Память" предоставляет сведения об использовании памяти, разбиении по страницам и подкачке.

Счетчик отображаемое имя azure.vm.linux.guestmetrics Значение
AvailableMemory memory available Доступный объем физической памяти в МиБ.
PercentAvailableMemory mem. percent available Доступный объем физической памяти в процентах от общего объема памяти
UsedMemory memory used Используемый объем физической памяти (МиБ).
PercentUsedMemory memory percentage Используемый объем физической памяти в процентах от общего объема памяти.
PagesPerSec pages Общее количество операций подкачки (чтения и записи).
PagesReadPerSec page reads Страницы, считанные из резервного хранилища, например файл подкачки, файл программы и сопоставленный файл
PagesWrittenPerSec page writes Страницы, записанные в резервное хранилище, такие как файл подкачки и сопоставленный файл
AvailableSwap swap available Размер неиспользуемой области подкачки (МиБ).
PercentAvailableSwap swap percent available Размер неиспользуемой области подкачки в процентах от общего размера области подкачки
UsedSwap swap used Размер используемой области подкачки (МиБ).
PercentUsedSwap swap percent used Размер используемой области подкачки в процентах от общего размера области подкачки

Этот класс метрик имеет только один экземпляр. Атрибут "condition" не имеет полезных параметров и его следует опускать.

Встроенные метрики для класса "Сеть"

Класс метрик "Сеть" предоставляет сведения о сетевой активности в отдельных сетевых интерфейсах с момента запуска.

LAD не выводит метрики пропускной способности. Такие метрики можно вывести из метрик узла.

Счетчик отображаемое имя azure.vm.linux.guestmetrics Значение
BytesTransmitted network out guest os Общее количество байт, отправленных с момента запуска.
BytesReceived network in guest os Общее количество байт, полученных с момента запуска.
BytesTotal network total bytes Общее количество байт, отправленных или полученных с момента запуска.
PacketsTransmitted packets sent Общее количество пакетов, отправленных с момента запуска.
PacketsReceived packets received Общее количество пакетов, полученных с момента запуска
TotalRxErrors packets received errors Количество ошибок приема с момента запуска.
TotalTxErrors packets sent errors Количество ошибок передачи с момента запуска
TotalCollisions network collisions Число конфликтов, полученных от сетевых портов с момента запуска

Встроенные метрики для класса "Файловая система"

Класс метрик "Файловая система" предоставляет сведения об использовании файловой системы. Абсолютные и процентные значения отображаются обычным пользователем, а не корневым.

Счетчик отображаемое имя azure.vm.linux.guestmetrics Значение
FreeSpace filesystem free space Доступное дисковое пространство в байтах.
UsedSpace filesystem used space Используемое дисковое пространство в байтах.
PercentFreeSpace filesystem % free space Процент свободного места
PercentUsedSpace filesystem % used space Процент используемого места
PercentFreeInodes filesystem % free inodes Процент неиспользуемых узлов индекса (дескрипторы inode).
PercentUsedInodes filesystem % used inodes Процент выделенных (используемых) индексных дескрипторов по всем файловым системам
BytesReadPerSecond filesystem read bytes/sec Число прочитанных байт за секунду.
BytesWrittenPerSecond filesystem write bytes/sec Число записанных байт за секунду.
BytesPerSecond filesystem bytes/sec Число прочитанных или записанных байт за секунду.
ReadsPerSecond filesystem reads/sec Число операций чтения за секунду.
WritesPerSecond filesystem writes/sec Число операций записи за секунду.
TransfersPerSecond filesystem transfers/sec Число операций чтения или записи за секунду.

Встроенные метрики для класса "Диск"

Класс метрик "Диск" предоставляет сведения об использовании дискового устройства. Эти статистические данные относятся ко всему диску.

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

Счетчик отображаемое имя azure.vm.linux.guestmetrics Значение
ReadsPerSecond disk reads Число операций чтения за секунду.
WritesPerSecond disk writes Число операций записи за секунду.
TransfersPerSecond disk transfers Общее число операций за секунду.
AverageReadTime disk read time Среднее число секунд на операцию чтения.
AverageWriteTime disk write time Среднее число секунд на операцию записи.
AverageTransferTime disk transfer time Среднее число секунд на операцию.
AverageDiskQueueLength disk queue length Среднее число операций с диском, помещенных в очередь.
ReadBytesPerSecond disk read guest os Количество прочитанных байт за секунду.
WriteBytesPerSecond disk write guest os Количество записанных байт за секунду.
BytesPerSecond disk total bytes Количество прочитанных или записанных байт за секунду.

Пример конфигурации LAD 4.0

С учетом предыдущих определений в этом разделе приведен пример конфигурации расширения LAD 4.0 с некоторыми пояснениями. Чтобы применить этот пример, используйте собственное имя учетной записи хранения, маркер подписанного url-адреса учетной записи и маркеры SAS Центров событий.

Примечание.

В зависимости от того, используется ли Azure CLI или Azure PowerShell для установки LAD, способ предоставления общедоступных и защищенных параметров отличается:

  • Если вы используете Azure CLI, сохраните приведенные ниже параметры в файлах ProtectedSettings.json и PublicSettings.json, чтобы применить их с приведенным ранее примером команды.
  • Если вы используете PowerShell, запустите $protectedSettings = '{ ... }' и $publicSettings = '{ ... }' сохраните следующие параметры в $protectedSettings и $publicSettings.

Конфигурация защищенных параметров

Эти защищенные параметры настраивают следующее:

  • Учетная запись хранения.
  • Соответствующий маркер подписанного URL-адреса учетной записи.
  • Несколько приемников: JsonBlob или EventHub с маркерами SAS.
{
  "storageAccountName": "yourdiagstgacct",
  "storageAccountSasToken": "sv=xxxx-xx-xx&ss=bt&srt=co&sp=wlacu&st=yyyy-yy-yyT21%3A22%3A00Z&se=zzzz-zz-zzT21%3A22%3A00Z&sig=fake_signature",
  "sinksConfig": {
    "sink": [
      {
        "name": "SyslogJsonBlob",
        "type": "JsonBlob"
      },
      {
        "name": "FilelogJsonBlob",
        "type": "JsonBlob"
      },
      {
        "name": "LinuxCpuJsonBlob",
        "type": "JsonBlob"
      },
      {
        "name": "MyJsonMetricsBlob",
        "type": "JsonBlob"
      },
      {
        "name": "LinuxCpuEventHub",
        "type": "EventHub",
        "sasURL": "https://youreventhubnamespace.servicebus.windows.net/youreventhubpublisher?sr=https%3a%2f%2fyoureventhubnamespace.servicebus.windows.net%2fyoureventhubpublisher%2f&sig=fake_signature&se=1808096361&skn=yourehpolicy"
      },
      {
        "name": "MyMetricEventHub",
        "type": "EventHub",
        "sasURL": "https://youreventhubnamespace.servicebus.windows.net/youreventhubpublisher?sr=https%3a%2f%2fyoureventhubnamespace.servicebus.windows.net%2fyoureventhubpublisher%2f&sig=yourehpolicy&skn=yourehpolicy"
      },
      {
        "name": "LoggingEventHub",
        "type": "EventHub",
        "sasURL": "https://youreventhubnamespace.servicebus.windows.net/youreventhubpublisher?sr=https%3a%2f%2fyoureventhubnamespace.servicebus.windows.net%2fyoureventhubpublisher%2f&sig=yourehpolicy&se=1808096361&skn=yourehpolicy"
      }
    ]
  }
}

Конфигурация общедоступных параметров

Общедоступные параметры настраивают следующие действия в расширении LAD:

  • Отправка метрик процента процессорного времени и используемого дискового пространства в таблицу WADMetrics*.
  • Отправка сообщений из субъекта системного журнала "user" с уровнем серьезности "info" в таблицу LinuxSyslog*.
  • Отправка строк, добавленных к файлу /var/log/myladtestlog, в таблицу MyLadTestLog.

В каждом случае данные также передаются в следующие места:

  • Хранилище BLOB-объектов Azure. Имя контейнера определено в приемнике JsonBlob.
  • Конечная точка Центров событий, как указано в приемнике EventHub.
{
  "StorageAccount": "yourdiagstgacct",
  "ladCfg": {
    "sampleRateInSeconds": 15,
    "diagnosticMonitorConfiguration": {
      "performanceCounters": {
        "sinks": "MyMetricEventHub,MyJsonMetricsBlob",
        "performanceCounterConfiguration": [
          {
            "unit": "Percent",
            "type": "builtin",
            "counter": "PercentProcessorTime",
            "counterSpecifier": "/builtin/Processor/PercentProcessorTime",
            "annotation": [
              {
                "locale": "en-us",
                "displayName": "cpu percentage guest os"
              }
            ],
            "condition": "IsAggregate=TRUE",
            "class": "Processor"
          },
          {
            "unit": "Bytes",
            "type": "builtin",
            "counter": "UsedSpace",
            "counterSpecifier": "/builtin/FileSystem/UsedSpace",
            "annotation": [
              {
                "locale": "en-us",
                "displayName": "Used disfilesystem used space"
              }
            ],
            "condition": "Name=\"/\"",
            "class": "Filesystem"
          }
        ]
      },
      "metrics": {
        "metricAggregation": [
          {
            "scheduledTransferPeriod": "PT1H"
          },
          {
            "scheduledTransferPeriod": "PT1M"
          }
        ],
        "resourceId": "/subscriptions/your_azure_subscription_id/resourceGroups/your_resource_group_name/providers/Microsoft.Compute/virtualMachines/your_vm_name"
      },
      "eventVolume": "Large",
      "syslogEvents": {
        "sinks": "SyslogJsonBlob,LoggingEventHub",
        "syslogEventConfiguration": {
          "LOG_USER": "LOG_INFO"
        }
      }
    }
  },
  "sinksConfig": {
    "sink": [
      {
        "name": "AzMonSink",
        "type": "AzMonSink",
        "AzureMonitor": {}
      }
    ]
  },
  "fileLogs": [
    {
      "file": "/var/log/myladtestlog",
      "table": "MyLadTestLog",
      "sinks": "FilelogJsonBlob,LoggingEventHub"
    }
  ]
}

Конфигурация resourceId должна соответствовать виртуальной машине или масштабируемой группе виртуальных машин.

  • Функции построения диаграмм и вывода оповещений на основе метрик платформы Azure известен идентификатор resourceId виртуальной машины, на которой вы работаете. Ожидается, что данные для виртуальной машины будут находиться с помощью resourceId ключа подстановки.
  • Если вы используете автомасштабирование Azure, resourceId то в конфигурации автомасштабирования должно соответствовать используемому resourceId LAD.
  • Идентификатор resourceId встраивается в имена BLOB-объектов в формате JSON, которые сохраняются расширением LAD.

Просмотр данных

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

Снимок экрана: страница метрик в выбранном портал Azure и доступности.

Данные performanceCounters всегда хранятся в таблице службы хранилища Azure. Интерфейсы API службы хранилища Azure доступны для множества языков и платформ.

Данные, отправляемые в приемники JsonBlob, сохраняются в BLOB-объектах в учетной записи хранения, указанной в защищенных параметрах. Данные больших двоичных объектов можно использовать в любом Хранилище BLOB-объектов Azure API.

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

На снимке экрана сеанс Обозревателя хранилища Microsoft Azure показаны таблицы и контейнеры службы хранилища Azure, созданные в результате правильной настройки расширения LAD 4.0 в тестовой виртуальной машине. Это изображение не полностью соответствует образцу конфигурации LAD 4.0.

Снимок экрана: Обозреватель службы хранилища Azure.

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

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