Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Внимание
Эта статья ссылается на 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.
- Захватите сбор 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 можно создать необходимый токен общего доступа.
- Выберите учетную запись хранения общего назначения, в которую расширение будет записывать данные.
- В меню слева в разделе Безопасность и сеть выберите подпись для совместного доступа.
- Сделайте выбор, как описано ранее.
- Выберите Создать 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:
Данные performanceCounters
всегда хранятся в таблице службы хранилища Azure. Интерфейсы API службы хранилища Azure доступны для множества языков и платформ.
Данные, отправляемые в приемники JsonBlob
, сохраняются в BLOB-объектах в учетной записи хранения, указанной в защищенных параметрах. Данные Blob можно использовать в любом API для Хранилища Blob Azure.
Для доступа к данным в службе хранилища Azure также можно использовать следующие средства пользовательского интерфейса:
- Обозреватель серверов в Visual Studio.
- Обозреватель службы хранилища Azure
На снимке экрана сеанс Обозревателя хранилища Microsoft Azure показаны таблицы и контейнеры службы хранилища Azure, созданные в результате правильной настройки расширения LAD 4.0 в тестовой виртуальной машине. Это изображение не полностью соответствует образцу конфигурации LAD 4.0.
Сведения об использовании сообщений, публикуемых в конечной точке Центров событий, см. в соответствующей документации по Центрам событий.
Следующие шаги
- Создайте оповещения для собираемых метрик в Azure Monitor.
- Создайте диаграммы мониторинга для метрик.
- Создайте масштабируемый набор виртуальных машин с помощью метрик для управления автомасштабированием.