千家信息网

SpringBootAdmin微服务应用监控怎么实现

发表于:2024-10-27 作者:千家信息网编辑
千家信息网最后更新 2024年10月27日,小编给大家分享一下SpringBootAdmin微服务应用监控怎么实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Spring Boot Admin 简介SpringBoot应用可
千家信息网最后更新 2024年10月27日SpringBootAdmin微服务应用监控怎么实现

小编给大家分享一下SpringBootAdmin微服务应用监控怎么实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

Spring Boot Admin 简介

SpringBoot应用可以通过Actuator来暴露应用运行过程中的各项指标,Spring Boot Admin通过这些指标来监控SpringBoot应用,然后通过图形化界面呈现出来。Spring Boot Admin不仅可以监控单体应用,还可以和Spring Cloud的注册中心相结合来监控微服务应用。

Spring Boot Admin 可以提供应用的以下监控信息:

监控应用运行过程中的概览信息; 度量指标信息,比如JVM、Tomcat及进程信息; 环境变量信息,比如系统属性、系统环境变量以及应用配置信息; 查看所有创建的Bean信息; 查看应用中的所有配置信息; 查看应用运行日志信息; 查看JVM信息; 查看可以访问的Web端点; 查看HTTP跟踪信息。

这里我们创建一个admin-server模块来作为监控中心演示其功能。

在pom.xml中添加相关依赖:

org.springframework.boot spring-boot-starter-web de.codecentric spring-boot-admin-starter-server

在application.yml中进行配置:

spring: application: name: admin-serverserver: port: 9301

在启动类上添加@EnableAdminServer来启用admin-server功能:

@EnableAdminServer@SpringBootApplicationpublic class AdminServerApplication { public static void main(String[] args) { SpringApplication.run(AdminServerApplication.class, args); }}

创建admin-client模块

这里我们创建一个admin-client模块作为客户端注册到admin-server。

在pom.xml中添加相关依赖:

org.springframework.boot spring-boot-starter-web de.codecentric spring-boot-admin-starter-client

在application.yml中进行配置:

spring: application: name: admin-client boot: admin: client: url: http://localhost:9301 #配置admin-server地址server: port: 9305management: endpoints: web: exposure: include: '*' endpoint: health: show-details: alwayslogging: file: admin-client.log #添加开启admin的日志监控

启动admin-server和admin-client服务。

监控信息演示

访问如下地址打开Spring Boot Admin的主页: http://localhost:9301

点击wallboard按钮,选择admin-client查看监控信息;

监控信息概览;

度量指标信息,比如JVM、Tomcat及进程信息;

环境变量信息,比如系统属性、系统环境变量以及应用配置信息;

查看所有创建的Bean信息;

查看应用中的所有配置信息;

查看日志信息,需要添加以下配置才能开启;

logging: file: admin-client.log #添加开启admin的日志监控

查看JVM信息;

查看可以访问的Web端点;

查看HTTP跟踪信息;

结合注册中心使用

Spring Boot Admin结合Spring Cloud 注册中心使用,只需将admin-server和注册中心整合即可,admin-server 会自动从注册中心获取服务列表,然后挨个获取监控信息。这里以Eureka注册中心为例来介绍下该功能。

修改admin-server 在pom.xml中添加相关依赖:

org.springframework.cloud spring-cloud-starter-netflix-eureka-client

在application-eureka.yml中进行配置,只需添加注册中心配置即可:

spring: application: name: admin-serverserver: port: 9301eureka: client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8001/eureka/

在启动类上添加@EnableDiscoveryClient来启用服务注册功能:

@EnableDiscoveryClient@EnableAdminServer@SpringBootApplicationpublic class AdminServerApplication { public static void main(String[] args) { SpringApplication.run(AdminServerApplication.class, args); }}

修改admin-client

在pom.xml中添加相关依赖:

org.springframework.cloud spring-cloud-starter-netflix-eureka-client

在application-eureka.yml中进行配置,删除原来的admin-server地址配置,添加注册中心配置即可:

spring: application: name: admin-clientserver: port: 9305management: endpoints: web: exposure: include: '*' endpoint: health: show-details: alwayslogging: file: admin-client.log #添加开启admin的日志监控eureka: client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8001/eureka/

在启动类上添加@EnableDiscoveryClient来启用服务注册功能:

