spring-boot-admin,簡稱SBA,是一個(gè)針對spring-boot的actuator接口進(jìn)行UI美化封裝的監(jiān)控工具。他可以:在列表中瀏覽所有被監(jiān)控spring-boot項(xiàng)目的基本信息,詳細(xì)的Health信息、內(nèi)存信息、JVM信息、垃圾回收信息、各種配置信息(比如數(shù)據(jù)源、緩存列表和命中率)等,還可以直接修改logger的level。
官網(wǎng):https://github.com/codecentric/spring-boot-admin
使用指南:http://codecentric.github.io/spring-boot-admin/1.5.0/
只需簡單幾步,就可以配置和使用SBA(分為監(jiān)控端和被監(jiān)控端):
監(jiān)控端:
1、創(chuàng)建項(xiàng)目(略)
2、引入依賴:
1
2
3
4
5
6
7
8
9
10
|
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-server</artifactId> <version> 1.5 . 0 </version> </dependency> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-server-ui</artifactId> <version> 1.5 . 0 </version> </dependency> |
3、配置文件(application.yml)配置(可選):
1
2
3
4
5
6
7
8
9
|
spring: application: name: svc-monitor boot: admin: context-path: /sba # 配置訪問路徑為:http: //localhost:64000/svc-monitor/sba server: port: 64000 context-path: /svc-monitor/ #統(tǒng)一為訪問的url加上一個(gè)前綴 |
以上配置是為了指定一個(gè)特別的訪問路徑。如果不這樣配置,則訪問路徑為:http://localhost:64000
4、使用@EnableAdminServer注解激活SBA:
1
2
3
4
5
6
7
8
|
@SpringBootApplication @EnableScheduling @EnableAdminServer public class SvcMonitorApplication { public static void main(String[] args) { SpringApplication.run(SvcMonitorApplication. class , args); } } |
被監(jiān)控端(spring-boot項(xiàng)目)向監(jiān)控端注冊自己:
1、添加依賴:
1
2
3
4
5
|
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version> 1.5 . 0 </version> </dependency> |
2、配置文件(application.yml)配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
spring: boot: admin: client: prefer-ip: true # 解決windows下運(yùn)行時(shí)無法識(shí)別主機(jī)名的問題 url: http: //localhost:64000/svc-monitor # 向服務(wù)端注冊的地址 management: port: 64001 security: enabled: false # spring-boot 1.5 . 2 之后嚴(yán)格執(zhí)行安全策略,所以需要配置這個(gè)為 false info: #定義各種額外的詳情給服務(wù)端顯示 app: name: "@project.name@" #從pom.xml中獲取 description: "@project.description@" version: "@project.version@" spring-boot-version: "@project.parent.version@" |
3、其他配置:
如果需要顯示項(xiàng)目版本號,需要在pom.xml中添加這個(gè)(build-info):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<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> |
4、問題解決:
如果發(fā)現(xiàn)被監(jiān)控端啟動(dòng)的時(shí)候出現(xiàn)InetAddress.getLocalHost() throws UnknownHostException
錯(cuò)誤,是因?yàn)闆]配置本機(jī)機(jī)器名和ip的對應(yīng)關(guān)系。
解決方法:
編輯hosts文件:
vi /etc/hosts
添加ip和機(jī)器名的關(guān)聯(lián):192.168.0.31 host31 myhost-31
監(jiān)控端和被監(jiān)控端都啟動(dòng)后,訪問:http://localhost:64000/svc-monitor/sba,就可以看到被監(jiān)控服務(wù)的各種詳情了。
以上是被監(jiān)控端主動(dòng)注冊法。
還有另外一種方法是:如果被監(jiān)控端已經(jīng)使用了Spring Cloud向Eureka注冊了服務(wù),則可以由監(jiān)控端直接去Euraka中發(fā)現(xiàn)并監(jiān)控這個(gè)服務(wù)。此方法調(diào)試起來比較復(fù)雜,這里先不介紹了。
總結(jié)
以上所述是小編給大家介紹的使用spring-boot-admin對spring-boot服務(wù)進(jìn)行監(jiān)控的實(shí)現(xiàn)方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對服務(wù)器之家網(wǎng)站的支持!
原文鏈接:http://blog.csdn.net/clementad/article/details/70613209