Отслеживание метрик и журналов с помощью диагностического расширения для Linux 4.0
Внимание
Эта статья ссылается на CentOS, дистрибутив Linux, который является состоянием "Конец жизни" (EOL). Обратите внимание на использование и план соответствующим образом. Дополнительные сведения см. в руководстве centOS End Of Life.
В этой статье описываются последние версии расширения диагностики Linux (LAD).
Внимание
Сведения о версии 3.x см. в статье Использование диагностического расширения Linux 3.0 для мониторинга метрик и журналов. Сведения о версии 2.3 и более ранних версиях см. в статье Мониторинг производительности и диагностических данных виртуальной машины Linux.
Расширение диагностики 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
.
Выполните следующую команду, чтобы удалить все существующие псевдонимы.
sudo update-alternatives --remove-all python
Выполните следующую команду, чтобы создать новый псевдоним.
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-адреса:
- Выберите учетную запись хранения общего назначения, в которую расширение будет записывать данные.
- В меню слева в разделе "Безопасность и сеть" выберите подписанный URL-адрес.
- Выберите требуемые элементы, как описано ранее.
- Выберите Создать 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 всегда записывает данные в таблицу с именем 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
является источником метрик, наиболее интересных широкому кругу пользователей. Эти метрики делятся на пять основных классов:
- Процессор
- Память
- 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:
Данные performanceCounters
всегда хранятся в таблице службы хранилища Azure. Интерфейсы API службы хранилища Azure доступны для множества языков и платформ.
Данные, отправляемые в приемники JsonBlob
, сохраняются в BLOB-объектах в учетной записи хранения, указанной в защищенных параметрах. Данные больших двоичных объектов можно использовать в любом Хранилище BLOB-объектов Azure API.
Для доступа к данным в службе хранилища Azure также можно использовать следующие средства пользовательского интерфейса:
- Обозреватель серверов в Visual Studio.
- Обозреватель службы хранилища Azure
На снимке экрана сеанс Обозревателя хранилища Microsoft Azure показаны таблицы и контейнеры службы хранилища Azure, созданные в результате правильной настройки расширения LAD 4.0 в тестовой виртуальной машине. Это изображение не полностью соответствует образцу конфигурации LAD 4.0.
Сведения об использовании сообщений, публикуемых в конечной точке Центров событий, см. в соответствующей документации по Центрам событий.
Следующие шаги
- Создайте оповещения для собираемых метрик в Azure Monitor.
- Создайте диаграммы мониторинга для метрик.
- Создайте масштабируемый набор виртуальных машин с помощью метрик для управления автомасштабированием.