Spring Boot (28) actuator与spring-boot-admin
在上一篇中,通过restful api的方式查看信息过于繁琐,也不直观,效率低下。当服务过多的时候看起来就过于麻烦,每个服务都需要调用不同的接口来查看监控信息。
SBA
SBA全称spring boot admin 是一个管理和监控spring boot 应用程序的开源项目,分为admin-server与admin-client两个组件,admin-server通过采集actuator端点数据,显示在spring -boot-admin-ui上,已知的端点几乎都有进行采集,通过spring-boot-admin可以动态切换日志级别、导出日志、导出heapdump、监控各项指标 等等
spring boot admin在对单一服务监控的同时也提供了集群监控方案,支持通过eureka、consul、zookeeper等注册中心的方式实现多服务监控与管理
导入依赖
在pom.xml中添加对spring-boot-admin的相关依赖
- <!-- 服务端:带UI界面 -->
- <dependency>
- <groupId>de.codecentric</groupId>
- <artifactId>spring-boot-admin-starter-server</artifactId>
- <version>2.0.0</version>
- </dependency>
- <!-- 客户端包 -->
- <dependency>
- <groupId>de.codecentric</groupId>
- <artifactId>spring-boot-admin-starter-client</artifactId>
- <version>2.0.0</version>
- </dependency>
- <!-- 安全认证 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-security</artifactId>
- </dependency>
- <!-- 端点 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
- <!-- 在管理界面中与 JMX-beans 进行交互所需要被依赖的 JAR -->
- <dependency>
- <groupId>org.jolokia</groupId>
- <artifactId>jolokia-core</artifactId>
- </dependency>
如果想访问info的信息需要如下配置
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>build-info</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
属性配置
在application.yml中配置actuator的相关配置,其中info开头的属性,就是访问info端点中显示的相关内容,值得注意的十spring boot2.x中,默认只开放了info、health两个端点,剩余的需要自己通过配置management.endpoints.web.exposure.include属性来加载,这个management.endpoints.web.base-path属性比较重要,因为spring boot2.x后每个端点默认的路径是/actuator/endpointId这样依赖spring boot admin是无法正常采集的
application.yml
- spring:
- profiles:
- active: prod #指定读取哪个文件
- boot:
- admin:
- client:
- url: http://localhost:8088
- instance:
- prefer-ip: true
- info:
- head: head
- body: body
- management:
- endpoints:
- web:
- exposure:
- #加载所有的端点,默认只加载了info、health
- include: '*'
- #不配置SBA 扫描不到
- base-path: /
- endpoint:
- health:
- show-details: always
- #可以关闭指定的端点
- shutdown:
- enabled: false
application-dev.yml 空的
application-prod.yml
- server:
- port: 8088
- servlet:
- context-path: /
- spring:
- boot:
- admin:
- client:
- username: david
- password: 123456
- instance:
- metadata:
- user:
- name: david
- password: 123456
- security:
- user:
- name: david
- password: 123456
在启动方法中增加@EnableAdminServer注解 代表是Server端
- @EnableAdminServer
- @SpringBootApplication
- public class BootApplication{
- public static void main(String[] args) {
- SpringApplication.run(BootApplication.class,args);
- }
- @Profile("dev")
- @Configuration
- public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter{
- @Override
- protected void configure(HttpSecurity http) throws Exception{
- http.authorizeRequests().anyRequest().permitAll().and().csrf().disable();
- }
- }
- @Profile("prod")
- @Configuration
- public static 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");
- http.authorizeRequests()
- .antMatchers(adminContextPath + "/assets/**").permitAll()
- .antMatchers(adminContextPath + "/login").permitAll()
- .anyRequest().authenticated()
- .and()
- .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
- .logout().logoutUrl(adminContextPath + "/logout").and()
- .httpBasic().and()
- .csrf().disable();
- }
- }
- }
测试
启动项目 访问 http://localhost:8088/login
Spring Boot (28) actuator与spring-boot-admin的更多相关文章
- Spring Boot,Spring Cloud,Eureka,Actuator,Spring Boot Admin,Stream,Hystrix
Spring Boot,Spring Cloud,Eureka,Actuator,Spring Boot Admin,Stream,Hystrix 一.Spring Cloud 之 Eureka. 1 ...
- spring boot 2.0.3+spring cloud (Finchley)8、微服务监控Spring Boot Admin
参考:Spring Boot Admin 2.0 上手 Spring Boot Admin 用于管理和监控一个或多个Spring Boot程序,在 Spring Boot Actuator 的基础上提 ...
- Spring Cloud第十三篇 | Spring Boot Admin服务监控
本文是Spring Cloud专栏的第十三篇文章,了解前十二篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring Clo ...
- Spring Boot (27) actuator服务监控与管理
actuaotr是spring boot项目中非常强大的一个功能,有助于对应用程序进行监控和管理,通过restful api请求来监管.审计.收集应用的运行情况,针对微服务而言它是必不可少的一个环节. ...
- 第11章 Spring Boot使用Actuator
在生产环境中,需要实时或定期监控服务的可用性,spring-Boot的Actuator 功能提供了很多监控所需的接口. Actuator是Spring Boot提供的对应用系统的自省和监控的集成功能, ...
- Spring Boot整合actuator实现监控管理
Spring Boot使用actuator监控管理 1.在pom文件中导入相关的依赖 <dependency> <groupId>org.springframework.boo ...
- 【Spring】关于Boot应用中集成Spring Security你必须了解的那些事
Spring Security Spring Security是Spring社区的一个顶级项目,也是Spring Boot官方推荐使用的Security框架.除了常规的Authentication和A ...
- spring Boot 入门--为什么用spring boot
为什么用spring boot 回答这个问题不得不说下spring 假设你受命用Spring开发一个简单的Hello World Web应用程序.你该做什么? 我能想到一些 基本的需要. 一个项目 ...
- Spring Boot(十四):spring boot整合shiro-登录认证和权限管理
Spring Boot(十四):spring boot整合shiro-登录认证和权限管理 使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉 ...
随机推荐
- [bzoj2733][HNOI2012]永无乡_权值线段树_线段树合并
永无乡 bzoj-2733 HNOI-2012 题目大意:题目链接. 注释:略. 想法: 它的查询操作非常友善,就是一个联通块内的$k$小值. 故此我们可以考虑每个联通块建一棵权值线段树. 这样的话每 ...
- Ubuntu 16.04出现:qmake: could not exec '/usr/lib/x86_64-linux-gnu/qt4/bin/qmake': No such file or directory
没有安装qt4-qmake,安装即可: sudo apt-get install qt4-qmake 参考: https://stackoverflow.com/questions/23703864/ ...
- 得到java异常printStackTrace的详细信息
平时写Java代码时,想看抛出的异常信息,来找出具体的异常点,我们常常会用Exception.toString ()或者 Exception.getMessage()来取得异常信息,再把它print到 ...
- sql 按中文排序
sql server:select * from [表名]order by [字段],[字段] collate Chinese_PRC_CS_AS_KS_WS mysql:select * from ...
- Oracle SqlPlus导出查询结果
Oracle SqlPlus导出查询结果 在sqlplus下导出查询的结果保存到本地sql文件中,可以采用如下方式:1.连接数据库: sqlplus xmq/xmqpwd@192.168.1.57:1 ...
- C#如何设置窗体不能修改大小
找到FormBorderStyle设置为FixedDialog即可
- UG如何把语言改成中文,UG如何把界面语言改成中文
1 高级系统设置,高级,新建一个用户变量(变量名为lang,变量值为chs) 2 高级系统设置,高级,环境变量,系统变量中,查看变量名为UGII_LANG的值是否为simpl_chinese,如果 ...
- Linux系统下ssh登陆很慢的解决办法
很多的Linux用户发现连接上Linux服务器在输入用户名之后还要再等一下才能输入密码,时间过长了,现在小白与大家分享一下如何解决ssh登陆问题的问题,希望对您有所帮助. 1.我们平时登陆Linux服 ...
- JQuery编程demo练习
JQuery练习demo: 编敲代码,实现: 1.选中当中一列的复选框时,该复选框所在行的背景色高亮显示(黄色). 2.取消选中复选框时,所在行的背景色恢复. ============ ...
- (十)Net Core项目使用Cookies (八)Net Core项目使用Controller之三-入参
(十)Net Core项目使用Cookies 一.简介 1.Net Core可以直接使用Cookies,但是调用方式有些区别. 2.Net Core将Request和Response分开实现. 二.基 ...