Table des matières
1. Introduction au point de terminaison Spring Boot Actuator
1.1 Qu'est-ce que le point de terminaison Actuator
1.2 Le rôle et la fonction du point de terminaison
1.3 La configuration par défaut du point de terminaison Actuator
2. Explication détaillée des points de terminaison intégrés
2.1 /actuator/health
2.2 /actuator/info
2.3 /actuator/metrics
2.4 /actuator/beans
2.5 /actuator/env
2.6 /actuator/loggers
2.7 /actuator/shutdown
2.8 Autres points de terminaison
三、端点配置与定制
3.1 控制端点访问权限
3.2 端点暴露策略
3.3 修改端点的 URL 路径
3.4 端点响应内容定制
四、创建自定义端点
4.1 自定义端点的实现方式
4.2 注册和配置自定义端点
五、端点数据监控与可视化
5.1 使用JMX监控端点
5.2 使用Prometheus和Grafana进行可视化监控
5.3 集成其他监控工具
六、总结
6.1 Spring Boot Actuator端点的优势
6.2 注意事项和最佳实践
6.3 对未来发展的展望
Maison Opération et maintenance Sécurité Spring Boot Actuator Endpoint révélé : surveillez facilement votre application

Spring Boot Actuator Endpoint révélé : surveillez facilement votre application

Jun 09, 2023 pm 10:56 PM
运维 端点

1. Introduction au point de terminaison Spring Boot Actuator

1.1 Qu'est-ce que le point de terminaison Actuator

Spring Boot Actuator est un sous-projet utilisé pour surveiller et gérer les applications Spring Boot. Il fournit une série de points de terminaison intégrés (Endpoints) qui peuvent être utilisés pour afficher l'état, l'état de fonctionnement et les indicateurs de fonctionnement de l'application. Les points de terminaison des actionneurs peuvent être exposés à des systèmes externes sous HTTP, JMX ou sous d'autres formes pour permettre au personnel d'exploitation et de maintenance de surveiller, diagnostiquer et gérer les applications.

1.2 Le rôle et la fonction du point de terminaison

Le point de terminaison de l'actionneur est principalement utilisé pour implémenter les fonctions suivantes :

  • Assurer le contrôle de santé de l'application, y compris la connexion à la base de données, le cache, la file d'attente des messages, etc.
  • Collectez les données métriques de l'application, telles que l'utilisation de la mémoire, l'état du GC, l'état du thread, etc.
  • Affichez les informations de configuration de l'application, y compris les variables d'environnement, les propriétés du système, les propriétés du fichier de configuration, etc.
  • Gérer les journaux de l'application, y compris la visualisation Et modifier dynamiquement le niveau de journalisation
  • Obtenir les informations Spring Bean de l'application, ainsi que les métadonnées de l'application, etc.
  • Fournir la fonction d'arrêt de l'application, etc. .

1.3 La configuration par défaut du point de terminaison Actuator

Spring Boot Actuator fournit par défaut une série de points de terminaison intégrés, accessibles directement dans l'environnement de développement. Cependant, dans l'environnement de production, le contrôle des autorisations et. la configuration de la politique d’exposition des points finaux peut être requise. Les points de terminaison de l'actionneur peuvent être configurés via les fichiers application.properties ou application.yml. Par exemple, vous pouvez contrôler quels points de terminaison sont exposés à un accès externe en configurant
management.endpoints.web.exposure.include, ou modifier le chemin URL du point de terminaison via management.endpoints.web.base-path.

2. Explication détaillée des points de terminaison intégrés

Spring Boot Actuator fournit de nombreux points de terminaison intégrés pour visualiser et gérer différents aspects de l'application. Ce qui suit est une introduction détaillée à certains points de terminaison couramment utilisés :

2.1 /actuator/health

Ce point de terminaison est utilisé pour afficher l'état de santé de l'application. Il vérifie l'état de divers composants, tels que les connexions aux bases de données, les caches, les files d'attente de messages, etc. L'état renvoyé inclut UP (normal), DOWN (anormal), OUT_OF_SERVICE (en maintenance), etc.

2.2 /actuator/info

Ce point de terminaison est utilisé pour afficher des informations de base de l'application, telles que le numéro de version, l'heure de construction, etc. Ces informations proviennent généralement des fichiers de configuration de l'application ou du système de build.

2.3 /actuator/metrics

Ce point de terminaison est utilisé pour afficher les données métriques de l'application. Il collecte des données sur l'utilisation de la mémoire, le GC, l'état des threads, etc. Les détails d'une métrique spécifique peuvent être visualisés en ajoutant des paramètres, par exemple :

