Spring Boot Actuator: мониторинг и управление по HTTP

Если вы разрабатываете веб-приложение, Spring Boot Actuator автоматически настраивает все включенные конечные точки для показа через HTTP. Соглашение по умолчанию заключается в использовании идентификатора конечной точки с префиксом /actuator в качестве пути URL. Например, health показывается как /actuator/health.

Actuator изначально поддерживается Spring MVC, Spring WebFlux и Jersey. Если доступны как Jersey, так и Spring MVC, будет использоваться Spring MVC.

Jackson является обязательной зависимостью для получения правильных ответов JSON.

Настройка путей конечных точек управления

Иногда полезно настроить префикс для конечных точек управления (management endpoints). Например, ваше приложение может уже использовать /actuator для других целей. Вы можете использовать свойство management.endpoints.web.base-path, чтобы изменить префикс для конечной точки management, как показано в следующем примере:

management.endpoints.web.base-path=/manage

В предыдущем примере application.properties конечная точка изменяется с /actuator/{id} на /manage/{id} (например, /manage/info).

Если порт управления не был настроен для предоставления конечных точек с использованием другого порта HTTP, management.endpoints.web.base-path относится к server.servlet.context-path. Если настроен файл management.server.port, файл management.endpoints.web.base-path относится к management.server.servlet.context-path.

Если вы хотите сопоставить конечные точки с другим путем, вы можете использовать свойство management.endpoints.web.path-mapping.

Следующий пример перераспределяет /actuator/health в /healthcheck:
application.properties

management.endpoints.web.base-path=/
management.endpoints.web.path-mapping.health=healthcheck

Настройка порта сервера управления

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

Вы можете установить свойство management.server.port для изменения порта HTTP, как показано в следующем примере:

management.server.port=8081

В Cloud Foundry приложения по умолчанию получают запросы только через порт 8080 для маршрутизации HTTP и TCP. Если вы хотите использовать пользовательский порт управления в Cloud Foundry, вам нужно будет явно настроить маршруты приложения для перенаправления трафика на пользовательский порт.

Настройка специфичного для управления SSL

При настройке на использование пользовательского порта сервер управления также может быть настроен со своим собственным SSL с помощью различных свойств management.server.ssl.*. Например, это позволяет серверу управления быть доступным по HTTP, в то время как основное приложение использует HTTPS, как показано в следующих настройках свойств:

server.port=8443
server.ssl.enabled=true
server.ssl.key-store=classpath:store.jks
server.ssl.key-password=secret
management.server.port=8080
management.server.ssl.enabled=false

В качестве альтернативы и главный сервер, и сервер управления могут использовать SSL, но с разными хранилищами ключей, как показано ниже:

server.port=8443
server.ssl.enabled=true
server.ssl.key-store=classpath:main.jks
server.ssl.key-password=secret
management.server.port=8080
management.server.ssl.enabled=true
management.server.ssl.key-store=classpath:management.jks
management.server.ssl.key-password=secret

Настройка адреса сервера управления

Вы можете настроить адрес, по которому доступны конечные точки управления, установив свойство management.server.address. Это может быть полезно, если вы хотите прослушивать только внутреннюю сеть или сеть, обращенную к оператору, или прослушивать только соединения с локального хоста.

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

В следующем примере application.properties не разрешает подключения удаленного управления:

management.server.port=8081
management.server.address=127.0.0.1

Отключение конечных точек HTTP

Если вы не хотите предоставлять конечные точки через HTTP, вы можете установить порт управления равным -1, как показано в следующем примере:

management.server.port=-1

Это может быть достигнуто с помощью свойства management.endpoints.web.exposure.exclude, как показано в следующем примере:

management.endpoints.web.exposure.exclude=*


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки