Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Управляемый компонент Admin for Spring предоставляет административный интерфейс для веб-приложений Spring Boot, предоставляющих конечные точки актатора. В качестве управляемого компонента в приложениях контейнеров Azure вы можете легко привязать приложение контейнера к admin for Spring для простой интеграции и управления.
В этом руководстве показано, как создать компонент Admin for Spring Java и привязать его к приложению-контейнеру, чтобы отслеживать приложения Spring и управлять ими с легкостью.
В этом руководстве описано следующее:
- Создайте компонент Admin for Spring Java.
- Привязка приложения-контейнера к компоненту Admin for Spring Java.
Если вы хотите интегрировать admin for Spring с Eureka Server for Spring, см . статью "Интеграция администратора для Spring с Eureka Server для Spring в контейнерных приложениях ".
Внимание
В этом руководстве используются службы, которые могут повлиять на счет Azure. Если вы решите продолжить работу, удалите ресурсы, описанные в этой статье, чтобы избежать непредвиденных выставления счетов.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Если у вас еще нет, его можно создать бесплатно.
- Azure CLI.
Рекомендации
При запуске компонента Admin for Spring в контейнерных приложениях помните о следующих сведениях:
| Товар | Описание |
|---|---|
| Область | Компоненты выполняются в той же среде, что и подключенное приложение контейнера. |
| Масштабирование | Компоненты не могут масштабироваться. Свойства minReplicas масштабирования и maxReplicas имеют значение . 1. |
| Ресурсы | Исправлено выделение ресурсов контейнера для компонентов. Число ядер ЦП равно 0,5, а размер памяти составляет 1 ГБ. |
| Цены | Выставление счетов на основе компонентов зависит от цен на основе потребления. Счета за ресурсы, используемые управляемыми компонентами, выставляются по активным или бездействуемым тарифам в зависимости от использования ресурсов. Вы можете удалить компоненты, которые больше не используются для остановки выставления счетов. |
| Привязка | Приложения-контейнеры подключаются к компоненту через привязку. Привязки внедряют конфигурации в переменные среды приложения-контейнера. После установки привязки приложение-контейнер может считывать значения конфигурации из переменных среды и подключаться к компоненту. |
Настройка
Прежде чем приступить к работе с компонентом Admin for Spring, необходимо создать необходимые ресурсы.
Следующие команды помогут вам создать группу ресурсов и среду приложения контейнера.
Создайте переменные для поддержки конфигурации приложения. Эти значения предоставляются для вас в целях этого урока.
export LOCATION=eastus export RESOURCE_GROUP=my-resource-group export ENVIRONMENT=my-environment export JAVA_COMPONENT_NAME=admin export APP_NAME=sample-admin-client export IMAGE="mcr.microsoft.com/javacomponents/samples/sample-admin-for-spring-client:latest"«Переменная» Description LOCATIONРасположение региона Azure, в котором создается приложение контейнера и компонент Java. ENVIRONMENTИмя среды приложения контейнера для демонстрационного приложения. RESOURCE_GROUPИмя группы ресурсов Azure для демонстрационного приложения. JAVA_COMPONENT_NAMEИмя компонента Java, созданного для приложения контейнера. В этом случае вы создадите компонент Admin for Spring Java. IMAGEОбраз контейнера, используемый в приложении контейнера. Войдите в Azure с помощью Azure CLI.
az loginСоздать группу ресурсов.
az group create \ --name $RESOURCE_GROUP \ --location $LOCATION \ --query "properties.provisioningState"При использовании
--queryпараметра ответ фильтруется до простого сообщения об успешном выполнении или сбое.Создайте среду приложения-контейнера.
az containerapp env create \ --name $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --location $LOCATION
Использование компонентов
Теперь, когда у вас есть существующая среда, вы можете создать приложение-контейнер и привязать его к экземпляру компонента Java компонента Admin for Spring.
Создайте компонент Admin for Spring Java.
az containerapp env java-component admin-for-spring create \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME \ --min-replicas 1 \ --max-replicas 1Обновите компонент Admin for Spring Java.
az containerapp env java-component admin-for-spring update \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME \ --min-replicas 2 \ --max-replicas 2
Привязка приложения-контейнера к компоненту Admin for Spring Java
Создайте приложение-контейнер и привязите его к компоненту Admin for Spring.
az containerapp create \ --name $APP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $ENVIRONMENT \ --image $IMAGE \ --min-replicas 1 \ --max-replicas 1 \ --ingress external \ --target-port 8080 \ --bind $JAVA_COMPONENT_NAME
Операция привязки подключает приложение-контейнер к компоненту Admin for Spring Java. Теперь приложение-контейнер может считывать значения конфигурации из переменных среды, в первую очередь SPRING_BOOT_ADMIN_CLIENT_URL свойство и подключаться к компоненту Admin for Spring.
Привязка также внедряет следующее свойство:
"SPRING_BOOT_ADMIN_CLIENT_INSTANCE_PREFER-IP": "true",
Это свойство указывает, что клиент компонента Admin for Spring должен использовать IP-адрес экземпляра приложения контейнера при подключении к серверу Admin for Spring server.
Необязательно. Отмена привязки приложения-контейнера с помощью компонента Admin for Spring Java
Чтобы удалить привязку из приложения-контейнера, используйте --unbind этот параметр.
az containerapp update \
--name $APP_NAME \
--unbind $JAVA_COMPONENT_NAME \
--resource-group $RESOURCE_GROUP
Просмотр панели мониторинга
Внимание
Чтобы просмотреть панель мониторинга, учетная запись должна иметь по крайней мере Microsoft.App/managedEnvironments/write роль в ресурсе управляемой среды. Вы можете явно назначить OwnerContributor или роль в ресурсе. Вы также можете выполнить действия, чтобы создать определение пользовательской роли и назначить его учетной записи.
Примечание.
Панель мониторинга недоступна в Azure под управлением 21Vianet.
Создайте определение настраиваемой роли.
az role definition create --role-definition '{ "Name": "<ROLE_NAME>", "IsCustom": true, "Description": "Can access managed Java Component dashboards in managed environments", "Actions": [ "Microsoft.App/managedEnvironments/write" ], "AssignableScopes": ["/subscriptions/<SUBSCRIPTION_ID>"] }'Обязательно замените заполнители между
<>квадратными скобками своими значениями.Назначьте настраиваемую роль учетной записи в ресурсе управляемой среды.
Получите идентификатор ресурса управляемой среды:
export ENVIRONMENT_ID=$(az containerapp env show \ --name $ENVIRONMENT --resource-group $RESOURCE_GROUP \ --query id \ --output tsv)Назначьте роль учетной записи.
Перед выполнением этой команды замените заполнитель ( как указано
<>в скобках) идентификатором пользователя или субъекта-службы или именем роли.az role assignment create \ --assignee <USER_OR_SERVICE_PRINCIPAL_ID> \ --role "<ROLE_NAME>" \ --scope $ENVIRONMENT_IDПримечание.
Значение
<USER_OR_SERVICE_PRINCIPAL_ID>должно быть идентификатором, используемым для доступа к портал Azure. Значением<ROLE_NAME>является имя, назначенное на шаге 1.Получите URL-адрес панели мониторинга admin for Spring.
az containerapp env java-component admin-for-spring show \ --environment $ENVIRONMENT \ --resource-group $RESOURCE_GROUP \ --name $JAVA_COMPONENT_NAME \ --query properties.ingress.fqdn \ --output tsvЭта команда возвращает URL-адрес, который можно использовать для доступа к панели мониторинга Admin for Spring. С помощью панели мониторинга вы также можете увидеть приложение контейнера, как показано на следующем снимке экрана.
Очистка ресурсов
Ресурсы, создаваемые в этом руководстве, влияют на ваши расходы в Azure. Если вы не планируете использовать эти службы в долгосрочной перспективе, выполните следующую команду, чтобы удалить все, что вы создали в этом руководстве.
az group delete --resource-group $RESOURCE_GROUP
Dependency
При использовании компонента администратора в собственном приложении контейнера добавьте в файл pom.xml следующую зависимость. Замените номер версии последней версией, доступной в репозитории Maven.
<dependency>
<groupId>de.codecentric</groupId>
<version>3.3.2</version>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
Примечание.
Если вы включите агент Java в приложении-контейнере, запустив следующую команду в Azure CLI, то вам не нужно добавлять зависимость клиента начального клиента администратора Spring Boot.
az containerapp update --enable-java-agent \
--resource-group $RESOURCE_GROUP \
--name $APP_NAME
Настраиваемые свойства
Начиная с Spring Boot 2 конечные точки, отличные health от и info не предоставляются по умолчанию. Их можно предоставить, добавив следующую конфигурацию в файл application.properties .
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
Список разрешенных конфигураций для администратора для Spring
В следующем списке описаны свойства компонента администратора, которые можно настроить для приложения. Дополнительные сведения см. в разделе Spring Boot Admin.
| Имя свойства | Description | Значение по умолчанию |
|---|---|---|
spring.boot.admin.server.enabled |
Включает сервер администрирования Spring Boot. | true |
spring.boot.admin.context-path |
Префикс пути, в котором обслуживаются статические ресурсы и API сервера администрирования. Относительно диспетчера-сервлета. | |
spring.boot.admin.monitor.status-interval |
Интервал времени в миллисекундах для проверки состояния экземпляров. | 10,000ms |
spring.boot.admin.monitor.status-lifetime |
Время существования состояния в миллисекундах. Состояние не обновляется до истечения срока действия последнего состояния. | 10 000 мс |
spring.boot.admin.monitor.info-interval |
Интервал времени в миллисекундах для проверки сведений о экземплярах. | 1m |
spring.boot.admin.monitor.info-lifetime |
Время существования информации в минутах. Сведения не обновляются до тех пор, пока последние сведения не истекли. | 1m |
spring.boot.admin.monitor.default-timeout |
Время ожидания по умолчанию при выполнении запросов. С помощью отдельных значений для определенных конечных точек можно переопределить.spring.boot.admin.monitor.timeout.* |
10,000 |
spring.boot.admin.monitor.timeout.* |
Пары "ключ-значение" с тайм-аутом.endpointId |
Значение по умолчанию default-timeout . |
spring.boot.admin.monitor.default-retries |
Число повторных попыток по умолчанию для неудачных запросов. Запросы на изменение данных (PUT, POST, PATCH, DELETE) не повторяются. С помощью отдельных значений для определенных конечных точек можно переопределить.spring.boot.admin.monitor.retries.* |
0 |
spring.boot.admin.monitor.retries.* |
Пары "ключ-значение" с числом повторных попыток на endpointId. Запросы на изменение данных (PUT, POST, PATCH, DELETE) не повторяются. |
Значение по умолчанию default-retries . |
spring.boot.admin.metadata-keys-to-sanitize |
Значения метаданных для ключей, соответствующих этим шаблонам regex, используемым для очистки во всех выходных данных JSON. Начиная с Spring Boot 3 все значения актатора маскируются по умолчанию. Дополнительные сведения о настройке процесса несанитизации см. в разделе "Санитизация конфиденциальных значений". | ".*password$", ".*secret$", ".*key$", ".*token$", ".*credentials.*", ".*vcap_services$" |
spring.boot.admin.probed-endpoints |
Для клиентских приложений Spring Boot 1.x Spring Boot Admin осуществляет проверку указанных конечных точек с помощью OPTIONS запроса. Если путь отличается от идентификатора, можно указать это значение, id:path например health:ping. |
"health", "env", "metrics", "httptrace:trace", "threaddump:dump", "jolokia", "info", "logfile", "refresh", "flyway", "liquibase", "heapdump", "loggers", "auditevents" |
spring.boot.admin.instance-proxy.ignored-headers |
Заголовки, которые не следует пересылать при выполнении запросов клиентам. | "Cookie", "Set-Cookie", "Authorization" |
spring.boot.admin.ui.title |
Отображаемое название страницы. | "Spring Boot Admin" |
spring.boot.admin.ui.poll-timer.cache |
Длительность опроса в миллисекундах для получения новых данных кэша. | 2500 |
spring.boot.admin.ui.poll-timer.datasource |
Длительность опроса в миллисекундах для получения новых данных источника данных. | 2500 |
spring.boot.admin.ui.poll-timer.gc |
Длительность опроса в миллисекундах для получения новых данных GC. | 2500 |
spring.boot.admin.ui.poll-timer.process |
Длительность опроса в миллисекундах для получения новых данных процесса. | 2500 |
spring.boot.admin.ui.poll-timer.memory |
Длительность опроса в миллисекундах для получения новых данных памяти. | 2500 |
spring.boot.admin.ui.poll-timer.threads |
Длительность опроса в миллисекундах для получения новых потоков. | 2500 |
spring.boot.admin.ui.poll-timer.logfile |
Длительность опроса в миллисекундах для получения новых данных журнала. | 1000 |
spring.boot.admin.ui.enable-toasts |
Включает или отключает всплывающие уведомления. | false |
spring.boot.admin.ui.title |
Значение заголовка окна браузера. | "" |
spring.boot.admin.ui.brand |
HTML-код, отображаемый в заголовке навигации и по умолчанию использует метку администратора Spring Boot. По умолчанию за логотипом администратора Spring Boot следует его имя. | "" |
management.scheme |
Значение, заменяемое в URL-адресе службы, используемом для доступа к конечным точкам актатора. | |
management.address |
Значение, заменяемое в URL-адресе службы, используемом для доступа к конечным точкам актатора. | |
management.port |
Значение, заменяемое в URL-адресе службы, используемом для доступа к конечным точкам актатора. | |
management.context-path |
Значение, добавляемое к URL-адресу службы, используемому для доступа к конечным точкам актатора. | ${spring.boot.admin.discovery.converter.management-context-path} |
health.path |
Значение, добавляемое к URL-адресу службы, используемому для проверки работоспособности. Игнорируется параметром EurekaServiceInstanceConverter. |
${spring.boot.admin.discovery.converter.health-endpoint} |
spring.boot.admin.discovery.enabled |
DiscoveryClient Включает поддержку сервера администрирования. |
true |
spring.boot.admin.discovery.converter.management-context-path |
Значение, которое добавляется в service-url обнаруженную службу при management-url преобразовании DefaultServiceInstanceConverterзначения. |
/actuator |
spring.boot.admin.discovery.converter.health-endpoint-path |
Значение, которое добавляется в management-url обнаруженную службу при health-url преобразовании DefaultServiceInstanceConverterзначения. |
"health" |
spring.boot.admin.discovery.ignored-services |
Службы, которые игнорируются при использовании обнаружения и не зарегистрированы в качестве приложения. Поддерживает простые шаблоны, такие как "foo*", "*bar"и "foo*bar*". |
|
spring.boot.admin.discovery.services |
Службы, включенные при использовании обнаружения и регистрации в качестве приложения. Поддерживает простые шаблоны, такие как "foo*", "*bar"и "foo*bar*". |
"*" |
spring.boot.admin.discovery.ignored-instances-metadata |
Службы игнорируются, если они содержат по крайней мере один элемент метаданных, соответствующий шаблонам в этом списке. Поддерживает такие шаблоны, как "discoverable=false". |
|
spring.boot.admin.discovery.instances-metadata |
Службы включаются, если они содержат по крайней мере один элемент метаданных, соответствующий шаблонам в списке. Поддерживает такие шаблоны, как "discoverable=true". |
Распространенные способы конфигурирования
- Связанные с ведением журнала конфигурации:
- logging.level.*
- logging.group.*
- Любые другие конфигурации в
logging.*пространстве имен. Например, не используйтеlogging.fileдля записи файлов журналов.
Ограничения
- Панель мониторинга администрирования Spring Boot недоступна в Azure под управлением 21Vianet.
Связанный контент
Интеграция управляемого администратора для Spring с Eureka Server для Spring