/actuator/metrics/jvm.memory.used。
Copier après la connexion

2.4 /actuator/beans

Ce point de terminaison est utilisé pour afficher tous les Spring Beans dans l'application. Il affiche des informations telles que le nom, le type, la portée et l'ApplicationContext du Bean auquel il appartient.

2.5 /actuator/env

Ce point de terminaison est utilisé pour afficher les informations d'environnement de l'application, y compris les variables d'environnement, les propriétés système, les propriétés du fichier de configuration, etc. Vous pouvez afficher la valeur d'une propriété spécifique en ajoutant un paramètre, par exemple : /actuator/env/server.port.

2.6 /actuator/loggers

Ce point de terminaison est utilisé pour afficher et gérer les journaux de l'application. Il affiche les noms et les niveaux de journalisation de tous les enregistreurs de l'application actuelle. En envoyant une requête POST, vous pouvez également modifier dynamiquement le niveau de journalisation d'un Logger.

2.7 /actuator/shutdown

Ce point de terminaison est utilisé pour arrêter l'application. Il doit configurer
management.endpoint.shutdown.enabled sur true pour l'activer. Dans un environnement de production, il est généralement nécessaire de contrôler les autorisations sur ce point de terminaison pour éviter toute utilisation abusive.

2.8 Autres points de terminaison

En plus des points de terminaison communs ci-dessus, Spring Boot Actuator fournit également d'autres points de terminaison, tels que :

  • /actuator/auditevents:查看应用程序的审计事件
  • /actuator/threaddump:获取应用程序的线程转储信息
  • /actuator/heapdump:获取应用程序的堆转储信息
  • /actuator/mappings:查看应用程序的 URL 映射信息

三、端点配置与定制

在实际项目中,我们可能需要对 Spring Boot Actuator 的端点进行一些定制,以满足特定的需求。本节将介绍如何对端点进行配置和定制。

3.1 控制端点访问权限

访问端点可能涉及敏感信息,我们需要对端点进行权限控制。可以通过集成 Spring Security 或自定义拦截器实现访问权限控制。例如,仅允许具有 ADMIN 角色的用户访问 /actuator/shutdown 端点。

3.2 端点暴露策略

可以通过management.endpoints.web.exposure.include 和 management.endpoints.web.exposure.exclude 配置项来控制哪些端点应该被暴露。默认情况下,仅暴露 /actuator/health 和 /actuator/info 端点。例如,暴露所有端点:

management.endpoints.web.exposure.include=*
Copier après la connexion

或者仅暴露某些特定端点:

management.endpoints.web.exposure.include=health,info,metrics,env
Copier après la connexion

3.3 修改端点的 URL 路径

默认情况下,所有端点的路径都是以 /actuator 开头的。我们可以通过
management.endpoints.web.base-path 配置项修改这个前缀。例如,将其更改为 /admin:

management.endpoints.web.base-path=/admin
Copier après la connexion

3.4 端点响应内容定制

默认情况下,某些端点的响应内容可能不包含我们关心的所有信息。可以通过实现自定义的 EndpointFilter 来定制端点的响应内容。例如,可以为 /actuator/health 端点添加自定义的健康指标。或者通过继承并重写原有端点的方法来实现定制。

通过这些定制方法,我们可以使 Spring Boot Actuator 更好地适应实际项目需求。

四、创建自定义端点

在某些情况下,内置的端点无法满足我们的需求,因此我们需要创建自定义端点。本节将介绍自定义端点的实现方式、应用场景举例以及如何注册和配置自定义端点。

4.1 自定义端点的实现方式

要创建自定义端点,需要实现org.springframework.boot.actuate.endpoint.web.annotation.RestControllerEndpoint 接口或 org.springframework.boot.actuate.endpoint.annotation.Endpoint 接口。其中,RestControllerEndpoint 接口允许我们创建基于 Web 的端点,而 Endpoint 接口则适用于其他类型的端点。

4.2 注册和配置自定义端点

创建自定义端点后,需要将其注册到 Spring Boot Actuator。我们可以通过将自定义端点作为 Bean 注册到 Spring 上下文来实现。例如:

import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.stereotype.Component;

@Component
@Endpoint(id = "cache-status")
public class CacheStatusEndpoint {

@ReadOperation
public CacheStatus getCacheStatus() {
// 在这里实现获取缓存状态的逻辑
// 例如,从缓存管理器中获取相关信息
CacheStatus cacheStatus = new CacheStatus();
cacheStatus.setCacheSize(100);
cacheStatus.setHitCount(200);
cacheStatus.setMissCount(50);
return cacheStatus;
}
}
Copier après la connexion

