使用spring-boot-admin对spring-boot服务进行监控

阅读更多

 

 

 

spring-boot-admin,简称SBA,是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。他可以: 在列表中 浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的level。
官网: https://github.com/codecentric/spring-boot-admin
使用指南: http://codecentric.github.io/spring-boot-admin/1.5.0/
 
只需简单几步,就可以配置和使用SBA(分为监控端和被监控端):
监控端:
1、创建项目(略)
2、引入依赖:
[html] view plain copy
  1. <dependency>  
  2.     <groupId>de.codecentricgroupId>  
  3.     <artifactId>spring-boot-admin-serverartifactId>  
  4.     <version>1.5.0version>  
  5. dependency>  
  6. <dependency>  
  7.     <groupId>de.codecentricgroupId>  
  8.     <artifactId>spring-boot-admin-server-uiartifactId>  
  9.     <version>1.5.0version>  
  10. dependency>  
 
3、配置文件(application.yml)配置(可选):
[plain] view plain copy
  1. spring:  
  2.   application:  
  3.     name: svc-monitor  
  4.   boot:  
  5.     admin:  
  6.       context-path: /sba    # 配置访问路径为:http://localhost:64000/svc-monitor/sba  
  7. server:  
  8.   port: 64000  
  9.   context-path: /svc-monitor/ #统一为访问的url加上一个前缀  
以上配置是为了指定一个特别的访问路径。如果不这样配置,则访问路径为:http://localhost:64000
 
4、使用@EnableAdminServer注解激活SBA:
[java] view plain copy
  1. @SpringBootApplication  
  2. @EnableScheduling  
  3. @EnableAdminServer  
  4. public class SvcMonitorApplication {  
  5.     public static void main(String[] args) {  
  6.         SpringApplication.run(SvcMonitorApplication.class, args);  
  7.     }  
  8. }  
 
被监控端(spring-boot项目)向监控端注册自己:
1、添加依赖:
[html] view plain copy
  1. <dependency>  
  2.     <groupId>de.codecentricgroupId>  
  3.     <artifactId>spring-boot-admin-starter-clientartifactId>  
  4.     <version>1.5.0version>  
  5. dependency>  

2、配置文件(application.yml)配置:
[plain] view plain copy
  1. spring:  
  2.   boot:  
  3.     admin:  
  4.       client:  
  5.         prefer-ip: true # 解决windows下运行时无法识别主机名的问题  
  6.       url: http://localhost:64000/svc-monitor # 向服务端注册的地址  
  7. management:  
  8.   port: 64001  
  9.   security:  
  10.     enabled: false # spring-boot 1.5.2之后严格执行安全策略,所以需要配置这个为false  
  11. info: #定义各种额外的详情给服务端显示  
  12.   app:  
  13.     name: "@project.name@" #从pom.xml中获取  
  14.     description: "@project.description@"  
  15.     version: "@project.version@"  
  16.     spring-boot-version: "@project.parent.version@"  
 
3、其他配置:
如果需要显示项目版本号,需要在pom.xml中添加这个(build-info):
[html] view plain copy
  1. <build>  
  2.     <plugins>  
  3.         <plugin>  
  4.             <groupId>org.springframework.bootgroupId>  
  5.             <artifactId>spring-boot-maven-pluginartifactId>  
  6.             <executions>  
  7.                 <execution>  
  8.                     <goals>  
  9.                         <goal>build-infogoal>  
  10.                     goals>  
  11.                 execution>  
  12.             executions>  
  13.         plugin>  
  14.     plugins>  
  15. build>  

4、问题解决:
如果发现被监控端启动的时候出现 InetAddress.getLocalHost() throws UnknownHostException错误,是因为没配置本机机器名和ip的对应关系。
解决方法:
编辑hosts文件:
vi /etc/hosts
添加ip和机器名的关联:192.168.0.31 host31 myhost-31
 
监控端和被监控端都启动后,访问:http://localhost:64000/svc-monitor/sba,就可以看到被监控服务的各种详情了。
 
以上是被监控端主动注册法。
 
还有另外一种方法是:如果被监控端已经使用了Spring Cloud向Eureka注册了服务,则可以由监控端直接去Euraka中发现并监控这个服务。此方法调试起来比较复杂,这里先不介绍了。

你可能感兴趣的:(springboot)