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


Использование расширения диагностики Linux для мониторинга производительности и диагностических данных виртуальной машины Linux

Это важно

1 марта 2023 г. мы прекратим поддержку классических виртуальных машин.

Если вы используете ресурсы IaaS из ASM, выполните миграцию к 1 марта 2023 г. Рекомендуем осуществить этот переход как можно раньше, чтобы воспользоваться различными улучшенными функциями в Azure Resource Manager.

Дополнительные сведения см. в статье "Перенос ресурсов IaaS в Azure Resource Manager к 1 марта 2023 г.".

В этом документе описана версия 2.3 расширения диагностики Linux.

Это важно

Эта версия устарела, и она может быть не опубликована в любое время после 30 июня 2018 года. Он был заменен версией 3.0. Дополнительные сведения см. в документации по расширению диагностики Linux версии 3.0.

Введение

(Примечание. Расширение диагностики Linux открыто на сайте GitHub , где впервые публикуется самая текущая информация о расширении. Вам может потребоваться сначала проверить страницу GitHub .)

Расширение диагностики Linux помогает пользователю отслеживать виртуальные машины Linux, работающие в Microsoft Azure. Оно предоставляет следующие возможности.

  • Собирает и отправляет сведения о производительности системы из виртуальной машины Linux в таблицу хранилища пользователя, включая диагностические и системные сведения.
  • Позволяет пользователям настраивать метрики данных, которые будут собираться и отправляться.
  • Позволяет пользователям отправлять указанные файлы журналов в определенную таблицу хранилища.

В текущей версии 2.3 данные включают:

  • Все журналы Linux Rsyslog, включая системные, безопасность и журналы приложений.
  • Все системные данные, указанные на сайте System Center Cross Platform Solutions.
  • Файлы журнала, указанные пользователем.

Это расширение работает как с классическими, так и с моделями развертывания Resource Manager.

Текущая версия расширения и отмена устаревших версий

Последняя версия расширения — 2.3, а все старые версии (2.0, 2.1 и 2.2) будут нерекомендуемыми и не опубликованы в конце этого года (2017). Если вы установили расширение диагностики Linux с отключенным автоматическим дополнительным обновлением версии, настоятельно рекомендуется удалить расширение и переустановить его с включенным автоматическим обновлением дополнительных версий. На классических виртуальных машинах (ASM) это можно сделать, указав "2.*" в качестве версии, если вы устанавливаете расширение через Azure XPLAT CLI или PowerShell. На виртуальных машинах ARM это можно сделать, включая "autoUpgradeMinorVersion": true" в шаблоне развертывания виртуальной машины. Кроме того, любая новая установка расширения должна включать параметр автоматического обновления дополнительных версий.

Включение расширения

Это расширение можно включить с помощью портала Azure, Azure PowerShell или скриптов Azure CLI.

Чтобы просмотреть и настроить данные системы и производительности непосредственно на портале Azure, выполните следующие действия в блоге Azure.

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

Обратите внимание, что описанные здесь методы конфигурации не будут работать на портале Azure. Чтобы просмотреть и настроить данные системы и производительности непосредственно на портале Azure, расширение должно быть включено через портал.

Предпосылки

  • Агент Linux Azure версии 2.0.6 или более поздней версии.

    Обратите внимание, что большинство образов коллекции виртуальных машин Azure Linux включают версию 2.0.6 или более позднюю. Вы можете запустить WAAgent -version , чтобы подтвердить, какая версия установлена на виртуальной машине. Если виртуальная машина работает с версией ранее 2.0.6, вы можете выполнить на сайте GitHub , чтобы обновить его.

  • Azure CLI. Следуйте инструкциям по установке интерфейса командной строки, чтобы настроить среду Azure CLI на компьютере. После установки Azure CLI можно использовать команду Azure из интерфейса командной строки (Bash, терминала или командной строки) для доступа к командам Azure CLI. Рассмотрим пример.

    • Запустите azure vm extension set --help для получения подробной справочной информации.
    • Запустите azure login, чтобы войти в Azure.
    • Запустите список виртуальных машин Azure , чтобы перечислить все виртуальные машины, которые есть в Azure.
  • Учетная запись для сохранения данных. Вам потребуется имя учетной записи хранения, созданной ранее, и ключ доступа для отправки данных в хранилище.

Использование команды Azure CLI для включения расширения диагностики Linux

Сценарий 1. Включение расширения с набором данных по умолчанию

В версии 2.3 или более поздней версии данные по умолчанию, которые будут собираться, включают:

  • Все сведения Rsyslog (включая системные, безопасность и журналы приложений).
  • Основной набор базовых системных данных. Обратите внимание, что полный набор данных описан на сайте System Center Cross Platform Solutions. Если вы хотите включить дополнительные данные, перейдите к инструкциям в сценариях 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_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_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json.

Просмотрите ваши данные

Данные о производительности и диагностике хранятся в таблице службы хранилища Azure. Узнайте , как использовать хранилище таблиц Azure из Ruby , чтобы узнать, как получить доступ к данным в таблице хранилища с помощью скриптов Azure CLI.

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

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

изображение

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

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

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