在上面的代码中,我们首先使用@Endpoint注解来指定端点的ID(即cache-status)。然后,我们定义了一个getCacheStatus()方法,使用@ReadOperation注解来表示这是一个读操作。此方法应返回一个表示缓存状态的对象(例如,CacheStatus类)。

接下来,我们需要定义CacheStatus类:

public class CacheStatus {

private int cacheSize;
private int hitCount;
private int missCount;

// 省略 getter 和 setter 方法
}
Copier après la connexion

接下来,我们需要为自定义端点配置访问权限、暴露策略等。这可以通过在 application.properties 文件中添加相关配置来实现。例如:

management.endpoints.web.exposure.include=health,info,cache-status
Copier après la connexion

这将使得我们的自定义端点 /actuator/cache-status 能够被访问。

五、端点数据监控与可视化

在本节中,我们将介绍如何利用Spring Boot Actuator端点数据进行监控与可视化,从而更好地了解应用程序的运行状况。

5.1 使用JMX监控端点

Java Management Extensions(JMX)是Java平台的一种技术,允许对Java应用程序进行管理和监控。Spring Boot Actuator默认支持将端点数据暴露到JMX。要使用JMX监控端点,请确保在应用程序的application.properties或application.yml文件中启用了JMX:

management.endpoints.jmx.exposure.include=*
Copier après la connexion

然后,您可以使用JMX客户端(如Java Mission Control、VisualVM等)连接到应用程序的JMX端口,查看和操作暴露的端点数据。

5.2 使用Prometheus和Grafana进行可视化监控

Prometheus是一个流行的开源监控系统,与Grafana这个数据可视化工具结合使用,可以为Spring Boot Actuator端点数据提供强大的可视化监控功能。

首先,需要在Spring Boot应用程序中集成Prometheus。添加相应的依赖并配置application.properties或application.yml文件,以启用Prometheus端点:

management.endpoints.web.exposure.include=*
management.metrics.export.prometheus.enabled=true
Copier après la connexion

接下来,需要配置Prometheus来抓取Spring Boot应用程序的数据。在Prometheus的配置文件中(通常是prometheus.yml),添加以下内容:

scrape_configs:
- job_name: 'spring-boot-actuator'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:8080'] # 将此处替换为Spring Boot应用程序的实际地址
Copier après la connexion

最后,在Grafana中添加Prometheus数据源,并创建仪表板来展示和分析Spring Boot Actuator端点的数据。如下图所示:

Spring Boot Actuator端点大揭秘:轻松监控你的应用程序

5.3 集成其他监控工具

Spring Boot Actuator还可以与其他监控工具集成,例如Datadog、InfluxDB、New Relic等。要集成这些工具,通常需要在应用程序中添加相应的依赖并进行一些配置。具体的集成步骤和配置方式请参考官方文档或相关教程。

六、总结

在本文中,我们详细介绍了Spring Boot Actuator端点的相关内容,下面对全文进行概括总结。

6.1 Spring Boot Actuator端点的优势

  • 提供丰富的内置端点,可以轻松获取应用程序的运行时信息,如健康状况、度量数据、环境信息等。
  • 端点配置灵活,支持定制访问权限、路径和响应内容。
  • 可以轻松创建自定义端点,满足特定业务需求。
  • 支持与各种监控工具集成,便于进行数据监控与可视化。

6.2 注意事项和最佳实践

  • 谨慎配置端点的访问权限,确保敏感信息不被泄露。
  • 合理地暴露和定制端点,以满足实际需求,但避免不必要的开销。
  • 使用自定义端点时,遵循单一职责原则,确保每个端点专注于一个特定功能。
  • 结合实际业务场景选择合适的监控工具,进行可视化分析,以便于快速发现和解决问题。

6.3 对未来发展的展望

随着微服务和容器化技术的发展,对于应用程序的监控和管理需求将越来越复杂。Spring Boot Actuator的端点功能将继续完善,为开发者提供更加强大的监控工具。同时,我们期待更多的第三方监控工具与Actuator集成,帮助开发者更好地管理和优化其应用程序。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Spring Boot Actuator Endpoint révélé : surveillez facilement votre application Spring Boot Actuator Endpoint révélé : surveillez facilement votre application Jun 09, 2023 pm 10:56 PM

