Интеграция ЕдиногоАгента в службу приложений Azure

Материал из Документация Ключ-АСТРОМ

Служба приложений Azure предоставляет множество различных вариантов размещения для Windows, Linux и контейнеров с общей инфраструктурой ( план службы приложений ) или полностью изолированной и выделенной инфраструктурой ( среда службы приложений Azure ).

Возможности

Интеграция службы приложений с Ключ-АСТРОМ предоставляет следующие возможности:

  • Интеграция ЕдиныйАгент в Windows через расширение для упрощения развертывания
  • Интеграция ЕдиныйАгент в Linux и контейнерах
  • Автоматическая распределенная трассировка и мониторинг для .NET/.NET Core, Java, Node.js, PHP и IIS
  • Расширенный сбор метаданных службы приложений Azure, таких как SKU или Website-Name.
  • Сбор метрик на уровне платформы и дополнительная информация о вашем плане службы приложений с помощью интеграции с Azure Monitor .
  • Захват журналов через пересылку журналов

Ограничения

Поскольку служба приложений Azure — это полностью управляемая платформа размещения, приложения развертываются в изолированной среде, которая не обеспечивает прямого доступа к базовой операционной системе. Интеграция ЕдиныйАгент со службой приложений Azure использует подход только к приложению или универсальной инъекции, что приводит к некоторым отличиям от установки ЕдиныйАгент с полным стеком:

  • Мониторинг ввода-вывода требует, чтобы вы включили интеграцию с Azure Monitor , которая также предоставляет дополнительные сведения о вашем плане службы приложений.
  • Для захвата журналов необходимо включить пересылку журналов.
  • Автоматические обновления ЕдиныйАгент должны запускаться через REST API расширения сайта Ключ-АСТРОМ ЕдиныйАгент.
  • Конфигурация группы хостов недоступна

Установите расширение сайта Ключ-АСТРОМ ЕдиныйАгент

только Windows

Ключ-АСТРОМ предоставляет расширение сайта для установки ЕдиныйАгент в службах приложений Azure в Windows.

Примечание. Информацию о Службе приложений Azure в Linux или контейнерах см. в разделе Интеграция ЕдиныйАгент в Службе приложений Azure в Linux и контейнерах .

Расширение сайта — это собственный механизм расширения, предоставляемый через Kudu , механизм управления развертыванием, стоящий за службами приложений Azure.

Расширение сайта Ключ-АСТРОМ ЕдиныйАгент не включает установщик ЕдиныйАгент. Вместо этого расширение использует Ключ-АСТРОМ REST API для загрузки последней версии установщика из кластера Ключ-АСТРОМ, если не настроена версия ЕдиныйАгент по умолчанию .

Существует несколько способов установить расширение сайта Ключ-АСТРОМ ЕдиныйАгент:

  • Вручную через портал Azure
  • Автоматически, используя шаблон ARM
  • Путем автоматизации установки с помощью пользовательского сценария PowerShell.

Инструкции см. ниже.

Предпосылки

  • Создайте токен PaaS .
  • Определите свой идентификатор среды .
  • При необходимости определите URL-адрес вашего сервера. URL-адрес сервера требуется только в том случае, если вы используете одно из следующих действий:
    • управляемая конечная точка Ключ-АСТРОМ
    • АктивныйШлюз для конечной точки Ключ-АСТРОМ Managed или Ключ-АСТРОМ SaaS (Если вы используете Ключ-АСТРОМ SaaS, URL-адрес автоматически создается из идентификатора среды.)
    • URL управляемого сервера Ключ-АСТРОМ: https://{your-domain}/e/{your-environment-id}/api
    • URL- адрес сервера АктивныйШлюз: https://<your-active-gate-IP-or-hostname>:9999/e/<your-environment-id>/api (порт АктивныйШлюз настраивается)

Примечание. Если вы используете Ключ-АСТРОМ Managed или если трафик вашего кластера должен направляться через АктивныйШлюз , вам необходимо настроить конечную точку API, используемую расширением для загрузки ЕдиныйАгент.

Ручная установка через портал Azure

  1. На портале Azure перейдите в службу приложений, в которую вы хотите добавить расширение ЕдиныйАгент.
  2. В левом меню прокрутите вниз до « Инструменты разработки » и выберите « Расширения» .
  3. Выберите Добавить .
  4. Выберите Выбрать расширение .
  5. Из списка расширений выберите Ключ-АСТРОМ ЕдиныйАгент .
  6. Выберите « Принять юридические условия» , а затем нажмите « ОК» , чтобы принять юридические условия.
  7. Нажмите OK , чтобы добавить расширение.
  8. Выберите Ключ-АСТРОМ ЕдиныйАгент .
  9. Выберите Обзор .
  10. На странице Начать мониторинг экземпляра службы приложений введите идентификатор среды , маркер PaaS и URL-адрес сервера . Подробнее см . в разделе « Предварительные условия ».
  11. по желаниюВы можете выбрать Принимать все самозаверяющие сертификаты SSL, чтобы автоматически принимать все самозаверяющие сертификаты TLS.
  12. Выберите Установить ЕдиныйАгент .
  13. Чтобы проверить статус развертывания, в среде Ключ-АСТРОМ перейдите в раздел « Управление » и выберите « Статус развертывания » .

После завершения установки перезапустите приложение службы приложений, чтобы перезапустить рабочий процесс приложения. После перезапуска ЕдиныйАгент автоматически начинает отслеживать ваше приложение.

Автоматическая установка с использованием шаблона ARM

В качестве альтернативы установке через портал Azure вы можете сделать расширение сайта Ключ-АСТРОМ частью своих шаблонов ARM.

Пример конфигурации:

Ключ-АСТРОМ-ЕдиныйАгент-site-extension.json

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    // WebApp Settings
    "siteName": {
      "type": "string",
      "metadata": {
        "description": "Web app name where you would like to install extension."
      }
    },
    "location": {
      "type": "string",
      "metadata": {
        "description": "Region of your web app."
      }
    },
    "skuCapacity": {
      "type": "int",
      "defaultValue": 1,
      "minValue": 1,
      "metadata": {
        "description": "Describes plan's instance count."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "B1",
      "allowedValues": [
        "B1",
        "B2",
        "B3",
        "D1",
        "F1",
        "I1",
        "I1v2",
        "I2",
        "I2v2",
        "I3",
        "I3v2",
        "P1V2",
        "P1V3",
        "P2V2",
        "P2V3",
        "P3V2",
        "P3V3",
        "PC2",
        "PC3",
        "PC4",
        "S1",
        "S2",
        "S3"
      ],
      "metadata": {
        "description": "Describes plan's pricing tier and instance size. Check details at https://azure.microsoft.com/en-us/pricing/details/app-service/."
      }
    },
    "webAppAlwaysOn": {
      "type": "bool",
      "metadata": {
        "description": "If AlwaysOn isn't set to true, installation of ЕдиныйАгент is triggered on the start-up/first request to Kudu."
      },
      "defaultValue": true
    },
    // Ключ-АСТРОМ ЕдиныйАгент site extension settings
    "environmentID": {
      "type": "string",
      "metadata": {
        "description": "The environment ID."
      }
    },
    "APIToken": {
      "type": "string",
      "metadata": {
        "description": "The PaaS token."
      }
    },
    "APIUrl": {
      "type": "string",
      "metadata": {
        "description": "The server URL, if you want to configure an alternative communication endpoint."
      }
    },
    "SSLMode": {
      "type": "string",
      "metadata": {
        "description": "To automatically accept all self-signed TLS certificates, set the value to all."
      },
      "allowedValues": ["default", "all"],
      "defaultValue": "default"
    },
    "networkZone": {
      "type": "string",
      "metadata": {
        "description": "Your network zone. Set the value you want for your App Service instance. See network zones for more information."
      },
      "defaultValue": ""
    }
  },
  "resources": [
    {
      "apiVersion": "2020-12-01",
      "name": "[parameters('siteName')]",
      "type": "Microsoft.Web/serverfarms",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuName')]",
        "capacity": "[parameters('skuCapacity')]"
      },
      "properties": {
        "name": "[parameters('siteName')]"
      }
    },
    {
      "apiVersion": "2020-12-01",
      "name": "[parameters('siteName')]",
      "type": "Microsoft.Web/sites",
      "properties": {
        "name": "[parameters('siteName')]",
        "siteConfig": {
          "alwaysOn": "[parameters('webAppAlwaysOn')]",
          "appSettings": [
            { "Name": "DT_TENANT", "Value": "[parameters('environmentID')]" },
            { "Name": "DT_API_TOKEN", "Value": "[parameters('APIToken')]" },
            { "Name": "DT_API_URL", "Value": "[parameters('APIUrl')]" },
            { "Name": "DT_SSL_MODE", "Value": "[parameters('SSLMode')]" },
            { "Name": "DT_NETWORK_ZONE", "Value": "[parameters('networkZone')]" }
          ]
        },
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('siteName'))]"
      },
      "dependsOn": ["[concat('Microsoft.Web/serverfarms/', parameters('siteName'))]"],
      "location": "[parameters('location')]",
      "resources": [
        {
          "apiVersion": "2020-12-01",
          "name": "Ключ-АСТРОМ",
          "type": "siteextensions",
          "dependsOn": ["[resourceId('Microsoft.Web/sites/', parameters('siteName'))]"]
        }
      ]
    }
  ],
  "outputs": {}
}
Параметр веб-приложения Требование Описание
Название сайта требуется Имя веб-приложения, на которое вы хотите установить расширение.
расположение требуется Регион вашего веб-приложения. Доступные регионы см . в документации по Azure .
skuЕмкость по желанию Сколько экземпляров вы можете запустить в соответствии с вашим планом.
skuName по желанию Ценовая категория плана и размер экземпляра. Сведения о ценах см . в документации по Azure .
webAppAlwaysOn по желанию Если AlwaysOnне установлено значение true, установка ЕдиныйАгент запускается при запуске (при первом запросе к Kudu).
Параметр Ключ-АСТРОМ Требование Описание
идентификатор среды требуется Идентификатор среды, как описано в Предварительных требованиях .
APIToken требуется Токен PaaS, как описано в предварительных требованиях .
URL-адрес API по желанию URL-адрес сервера, если вы хотите настроить альтернативную конечную точку связи, как описано в разделе Предварительные требования .
SSLMode по желанию Чтобы автоматически принимать все самозаверяющие сертификаты TLS, установите значение all.
networkZone по желанию Ваша сетевая зона. Установите нужное значение для экземпляра службы приложений. Дополнительные сведения см. в разделе « Сетевые зоны» .

