美文网首页
springboot admin在consul中的应用

springboot admin在consul中的应用

作者: 李征兵 | 来源:发表于2019-07-27 15:00 被阅读0次

    众所周知springboot admin是springboot服务的监控框架,有关的文章也不少,但是大多集中在springboot应用及和springcloud eureka的结合上,今天重点介绍springboot admin在consul微服务中的应用。

    springboot admin可以非常方便注册到consul并直接获取注册到consul中的全部微服务,从而获取这些微服务的actuator,以此来对这些微服务的状态进行监控,下面就相关的配置方法逐步介绍:

    基于admin的springboot starter编写admin server

    1. 引入依赖包
        <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工程里边。

    1. 在主类里边注解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 );
        }
    
    }
    
    1. 在consul配置中心配置,也可以将以下配置加入到application.yml中
    ##################
    # 以下配置到consul #
    ##################
    spring:
     boot:
      admin:
       discovery:
        ignored-services: consul,aliyun-*,baidu-*,juhe-api,syswinrpc-flink
       ui:
        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:
        web:
          exposure:
            include: "*"
      endpoint:
        health:
          show-details: always
    
    1. 配置通知邮箱
      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中,也一并纳入到监控行列之中。


    springboot admin注册到consul

    监控效果

    admin监控效果图

    配置被监控springboot微服务

    因为admin监控是基于actuator的,所以只需要按照监控指标要求配置每个微服务即可,也就是在consul的配置中心配置就可以生效。


    被监控微服务配置

    特别注意

    因为consul server和client节点也被注册到consul中,admin缺失情况下也会监控这些节点服务的状况,但是consul本身没有实现actuator,所以要把这些节点的监控忽略掉,否则admin启动后出异常。

    admin server属性配置说明

    配置说明
    示范工程参考下文《consul微服务治理中心采坑》

    相关文章

      网友评论

          本文标题:springboot admin在consul中的应用

          本文链接:https://www.haomeiwen.com/subject/ercerctx.html