Admin健康检查
admin
监控检查,检查的是什么了。检查的是应用实例状态,说白了就是被查服务提供信息给检查服务端。在spring cloud 中可以有两种方式进行健康检查,一种是应用主动上报到admin服务端,第二种就是的admin项目eureka服务端拉取信息。
admin主要就是告诉运维人员,服务出现异常,然后进行通知(微信、邮件、短信、钉钉等)可以非常快速通知到运维人员,相当报警功能。应用中如果没有监控服务状态功能,又需要及时通知运维人员服务状态,就可以使用这个admin服务。
实现admin功能
创建客户端
创建新的模块服务
依赖引入
<!-- Admin 服务 -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
<!-- Admin 界面 -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-server-ui</artifactId>
</dependency>
<!--如果使用eureka拉取方式就需要引入依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
启动添加注解
@SpringBootApplication
@EnableAdminServer
public class AdminApplication {}
添加配置信息
#设置服务注册中心的URL,用于client和server端交流
eureka.client.service-url.defaultZone=http://eureka1.com:7100/eureka/,http://eureka2.com:7200/eureka/
server.port=8081
spring.application.name=admin
主动上报的服务端
如果服务已经添加注册中就不需要进行这步。
依赖引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
添加配置
management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always
spring.boot.admin.client.url=http://localhost:8081
实现效果
所有应用信息
在线状态
查看单个服务信息
所有配置信息,包括默认值都是显示出来,这样就旁边查看配置信息。
环境信息,这个包含本地环境信息,运行环境信息。
异常通知
邮件通知
依赖加载
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
添加配置
# qq邮箱设置
spring.mail.host=smtp.qq.com
spring.mail.username=79811111
spring.mail.password=ssssdfffdddfff
spring.mail.properties.mail.smpt=true
spring.mail.properties.mail.starttls.enable=true
spring.mail.properties.mail.starttls.required=true
#收件邮箱
spring.boot.admin.notify.mail.to=243333355@qq.com
# 发件邮箱
spring.boot.admin.notify.mail.from=79811111@qq.com
qq邮箱怎么获取授权码
当服务异常就会收到邮件
其他通知
自定义通知类型类继承AbstractStatusChangeNotifier类重写doNotify(InstanceEvent event, Instance instance)方法,加载bean初始就可以了。
代码地址
https://gitee.com/zhang798/spring-cloud/tree/admin
分支:admin
git clone https://gitee.com/zhang798/spring-cloud.git -b admin