Чтобы проверить статус развертывания, в среде Ключ-АСТРОМ перейдите в раздел « Управление » и выберите « Статус развертывания » .

После завершения установки перезапустите приложение службы приложений, чтобы перезапустить рабочий процесс приложения. После перезапуска ЕдиныйАгент автоматически начинает отслеживать ваше приложение.

Автоматизируйте установку с помощью скрипта PowerShell.

Вы можете автоматизировать установку с помощью сценария PowerShell, использующего REST API Kudu , REST API расширения сайта ЕдиныйАгент , а также интерфейс командной строки Azure . Пример реализации доступен в репозитории Ключ-АСТРОМ на GitHub .

Расширение сайта Ключ-АСТРОМ ЕдиныйАгент REST API

Расширение сайта Ключ-АСТРОМ ЕдиныйАгент предоставляет REST API для автоматизации установки, настройки и обновления ЕдиныйАгент.

Корневой URL-адрес для доступа к REST API — https://<Your-AppService-Subdomain>.scm.azurewebsites.net/Ключ-АСТРОМ/, где вам нужно заменить его <Your-AppService-Subdomain>собственным значением. Для аутентификации можно использовать либо учетные данные пользователя для публикации, либо учетные данные на уровне сайта. Подробнее см. в разделе Доступ к сервису Kudu .

Метод Конечная точка Описание Ответ
ПОЛУЧИТЬ /апи/статус Возвращает текущий статус установки ЕдиныйАгент.

Возвращаемое stateполе может быть:

- NotInstalled - Downloading - Installing - Installed - Failed В целях автоматизации используйте поля isAgentInstalled и isUpgradeAvailable , чтобы проверить, установлен ли ЕдиныйАгент и доступно ли обновление.

{"state": "Installed","message": "ЕдиныйАгент installed","version": "1.157","isAgentInstalled": true,"isUpgradeAvailable": false,"isFunction": false,"functionAppSettings": null}
ПОЛУЧИТЬ /апи/настройки Возвращает текущие настройки, включая учетные данные Ключ-АСТРОМ. {"apiUrl": "","apiToken": "<your-api-token>","environmentId": "<your-environment-id>","sslMode": "Default"}
ПОМЕЩАТЬ /апи/настройки Запускает установку ЕдиныйАгент с заданными параметрами. Эти настройки сохраняются только в случае успешного завершения установки.

В полезной нагрузке нужно отправить данные в том же формате, что и полученный GET /Ключ-АСТРОМ/api/settingsзапросом.

Если в запросе состояния доступно обновление, этот PUTзапрос можно использовать для запуска обновления.

