Использование диагностического расширения Linux для мониторинга данных о состоянии и производительности виртуальных машин под управлением Linux
Важно!
1 марта 2023 г. мы прекратим поддержку классических виртуальных машин.
Если вы используете ресурсы IaaS из ASM, выполните миграцию до 1 марта 2023 г. Рекомендуем осуществить этот переход как можно раньше, чтобы воспользоваться различными улучшенными функциями в Azure Resource Manager.
Дополнительные сведения см. в статье Перенесите свои ресурсы IaaS в Azure Resource Manager до 1 марта 2023 г.
В этом документе описывается версия 2.3 диагностического расширения Linux.
Важно!
Эта версия не рекомендуется к использованию, и ее публикация может быть отменена в любой момент после 30 июня 2018 г. Она была заменена версией 3.0. Дополнительные сведения см. в документации к версии 3.0 диагностического расширения Linux.
Введение
(Примечание. Расширение диагностики Linux открыто на сайте GitHub , где впервые публикуется самая актуальная информация о расширении. Возможно, сначала потребуется проверить страницу GitHub .)
Диагностическое расширение Linux помогает отслеживать состояние виртуальных машин Linux, работающих на платформе Microsoft Azure. Оно предоставляет следующие возможности.
- Собирает и передает сведения о производительности системы из виртуальной машины Linux в таблицу хранилища пользователя, включая данные системного журнала и диагностики.
- Позволяет пользователям настраивать метрики данных, данные которых будут собираться и передаваться.
- Позволяет пользователям передавать определенные файлы журналов в отдельную таблицу хранилища.
В текущей версии (2.3) данные включают в себя:
- все журналы Rsyslog Linux, включая системный журнал, журналы безопасности и приложений;
- все системные данные, которые указаны на сайте кроссплатформенных решений System Center;
- файлы журналов, выбранные пользователем.
Это расширение работает как с классической моделью развертывания, так и с моделью развертывания с помощью Resource Manager.
Текущая версия расширения и нерекомендуемые старые версии
Последняя версия расширения — 2.3. Все предыдущие версии (2.0, 2.1 и 2.2) станут нерекомендуемыми, и их публикация будет отменена к концу 2017 года. Если вы установили диагностическое расширение Linux при отключенном параметре автоматического обновления дополнительного номера версии, настоятельно рекомендуется удалить расширение и переустановить его при включенном параметре. На классических виртуальных машинах (ASM) для этого нужно указать значение "2.\*" для версии при установке расширения с помощью кроссплатформенного интерфейса командной строки Azure или Powershell. На виртуальных машинах ARM для этого необходимо добавить параметр autoUpgradeMinorVersion со значением true в шаблон развертывания виртуальной машины. Во время последующих установок расширения также должен быть включен параметр автоматического обновления дополнительного номера версии.
Включение расширения
Расширение можно включить с помощью портала Azure, Azure PowerShell или сценариев интерфейса командной строки Azure.
Чтобы просмотреть и настроить данные о системе и производительности непосредственно на портале Azure, выполните эти инструкции в блоге Azure.
В данной статье рассматривается включение и настройка расширения с помощью команд Azure CLI. Это позволит считывать и просматривать данные непосредственно из таблицы хранилища.
Обратите внимание, что описанные ниже методы настройки не подходят для портала Azure. Чтобы просмотреть и настроить данные о системе и производительности непосредственно на портале Azure, это расширение необходимо включить с помощью портала Azure.
Предварительные требования
Агент Linux для Azure 2.0.6 или более поздней версии.
Обратите внимание на то, что большинство образов в коллекции виртуальных машин Azure на базе Linux включает версию 2.0.6 или более позднюю. Узнать, какая версия установлена на виртуальной машине, можно с помощью команды WAAgent -version . Если виртуальная машина работает под управлением версии, предшествующей версии 2.0.6, вы можете выполнить на сайте GitHub , чтобы обновить ее.
Azure CLI. Чтобы настроить среду интерфейса командной строки Azure на компьютере, воспользуйтесь этим руководством . После установки интерфейса командной строки Azure для доступа к его командам можно использовать команду azure в интерфейсе командной строки (Bash, терминал, командная строка). Вот несколько примеров.
- Выполните команду azure vm extension set --help , чтобы получить более подробные справочные сведения.
- Выполните команду azure login для входа Azure.
- Выполните команду azure vm list , чтобы вывести список своих виртуальных машин в Azure.
Учетная запись хранения для хранения данных. Для передачи данных в хранилище вам потребуется имя предварительно созданной учетной записи хранения и ключ доступа.
Включение диагностического расширения Linux с помощью команды Azure CLI
Сценарий 1. Включение расширения с набором данных по умолчанию
В версии 2.3 и выше по умолчанию собираются следующие данные:
- все данные Rsyslog (включая системный журнал, журналы безопасности и приложений);
- базовый набор основных данных о системе. Обратите внимание, что полный набор данных описан на сайте кроссплатформенных решений System Center. Если вы хотите включить в набор дополнительные данные, выполните действия, описанные в сценариях 2 и 3.
Шаг 1. Создайте файл PrivateConfig.json со следующим содержимым.
{
"storageAccountName" : "the storage account to receive data",
"storageAccountKey" : "the key of the account"
}
Шаг 2. Запустите набор расширений виртуальной машины Azure vm_name LinuxDiagnostic Microsoft.OSTCExtensions 2.* --private-config-path PrivateConfig.json.
Сценарий 2. Настройка метрик системного монитора
В этом разделе описывается настройка таблицы данных о состоянии и производительности.
Шаг 1. Создайте файл с именем PrivateConfig.json и содержимым, как описано в сценарии 1. Создайте также файл PublicConfig.json. Укажите, какие данные вы хотите собирать.
Со всеми поддерживаемыми поставщиками и переменными можно ознакомиться на сайте кроссплатформенных решений System Center. Можно создать несколько запросов и сохранять данные в разные таблицы, добавив дополнительные запросы в сценарий.
По умолчанию данные Rsyslog собираются всегда.
{
"perfCfg":
[
{
"query" : "SELECT PercentAvailableMemory, AvailableMemory, UsedMemory ,PercentUsedSwap FROM SCX_MemoryStatisticalInformation",
"table" : "LinuxMemory"
}
]
}
Шаг 2. Выполните команду azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json.
Сценарий 3. Передача файлов журнала
В этом разделе описан порядок сбора и передачи определенных файлов журналов в учетную запись хранения. Нужно указать путь к файлу журнала и имя таблицы, в которой вы хотите хранить журнал. Вы можете создать несколько файлов журналов, добавив в сценарий несколько записей для файлов или таблиц.
Шаг 1. Создайте файл с именем PrivateConfig.json и содержимым, как описано в сценарии 1. Затем создайте еще один файл PublicConfig.json со следующим содержимым.
{
"fileCfg" :
[
{
"file" : "/var/log/mysql.err",
"table" : "mysqlerr"
}
]
}
Шаг 2. Выполните команду azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json
.
Обратите внимание, что с этим параметром для расширений версий ниже 2.3 все записи журналов в /var/log/mysql.err
могут дублироваться в /var/log/syslog
(или в /var/log/messages
, в зависимости от дистрибутивов Linux). Если вы хотите избежать повторяющихся записей, можно исключить запись журналов для устройства local6
в конфигурации rsyslog. Файл, который нужно изменить, отличается в зависимости от дистрибутива Linux. В системе Ubuntu 14.04 это файл /etc/rsyslog.d/50-default.conf
. Вы можете заменить строку *.*;auth,authpriv.none -/var/log/syslog
на *.*;auth,authpriv,local6.none -/var/log/syslog
. Эта проблема устранена в последнем выпуске исправления 2.3 (2.3.9007). Поэтому, если вы используете расширение версии 2.3, то данная проблема не должна возникнуть. Если она не исчезла даже после перезапуска виртуальной машины, свяжитесь с нами и помогите определить причину того, почему последняя версия исправления не была установлена автоматически.
Сценарий 4. Запрет расширению на сбор журналов
В этом разделе описывается, как остановить сбор журналов расширением. Обратите внимание, что процесс мониторинга агента останется запущенным и продолжит работу даже после выполнения этой перенастройки. Если вы хотите полностью остановить процесс агента мониторинга, это можно сделать, отключив расширение. Команда для отключения расширения — azure vm extension set --disable <vm_name> LinuxDiagnostic Microsoft.OSTCExtensions '2.*'
.
Шаг 1. Создайте файл с именем PrivateConfig.json и содержимым, как описано в сценарии 1. Создайте еще один файл PublicConfig.json со следующим содержимым.
{
"perfCfg" : [],
"enableSyslog" : "false"
}
Шаг 2. Выполните команду azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json.
Просмотр данных
Данные о состоянии и производительности хранятся в таблице хранилища Azure. Ознакомьтесь с руководством Использование табличного хранилища Azure в Ruby , чтобы узнать о способах доступа к данным в таблице хранилища с помощью сценариев интерфейса командной строки Azure.
Для доступа к данным также можно использовать следующие инструменты.
- Обозреватель сервера Visual Studio. Войдите в свою учетную запись хранения. Примерно через 5 минут после запуска виртуальной машины должны появиться четыре стандартные таблицы: LinuxCpu, LinuxDisk, LinuxMemory и Linuxsyslog. Дважды щелкните имя таблицы, чтобы просмотреть данные.
- Обозреватель службы хранилища Azure.
Если вы включили fileCfg или perfCfg (как описано в сценарии 2 и 3), то можете использовать обозреватель сервера Visual Studio и обозреватель хранилищ Azure для просмотра данных не по умолчанию.
Известные проблемы
- Доступ к данным Rsyslog и файлам журнала, указанным клиентом, можно получить только с помощью скриптов.