SpringBoot第二十四篇:应用监控之Admin

你离开我真会死。 提交于 2020-04-29 12:55:36

作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11457867.html 版权声明:本文为博主原创文章,转载请附上博文链接!

<br> ## 引言

  前一章(SpringBoot第二十二篇:应用监控之Actuator)介绍了 SpringBoot 应用使用 Actuctor 进行监控。文章最后也提出了一个问题,是否可以将监控结果更好的展示个运维同学?

  本章解答这个问题。

  Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源项目。分为 admin-server 与 admin-client 两个组件,admin-server通过采集 actuator 端点数据,显示在 spring-boot-admin-ui 上,已知的端点几乎都有进行采集,通过 spring-boot-admin 可以动态切换日志级别、导出日志、导出 heapdump、监控各项指标 等。

  Spring Boot Admin 在对单一应用服务监控的同时也提供了集群监控方案,支持通过eurekaconsulzookeeper等注册中心的方式实现多服务监控与管理。

<br>

SpringBoot Admin的使用

<br>

创建 admin-server

首先,引入 maven 依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-server-ui</artifactId>
</dependency>

为了便于区分,定义端口号为 8081:

server.port=8081

在启动类上加注解 @EnableAdminServer .

即:

package com.yanfei1819.adminserver;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableAdminServer
public class AdminServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(AdminServerApplication.class, args);
    }
}

<br>

我们先来感受一下 SpringBoot Admin 的界面:

页面中没有内容,下面创建要监控的客户端。

<br>

创建 admin-client

引入 maven 依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>

设置其端口号为 8082:

server.port=8082
spring.boot.admin.client.url=http://localhost:8081
# 激活所有的端点的web方式请求。如果不激活,将看不到详细的监控信息。
management.endpoints.web.exposure.include=*

<br>

先启动 admin-server,再启动 admin-client。

以下是相关的一些界面:

监控的首页:

Applications:

执行日志:

详细信息:

<br>

在以上的界面中,几乎囊括了所有的监控信息。读者感兴趣可以逐个详细了解。此处因篇幅所限,不作展开处理。

如果是需要监控多个客户端的信息,只需要在客户端配置文件 application.properties 中配置:

spring.boot.admin.client.url=http://localhost:8081
# 激活所有的端点的web方式请求。如果不激活,将看不到详细的监控信息。
management.endpoints.web.exposure.include=*

本章源码写了两个客户端,文中为简化只演示了一个。

<br>

总结

  上述文章只是介绍了 SpringBoot Admin 的相关应用,在实际项目中,可以做安全认证,权限设置,甚至消息通知等。

  到目前为止,本系列已经写了二十四篇。一路使用的下来的感受是,用比理解简单。最重要的是理解,理解思想,原理(当然,本系列由于针对的是 SpringBoot 入门的学习者,在原理方面未作深入的详解。后续将另开一个系列,专攻原理解析),方能使用起来得心应手,碰到问题而不是只会复制、粘贴、问度娘。

  说一句题外话。这一篇与上一篇的时间相距较长。主要是作者在这段时间大概学习了一下分布式、高并发和 MySQL 这三块的知识点。后面有时间也想将这些分享给大家。

  最后,欢迎大佬拍砖。

<br>

ps:本系列的源码地址

<br> ![](https://img2018.cnblogs.com/blog/1183871/201909/1183871-20190904111525706-1403904811.png)

原文出处:https://www.cnblogs.com/yanfei1819/p/11457867.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!