Примечания: * Значение apiUrlможно оставить пустым для среды SaaS.

* Для sslMode, если вы хотите проверить HTTPS-соединение, оставьте его как Default. Если вы не хотите проверять соединение HTTPS, установите для него значение AcceptAll.

Пустой ответ

Использование нескольких слотов развертывания

Поскольку слоты развертывания службы приложений Azure рассматриваются как полноценные экземпляры службы приложений, вам необходимо включить расширение сайта для ЕдиныйАгент в каждом слоте развертывания, который вы хотите отслеживать с помощью Ключ-АСТРОМ.

Дополнительные сведения о настройке слотов развертывания см. в документации Microsoft .

Если вы используете параметры приложения для дополнительной настройки определенных параметров ЕдиныйАгент, убедитесь, что дополнительные параметры также применяются к слотам развертывания.

Использование встроенной проверки подлинности и авторизации службы приложений

Если вы используете встроенные возможности проверки подлинности и авторизации службы приложений (также называемые "Easy Auth"), служба приложений запускает дополнительный экземпляр .NET CLR, в результате чего ЕдиныйАгент использует модуль Easy Auth вместо экземпляра вашего приложения в качестве ведущего экземпляра. .

В этом случае, если ваш процесс приложения не инструментирован, вам необходимо установить DT_CLR_INSTANCE_TO_PROFILE=1переменную среды. Вы можете установить эту переменную на портале Azure ( Параметры > Конфигурация > Параметры приложения ).

Переопределить конфигурацию ЕдиныйАгент

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

Параметр Описание
DT_CONNECTION_POINT Разделенный точкой с запятой список конечных точек связи
DT_CLR_INSTANCE_TO_PROFILE Индекс с отсчетом от нуля для инструментария конкретного экземпляра .NET/.NET Core CLR.

Как добавить параметр DT_CONNECTION_POINT на портал Azure

  1. На портале Azure выберите веб-приложение, которое вы хотите отслеживать.
  2. Выберите Настройки > Конфигурация > Настройки приложения .
  3. Выберите Новая настройка приложения .
  4. Введите пару ключ/значение конфигурации, как показано ниже.
    • Имя:DT_CONNECTION_POINT
    • Значение: https://<YOUR_ACTIVEGATE_ADDRESS>:9999/communicationобязательно замените <YOUR_ACTIVEGATE_ADDRESS>на свое значение.
  5. Выберите OK , чтобы сохранить конфигурацию.

Использование статистики приложений

ЕдиныйАгент может не иметь возможности инструментировать ваше приложение .NET/.NET Core, если вы используете Application Insights с включенным инструментарием времени выполнения. Это связано с тем, что ЕдиныйАгент и Application Insights пытаются использовать один и тот же интерфейс для внедрения во время выполнения.

Просмотрите конфигурацию Application Insights для Asp.Net, где вы можете отключить инструментирование среды выполнения или автоматическое инструментирование Asp.Net Core .

Примечание. Хотя вы по-прежнему можете использовать Application Insights в базовом режиме или SDK параллельно с Ключ-АСТРОМ ЕдиныйАгент, обратите внимание, что это может вызвать другие проблемы или значительные затраты на мониторинг ваших приложений и не рекомендуется.

Обновите расширение сайта Ключ-АСТРОМ ЕдиныйАгент.

Чтобы обновить расширение сайта Ключ-АСТРОМ ЕдиныйАгент

  1. На портале Azure перейдите в службу приложений Azure с расширением сайта Ключ-АСТРОМ ЕдиныйАгент.
  2. Если доступно обновление, выберите « Обновить » .

При обновлении расширения с версии 1.x до версии 2.x, если в службе приложений выбран вариант Always On , обновление ЕдиныйАгент запускается либо автоматически, либо при первом запросе к расширению пользовательского интерфейса. Если у вас не выбран параметр « Всегда включено», необходимо перезапустить службу приложений, чтобы запустить процесс расширения.

Примечание. Обновление расширения сайта Ключ-АСТРОМ ЕдиныйАгент не приводит к принудительному обновлению ЕдиныйАгент. Чтобы обновить ЕдиныйАгент, см. Ключ-АСТРОМ ЕдиныйАгент .

Обновление ЕдиныйАгент

