springboot——有空监控Admin学习

监控管理对象:程序及状态、日志、服务等
指标:内存、虚拟机、线程请求等

监控的实施:
做监控信息的服务器:获取被监控服务信息并显示
被监控服务:是否启动被监控的配置,被监控的内容的规定

Spring Boot Admin,开源,用于管理,监控SpringBoot应用程序。——客户端注册到服务端,通过HTTP请求方式,服务端定期从客户端获取对应信息,通过UI界面展示对应信息。(非spring官方维护)

Admin服务器:
依赖,需要与spring-boot-----parent版本一致

  1. 依赖:spring-boot-admin-starter-server,(可利用IDEA的框架支持),同时做页面显示,要达成web包(web依赖)
  2. 所需配置:配置号服务器端口
  3. springboot启动类注解:@EnableAdminServer

如何查看:URL:(做监控)服务器端口

被监控服务:

  1. 依赖:spring-boot-admin-starter-client,上同,做出web,
  2. 配置application.yml:
server:
  port: 80

spring:
  boot:
    admin:
      client:
      	#注册地址
        url: http://localhost:8080
#指定需要被监控内容
management:
  endpoint:
  	#有关健康指标:如状态...
    health:  #health为必开项,actuator对外开发多少数据:单一
      show-details: always
  #其他端点
  endpoints:
    web:
      exposure:
        include: "*" #  对web端开放全部端点,控制有关
    #actuator对外开发多少数据:全部
    enabled-by-default: true  #默认true

有关Actuator,通过地点配置与访问,获取端点信息。(client依赖默认有个依赖actuator,利用此jar包可实现外部访问),可通过postman发送访问获取有关actuator的所有信息:http://URL:client端口/actuator
springboot——有空监控Admin学习_第1张图片
springboot——有空监控Admin学习_第2张图片
springboot——有空监控Admin学习_第3张图片
springboot——有空监控Admin学习_第4张图片
有关暴漏端点形式JMX(JConsole)和Web(页面),JMX端点大多是全是开启,web是大多全关闭

有关端点info端点自定义配置(springboot并没有定义有关):
方式1 :通过配置文件静态信息

info:
  #项目有关信息,读取了pom文件
  appName: @project.artifactId@
  version: @project.version@
  #自定义有关内容
  author: 自定义作者

方式2:有关动态信息的配置:(记得加成spring组件)
自定义类,实现InfoContributor,在build.withDatail()方法中放入消息

有关health指标(不能自定义静态配置):health指标是有关项目各组件的状态,单个组件up/down影响整个项目
动态配置:(记得加成spring组件)
自定义类实现HealthIndicator接口或继承AbstractHealthIndicator,builder.withDetail()方法添加,builder.status.(Status.UP)(有4中状态,UNKNOWN/UP/DOWN/OUT_OF_SERVICE,)
举例:

boolean condition = true;
        if(condition) {
            builder.status(Status.UP);
            builder.withDetail("runTime", System.currentTimeMillis());
            Map infoMap = new HashMap();
            infoMap.put("buildTime", "2006");
            builder.withDetails(infoMap);
            builder.status.Status.UP}else{
            builder.status(Status.OUT_OF_SERVICE);
            builder.withDetail("");
            //builder.down();
        }

有关metrics性能指标端点的配置:
模拟:为业务方法,通过形参MeterRegistry的方法做相关配置(实际会在另外运维系统操作)

自定义endpoint的开发:(公司会有专门的业务监控等各自的系统)
通过自定义类:

@Component
//自定义端点名称
@Endpoint(id="pay",enableByDefault = true)
public class PayEndpoint {
    @ReadOperation  //调用pay端点时调取以下方法
    public Object getPay(){
        Map payMap = new HashMap();//模拟json数据
        payMap.put("level 1","300");//给予返回内容类型相关数据
        payMap.put("level 2","291");
        payMap.put("level 3","666");
        return payMap;
    }
}

你可能感兴趣的:(spring,boot,学习,java)