Spring Cloud 应用监控

142 阅读4分钟

springboot admin,用于监控基于Spring Boot 的应用,并提供UI界面,是一个很好使,很方便的利器;项目要加入Admin监控目前主要有两中方式,一种是通过Admin client,另外一种就是通过eureka,将应用注册到eureka,他通过内置的zuul机制,可以读取到服务中心所有注册的应用,实现监控,本文主要介绍第二种方式。

首先要有eureka的服务注册中心,这个在本系列文章中已经介绍过,这里我们就不在多说,直接介绍spring boot admin项目的开发。

首先引入pom依赖:

[Java] _纯文本查看_ _复制代码_

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifactId>

<version>`1.5.9`.RELEASE</version>

<relativePath/> <!-- lookup parent from repository -->

</parent>

<properties>

<project.build.sourceEncoding>UTF-`8`</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-`8`</project.reporting.outputEncoding>

<java.version>`1.8`</java.version>

<mybatis.spring.boot.version>`1.3.0`</mybatis.spring.boot.version>

</properties>

<dependencies>

<dependency>

<groupId>de.codecentric</groupId>

<artifactId>spring-boot-admin-server</artifactId>

<version>`1.4.6`</version>

</dependency>

<dependency>

<groupId>de.codecentric</groupId>

<artifactId>spring-boot-admin-server-ui</artifactId>

<version>`1.4.6`</version>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-test</artifactId>

<scope>test</scope>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-mail</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-security</artifactId>

</dependency>

</dependencies>

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-dependencies</artifactId>

<version>Camden.SR5</version>

<type>pom</type>

<scope>`import`</scope>

</dependency>

</dependencies>

</dependencyManagement>

<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>

这里一定要注意springcloud的版本使用,要和springboot版本兼容,测试修改过多个版本,最终确定Camden.SR5和上面的springboot版本是兼容的,这样配置在本地使用idea直接启动程序可以正常使用,但是在使用maven编译成jar包是会报错,记住吧test包中的测试类删掉就可以编译成功了,这是一个坑,搞了一天才弄成功。

当前日志级别管理仅限 Logback,通过 JMX 实现,所以需要依赖 jolokia 。同时,还需要配置 Logback 的 JMXConfigurator:

logback.xml

[Java] _纯文本查看_ _复制代码_

?

1

2

3

4

5

<?xml version=`"1.0"encoding="UTF-8"`?>

<configuration>

<include resource=`"org/springframework/boot/logging/logback/base.xml"`/>

<jmxConfigurator/>

</configuration>

启动类如下:

[Java] _纯文本查看_ _复制代码_

?

01

02

03

04

05

06

07

08

09

10

@Configuration

@EnableAutoConfiguration

@EnableDiscoveryClient

@EnableAdminServer

public`class`AdminserverApplication {

public`staticvoidmain(String[] args) {`

SpringApplication.run(AdminserverApplication.`class`, args);

}

}

配置文件:

[Java] _纯文本查看_ _复制代码_

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

# 解决windows下运行时无法识别主机名的问题

spring.boot.admin.client.prefer-ip=`true`

server.port=`7086`

spring.application.name=zk_admin

eureka.instance.preferIpAddress=`true`

eureka.client.service-url.defaultZone=http:`//172.16.1.28:7082/eureka/,http://172.16.1.29:7082/eureka/`

#定义各种额外的详情给服务端显示

#从pom.xml中获取

info.app.name=`"@project.name@"`

info.app.description=`"@project.description@"`

info.app.version=`"@project.version@"`

info.spring-boot-version=`"@project.parent.version@"`

info.version=`@project`.version@

#宕机邮件提示

spring.mail.host=smtp.`126`.com

spring.mail.username=****

spring.mail.password=*****

spring.boot.admin.notify.mail.from=*****

spring.boot.admin.notify.mail.to=******

management.security.enabled=`false`

management.security.roles=SUPERUSER

security.user.name=xjgz2018

security.user.password=xjgz2018.

security.basic.enabled=`false`

#开启shutdown的安全验证

endpoints.health.sensitive=`true`

endpoints.cors.allowed-methods=HEAD,GET,POST

#启用shutdown

endpoints.shutdown.enabled=`true`

#禁用密码验证

endpoints.shutdown.sensitive=`false`

配置文件中还增加了服务状态变化邮件提示,以方便服务的管理。

服务启动后访问 http://127.0.0.1:7086

页面如下:

注:本文转载自CSDN,版权归CSDN所有。 原文链接:blog.csdn.net/wang_shuyu/article/details/7949721