1. Introduction au point de terminaison SpringBootActuator 1.1 Qu'est-ce que le point de terminaison Actuator SpringBootActuator est un sous-projet utilisé pour surveiller et gérer les applications SpringBoot. Il fournit une série de points de terminaison intégrés (Endpoints) qui peuvent être utilisés pour afficher l'état, l'état de fonctionnement et les indicateurs de fonctionnement de l'application. Les points de terminaison des actionneurs peuvent être exposés à des systèmes externes sous HTTP, JMX ou sous d'autres formes pour permettre au personnel d'exploitation et de maintenance de surveiller, diagnostiquer et gérer les applications. 1.2 Le rôle et la fonction du point de terminaison Le point de terminaison Actuator est principalement utilisé pour mettre en œuvre les fonctions suivantes : assurer le contrôle de santé de l'application, y compris la connexion à la base de données, la mise en cache,

Ayant travaillé dans l'exploitation et la maintenance pendant plus de dix ans, j'ai eu d'innombrables moments où j'avais l'impression d'être encore un novice... Ayant travaillé dans l'exploitation et la maintenance pendant plus de dix ans, j'ai eu d'innombrables moments où j'avais l'impression d'être encore un novice... Jun 09, 2023 pm 09:53 PM

Il était une fois, alors que j'étais fraîchement diplômé en informatique, que je parcourais de nombreuses offres d'emploi sur les sites de recrutement, j'étais déconcerté par les postes techniques fulgurants : ingénieur R&D, ingénieur d'exploitation et de maintenance, ingénieur de tests...‍ Au collège. , mes parcours professionnels étaient médiocres, sans parler d'une vision technique, et je n'avais aucune idée claire sur la direction technique à suivre. Jusqu'à ce qu'un étudiant senior me dise : « Faites de l'exploitation et de la maintenance. Vous n'avez pas besoin d'écrire du code tous les jours pour faire de l'exploitation et de la maintenance. Il vous suffit de pouvoir jouer à Liunx ! C'est beaucoup plus facile que de faire du développement ! à croire... Je suis dans l'industrie depuis plus de dix ans, j'ai beaucoup souffert, j'ai enduré beaucoup de reproches, j'ai tué des serveurs et j'ai connu des licenciements dans des services. Si quelqu'un me dit maintenant que l'exploitation et la maintenance sont plus faciles que le développement. , alors je le ferai

Déploiement et fonctionnement de l'architecture de microservice Spring Cloud Déploiement et fonctionnement de l'architecture de microservice Spring Cloud Jun 23, 2023 am 08:19 AM

Avec le développement rapide d’Internet, la complexité des applications d’entreprise augmente de jour en jour. En réponse à cette situation, l’architecture des microservices a vu le jour. Grâce à sa modularité, son déploiement indépendant et sa grande évolutivité, il est aujourd'hui devenu le premier choix pour le développement d'applications au niveau de l'entreprise. En tant qu'excellente architecture de microservices, Spring Cloud a montré de grands avantages dans les applications pratiques. Cet article présentera le déploiement, l'exploitation et la maintenance de l'architecture de microservices SpringCloud. 1. Déployer l'architecture de microservices SpringCloud SpringCloud

Quelles capacités doivent être couvertes par les outils d'exploitation et de maintenance de la base de données PG ? Quelles capacités doivent être couvertes par les outils d'exploitation et de maintenance de la base de données PG ? Jun 08, 2023 pm 06:56 PM

Avant les vacances, j'ai collaboré avec la communauté PG Chine pour organiser une diffusion en direct en ligne sur la façon d'utiliser D-SMART pour exploiter et maintenir la base de données PG. Il est arrivé qu'un de mes clients du secteur financier ait écouté ma présentation et m'ait appelé. pour discuter. Ils sélectionnent la base de données Xinchuang et ont essayé plusieurs bases de données nationales. Enfin, ils vont choisir TDSQL. J'ai été un peu surpris à l'époque. Ils sélectionnaient des bases de données nationales depuis 2020, mais il semblait que la première expérience après l'utilisation de TDSQL n'était pas très bonne. Plus tard, après la communication, j'ai appris qu'ils venaient de commencer à utiliser la base de données distribuée de TDSQL et ont trouvé que les exigences de recherche et développement étaient trop élevées, ils ont donc tous choisi l'instance MYSQL centralisée de TDSQL. Après l'avoir utilisée, ils ont trouvé qu'elle était très facile à utiliser. . L'ensemble du cloud de base de données

Qu'est-ce que l'observabilité ? Tout ce qu'un débutant doit savoir Qu'est-ce que l'observabilité ? Tout ce qu'un débutant doit savoir Jun 08, 2023 pm 02:42 PM