Расширение сайта Ключ-АСТРОМ ЕдиныйАгент не предоставляет обновления Ключ-АСТРОМ ЕдиныйАгент автоматически. Чтобы обновить Ключ-АСТРОМ ЕдиныйАгент в службе приложений Azure

  1. На портале Azure перейдите в службу приложений Azure с расширением сайта Ключ-АСТРОМ ЕдиныйАгент.
  2. В разделе Средства разработки выберите Расширения и выберите Ключ-АСТРОМ ЕдиныйАгент .
  3. На странице расширения сайта используйте Обзор , чтобы перейти к сайту расширения.
  4. Если доступно обновление, выберите Обновить ЕдиныйАгент .

Вы можете отслеживать ход выполнения, пока обновление не будет завершено, а затем перезапустить службу приложений, чтобы перезапустить рабочий процесс приложения.

Автоматизируйте обновления ЕдиныйАгент

Для автоматизации обновления ЕдиныйАгент расширение сайта Ключ-АСТРОМ ЕдиныйАгент предоставляет REST API, который можно использовать для запуска обновлений. Подробнее см . в разделе REST API .

Удалите расширение сайта Ключ-АСТРОМ ЕдиныйАгент.

Удаление расширения сайта Ключ-АСТРОМ ЕдиныйАгент также удаляет Ключ-АСТРОМ ЕдиныйАгент. Если приложение запущено во время удаления, расширение сайта распознает работающее приложение и, чтобы предотвратить проблемы с приложением, не удаляет артефакты Ключ-АСТРОМ. Вместо этого удаляется только расширение сайта, включая конфигурацию, так что Ключ-АСТРОМ ЕдиныйАгент больше не будет активен при следующем перезапуске приложения.

Мониторинг потребления

Для службы приложений Azure отслеживание потребления основано на узлах. Дополнительные сведения см. в разделе Мониторинг приложений и инфраструктуры (хост-устройства) .

Устранение неполадок

Маршрут не зарегистрирован для /Ключ-АСТРОМ/ при доступе к расширению сайта

Это сообщение об ошибке появляется, если Kudu не был перезапущен после установки расширения сайта. Вы должны перезапустить приложение.

Существует три варианта перезапуска приложения:

  • Через портал Azure
  • Выбрав « Перезапустить веб-сайт» на консоли Kudu.
  • Убив рабочий процесс SCM в Kudu Process Explorer

Примечание. Если вы включили расширение в нескольких слотах развертывания, это необходимо сделать для каждого слота развертывания .

503 Служба недоступна для веб-приложений и Kudu

Расширение сайта Ключ-АСТРОМ регистрирует модули IIS во время установки. Если регистрация завершена, но фактические файлы модуля IIS отсутствуют (или повреждены), служба приложений может вернуть 503 Service Unavailableсообщение. Кроме того, Kudu AppPool больше не будет доступен, что фактически означает, что вы больше не сможете исправлять свое приложение. Если это произойдет, отправьте запрос в службу поддержки. К счастью, есть способ выйти из такой ситуации, добавив следующий параметр Application Settingsдля эффективной деактивации всех расширений сайта:

WEBSITE_PRIVATE_EXTENSIONS=0

Этот параметр снова даст вам доступ к Kudu. После этого переустановите расширение сайта и установите WEBSITE_PRIVATE_EXTENSIONS=1(или удалите настройку совсем). После перезапуска приложения все должно снова работать, включая мониторинг Ключ-АСТРОМ.

Расширение сайта переопределяет JAVA_OPTS

Вам необходимо переустановить ЕдиныйАгент, если JAVA_OPTSпеременная добавлена ​​или удалена из настроек приложения Azure . Если у вас установлено расширение сайта и вы добавляете или удаляете JAVA_OPTS, это расширение необходимо удалить и перезапустить приложение, прежде чем расширение сайта будет переустановлено.

Значение JAVA_OPTSпеременной в настройках приложения можно изменить без переустановки расширения сайта.

Не удалось установить: не удалось найти файл

Если вы получаете эту ошибку во время установки ЕдиныйАгент, вам необходимо обновить расширение до последней версии.

Расположение файлов журнала

  • Файлы журнала для расширения находятся в папке extensions:D:\home\SiteExtensions\Ключ-АСТРОМ\
  • Файлы журнала ЕдиныйАгент расположены в формате D:\home\SiteExtensions\Ключ-АСТРОМ.Agent\x.xxx.xxx.xxxxxxxx-xxxxxx\log. У вас может быть несколько D:\home\SiteExtensions\Ключ-АСТРОМ.Agent\подкаталогов, вызванных обновлениями агента.