@EnableDiscoveryClient@SpringBootApplicationpublic class AdminClientApplication { public static void main(String[] args) { SpringApplication.run(AdminClientApplication.class, args); }}

功能演示

启动eureka-server,使用application-eureka.yml配置启动admin-server,admin-client;

查看注册中心发现服务均已注册: http://localhost:8001/

查看Spring Boot Admin 主页发现可以看到服务信息: http://localhost:9301

添加登录认证

我们可以通过给admin-server添加Spring Security支持来获得登录认证功能。

创建admin-security-server模块

在pom.xml中添加相关依赖:

org.springframework.cloud spring-cloud-starter-netflix-eureka-client de.codecentric spring-boot-admin-starter-server 2.1.5 org.springframework.boot spring-boot-starter-security org.springframework.boot spring-boot-starter-web

在application.yml中进行配置,配置登录用户名和密码,忽略admin-security-server的监控信息:

spring: application: name: admin-security-server security: # 配置登录用户名和密码 user: name: macro password: 123456 boot: # 不显示admin-security-server的监控信息 admin: discovery: ignored-services: ${spring.application.name}server: port: 9301eureka: client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8001/eureka/

对SpringSecurity进行配置,以便admin-client可以注册:

/** * Created by macro on 2019/9/30. */@Configurationpublic class SecuritySecureConfig extends WebSecurityConfigurerAdapter { private final String adminContextPath; public SecuritySecureConfig(AdminServerProperties adminServerProperties) { this.adminContextPath = adminServerProperties.getContextPath(); } @Override protected void configure(HttpSecurity http) throws Exception { SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); successHandler.setTargetUrlParameter("redirectTo"); successHandler.setDefaultTargetUrl(adminContextPath + "/"); http.authorizeRequests() //1.配置所有静态资源和登录页可以公开访问 .antMatchers(adminContextPath + "/assets/**").permitAll() .antMatchers(adminContextPath + "/login").permitAll() .anyRequest().authenticated() .and() //2.配置登录和登出路径 .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and() .logout().logoutUrl(adminContextPath + "/logout").and() //3.开启http basic支持,admin-client注册时需要使用 .httpBasic().and() .csrf() //4.开启基于cookie的csrf保护 .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse()) //5.忽略这些路径的csrf保护以便admin-client注册 .ignoringAntMatchers( adminContextPath + "/instances", adminContextPath + "/actuator/**" ); }}

修改启动类,开启AdminServer及注册发现功能:

@EnableDiscoveryClient@EnableAdminServer@SpringBootApplicationpublic class AdminSecurityServerApplication { public static void main(String[] args) { SpringApplication.run(AdminSecurityServerApplication.class, args); }}

启动eureka-server,admin-security-server,访问Spring Boot Admin 主页发现需要登录才能访问: http://localhost:9301

使用到的模块

springcloud-learning├── eureka-server -- eureka注册中心├── admin-server -- admin监控中心服务├── admin-client -- admin监控中心监控的应用服务└── admin-security-server -- 带登录认证的admin监控中心服务

看完了这篇文章,相信你对"SpringBootAdmin微服务应用监控怎么实现"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

信息 监控 配置 应用 服务 功能 登录 日志 模块 变量 指标 环境 系统 主页 地址 演示 认证 运行 只需 可以通过 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 电力调度控制系统 网络安全 关于网络安全的趣味问答题 u8会计期间数据库 服务器搭建空间教程 一个网站配多大服务器 安卓怎么批量上传数据库中 网络安全检查管理方面 提高手机网络安全性 博世中国创新与软件开发中心上海 医院电脑服务器管理制度 上海宅畅网络技术有限公司 摄像头客户端服务器地址格式错误 蚁蚕软件开发 苏宁易购北京软件开发部 无线路由器网络安全设置选哪个 主流web服务器 上海商旺网络技术有限公司 永劫无间为何总是失去服务器连接 2014三级网络技术软件 如何查数据库ip地址 sql事件探查器单个数据库 cbm数据库文献外表特征 网络安全审计和外部防护 山东hp服务器续保哪家便宜 登服务器 关于网络安全的相关视频 网络安全知识竞赛答题入口 细菌战猜网络安全词 网络安全港股近期走势 如何制作二维码调查问卷服务器
0