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


Использование диагностического расширения 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.

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

  1. Обозреватель сервера Visual Studio. Войдите в свою учетную запись хранения. Примерно через 5 минут после запуска виртуальной машины должны появиться четыре стандартные таблицы: LinuxCpu, LinuxDisk, LinuxMemory и Linuxsyslog. Дважды щелкните имя таблицы, чтобы просмотреть данные.
  2. Обозреватель службы хранилища Azure.

Изображение

Если вы включили fileCfg или perfCfg (как описано в сценарии 2 и 3), то можете использовать обозреватель сервера Visual Studio и обозреватель хранилищ Azure для просмотра данных не по умолчанию.

Известные проблемы

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