众所周知springboot admin是springboot服务的监控框架,有关的文章也不少,但是大多集中在springboot应用及和springcloud eureka的结合上,今天重点介绍springboot admin在consul微服务中的应用。
springboot admin可以非常方便注册到consul并直接获取注册到consul中的全部微服务,从而获取这些微服务的actuator,以此来对这些微服务的状态进行监控,下面就相关的配置方法逐步介绍:
基于admin的springboot starter编写admin server
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>${spring-boot-admin.version}</version>
</dependency>
</dependencies>
备注:该工程作为consul微服务的子模块,依赖consul框架,因此一些consul的springboot starter在其parent工程里边。
在主类里边注解admin server
package com.crazyice.accumulation.admin;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableAdminServer
@EnableDiscoveryClient
public class Application {
public static void main(String[] args) {
SpringApplication.run( Application.class, args );
在consul配置中心配置,也可以将以下配置加入到application.yml中
##################
# 以下配置到consul #
##################
spring:
boot:
admin:
discovery:
ignored-services: consul,aliyun-*,baidu-*,juhe-api,syswinrpc-flink
title: 微服务监控
brand: <img src="assets/img/icon-spring-boot-admin.svg"><span>微服务监控</span>
#监控监控
management:
health:
redis:
enabled: false
consul:
enabled: true
binders:
enabled: false
endpoints:
exposure:
include: "*"
endpoint:
health:
show-details: always
配置通知邮箱
springboot admin server可以非常方便的将第三方邮箱集成进去,再通过邮件将监控的重要状态变化通知到运维人员邮箱中,配置到application.yml中即可生效(这里以QQ邮箱为例)。
spring:
application:
name: @project.artifactId@
profiles:
active: dev
#邮箱配置
mail:
host: smtp.qq.com
protocol: smtp
username: crazyicelee@qq.com
default-encoding: UTF-8
#QQ邮箱的授权码
password: jahsdjahsjfhjsfs
properties:
mail:
smtp:
auth: true
starttls:
enable: true
required: true
debug: false
打包成docker镜像并运行
该服务运行后也是以微服务注册到consul中,也一并纳入到监控行列之中。
因为consul server和client节点也被注册到consul中,admin缺失情况下也会监控这些节点服务的状况,但是consul本身没有实现actuator,所以要把这些节点的监控忽略掉,否则admin启动后出异常。
admin server属性配置说明