以前,我们使用Prometheus成功启动了Spring Boot应用程序。 Spring应用程序中的一个端点正在公开我们的指标数据,以便Prometheus能够检索它们。
想到的主要问题是如何保护此信息。
Spring已经为我们提供了强大的安全框架
因此,将其轻松用于我们的应用程序。 目标是对执行器/普罗米修斯端点使用基本身份验证,并配置普罗米修斯以便使用基本身份验证访问该信息。
因此,第一步是在我们的应用程序上启用安全性。 第一步是添加安全罐。
< dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-security</ artifactId > </ dependency >
通过为默认用户生成密码,Spring Boot应用程序将自行获得保护。
但是,我们确实希望控制用户名和密码,因此我们将使用一些环境变量。
通过使用默认用户的凭据运行应用程序,我们可以通过最少的配置保护Prometheus端点。
SPRING_SECURITY_USER_NAME= test -user SPRING_SECURITY_USER_PASSWORD= test -password mvn spring-boot:run -user SPRING_SECURITY_USER_PASSWORD= -password mvn spring-boot:run
因此,既然我们的应用程序具有安全设置,就该更新我们的prometheus配置了。
scrape_configs: - job_name: 'prometheus-spring' scrape_interval: 1m metrics_path: '/actuator/prometheus' static_configs: - targets: [ 'my.local.machine:8080' ] basic_auth: username: "test-user" password: "test-password"
因此,让我们再次如前所述运行普罗米修斯。
在此更改后对应用程序求和,Prometheus将以安全的方式为我们的应用程序收集指标数据。
翻译自: https://www.javacodegeeks.com/2020/05/spring-boot-and-micrometer-with-prometheus-part-6-securing-metrics.html