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


Отслеживание метрик и журналов с помощью диагностического расширения для 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.
  • Захватите сбор syslog по умолчанию, включенный в 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, на виртуальных машинах необходимо включить системное назначенное удостоверение для генерации маркеров аутентификации управляемого удостоверения службы (MSI). Эти параметры можно добавить во время создания виртуальной машины или после него. Инструкции по использованию портала 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 можно создать необходимый токен общего доступа.

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

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

Скопируйте созданную подписанную строку доступа в поле 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": {}
}
Элемент Значение
объем события Определяет количество разделов, создаваемых в таблице хранилища (необязательно). Значение должно быть равно "Large", "Medium" или "Small". Значение по умолчанию — "Medium".
частотаСэмплированияВСекундах (sampleRateInSeconds) (Необязательно) Интервал по умолчанию между коллекцией необработанных, то есть нерегрегированных метрик. Минимальная поддерживаемая частота выборки — 15 секунд. Значение по умолчанию — 15.

Метрики

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

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

счетчики производительности

"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 (общедоступные параметры).
тип Определяет фактический поставщик метрики.
класс Вместе с "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 Storage. Эти же данные могут записываться в BLOB-объекты JSON и (или) в Центры событий. Вы не можете отключить хранение данных в таблицу.

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

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

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

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

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

события syslog

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

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

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

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

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

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 является источником метрик, наиболее интересных широкому кругу пользователей. Эти метрики делятся на пять основных классов:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечание.

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

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

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

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

  • Учетная запись для хранения данных.
  • Соответствующий токен подписи для общего доступа к учетной записи.
  • Несколько приемников: 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*.
  • Загрузить сообщения из источника syslog "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 можно использовать в любом API для Хранилища Blob Azure.

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

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

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

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

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