Le terme observabilité provient du domaine de l’ingénierie et est devenu de plus en plus populaire dans le domaine du développement de logiciels ces dernières années. En termes simples, l'observabilité est la capacité de comprendre l'état interne d'un système sur la base de sorties externes. IBM définit l'observabilité comme suit : Généralement, l'observabilité fait référence au degré auquel l'état ou la condition interne d'un système complexe peut être compris sur la base de la connaissance de sa sortie externe. Plus le système est observable, plus le processus de localisation de la cause première d'un problème de performances peut être rapide et précis, sans nécessiter de tests ou de codage supplémentaires. Dans le cloud computing, l'observabilité fait également référence aux outils et pratiques logiciels qui regroupent, corrèlent et analysent les données des systèmes d'applications distribués et de l'infrastructure qui prend en charge leur fonctionnement afin de surveiller, dépanner et déboguer plus efficacement les systèmes d'applications, offrant ainsi une expérience client. optimisation et accord de niveau de service

Tuyou Zou Yi : Comment faire fonctionner et entretenir les petites et moyennes entreprises ? Tuyou Zou Yi : Comment faire fonctionner et entretenir les petites et moyennes entreprises ? Jun 09, 2023 pm 01:56 PM

Par le biais d'entretiens et de présentations, les vétérans du domaine de l'exploitation et de la maintenance sont invités à fournir des informations approfondies et à se confronter, en vue de former un consensus avancé et de promouvoir l'industrie pour qu'elle progresse mieux. Dans ce numéro, nous invitons Zou Yi, le directeur de l'exploitation et de la maintenance de Tuyou Games, M. Zou se qualifie souvent en plaisantant de représentant de l'exploitation et de la maintenance des 5 millions de plus grandes entreprises mondiales. les idées de construction d'exploitation et de maintenance des petites et moyennes entreprises sont différentes de celles des grandes entreprises. Aujourd'hui, nous avons quelques questions et demandons à M. Zou de partager son parcours d'intégration de la recherche et des opérations pour les petites et moyennes entreprises. entreprises de taille. C'est le 6ème numéro du "Forum Exploitation et Maintenance", terre-à-terre et de haut niveau, qui commence dès maintenant ! Aperçu de la question Tuyou est une société de jeux. Selon vous, quelles sont les caractéristiques uniques de l'exploitation et de la maintenance des jeux ? Quels sont les plus grands défis opérationnels auxquels vous êtes confrontés ? Comment avez-vous résolu ces défis ? Personnes chargées de l'exploitation et de la maintenance des jeux

Avez-vous besoin d'apprendre le golang pour l'exploitation et la maintenance ? Avez-vous besoin d'apprendre le golang pour l'exploitation et la maintenance ? Jul 17, 2023 pm 01:27 PM

N'apprenez pas Golang pour l'exploitation et la maintenance.Les raisons sont les suivantes : 1. Golang est principalement utilisé pour développer des applications avec des exigences de performances élevées et simultanées ;2. Les outils et langages de script couramment utilisés par les ingénieurs d'exploitation et de maintenance peuvent déjà répondre. la plupart des exigences en matière de gestion et de maintenance ; 3. L'apprentissage du golang nécessite une certaine base de programmation et une certaine expérience ; 4. L'objectif principal de l'ingénieur d'exploitation et de maintenance est d'assurer la stabilité et la haute disponibilité du système, et non de développer des applications ;

Du Xiaoman et Chen Cunli : un « commandant » de 20 ans parle d'exploitation et de maintenance, de performances et de croissance Du Xiaoman et Chen Cunli : un « commandant » de 20 ans parle d'exploitation et de maintenance, de performances et de croissance Jun 09, 2023 am 09:56 AM

Par le biais d'entretiens et de présentations, les vétérans du domaine de l'exploitation et de la maintenance sont invités à fournir des informations approfondies et à se confronter en vue de former un consensus avancé et de promouvoir l'industrie pour qu'elle progresse mieux. Dans ce numéro, nous invitons Chen Cunli, directeur général du département d'exploitation et de maintenance du système Du Xiaoman. Il a passé la majeure partie de ses 20 ans de carrière dans le domaine d'Internet. Pendant son séjour au département des opérations et de la maintenance de Baidu, les membres de son équipe l'appelaient « Commandant Chen » en raison de son excellent style de leadership. Aujourd'hui, nous invitons le « Commandant Chen » à parler de son point de vue. Il s'agit du cinquième numéro du « Forum Exploitation et Maintenance », terre-à-terre et de haut niveau, qui commence dès maintenant ! Aperçu de la question : Vous avez rejoint Baidu très tôt, puis êtes devenu indépendant avec Du Xiaoman. Nous comprenons qu'il y a de nombreux employés autour de vous qui vous suivent depuis longtemps et ont vécu de nombreux tests d'exploitation et de maintenance d'entreprise. Je pense que tout le monde est très. intéressé.

See all articles