Spring Boot Admin在线查看spring boot后台日志
当前,应用系统微服务架构、前后端分离(前端vue,后端springboot),已经成为大部分项目的标准技术架构,但在项目上线后,spring boot后端服务部署在服务器上,大部分公司对服务器都有安全管理要求,一般开发人员无法登录服务器,就不能查看到后台日志,经常遇到应用系统报错,但看不到后台详细服务日志,导致程序员不能很快定位错误。基于此,可以使用Spring Boot Admin组件集成整合spring boot工程,可以实现在线实时查看后端服务日志,就不用再去服务器管理员去服务器本地查看了。
Spring Boot Admin组件可以集成单体的spring boot工程,也可以通过服务注册发现中心,集成多个spring boot微服务应用。
本文重点介绍如果集成单体springboot工程,这种架构项目上使用的最多,部署起来也比较简单。
一、Spring Boot Admin简介
Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。 应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)或使用SpringCloud注册中心(例如Eureka,Consul)发现。 UI是的AngularJs应用程序,展示Spring Boot Admin Client的Actuator端点上的一些监控。
常见的功能或者监控如下:
- 显示健康状况
- 显示详细信息,例如
- JVM和内存指标
- micrometer.io指标
- 数据源指标
- 缓存指标
- 显示构建信息编号
- 关注并下载日志文件
- 查看jvm系统和环境属性
- 查看Spring Boot配置属性
- 支持Spring Cloud的postable / env-和/ refresh-endpoint
- 轻松的日志级管理
- 与JMX-beans交互
- 查看线程转储
- 查看http跟踪
- 查看auditevents
- 查看http-endpoints
- 查看计划任务
- 查看和删除活动会话(使用spring-session)
- 查看Flyway / Liquibase数据库迁移
- 下载heapdump
- 状态变更通知(通过电子邮件,Slack,Hipchat,……)
- 状态更改的事件日志(非持久性)
二、创建Spring Boot Admin Server
首先创建一个Spring Boot工程,本文的所有工程的Spring Boot版本为2.7.3 ,JDK版本1.8,
spring-boot-admin-starter-server版本为2.5.1。
1、修改pom文件
完整的pom.xml文件如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>boot-admin-server</artifactId><version>0.0.1-SNAPSHOT</version><name>boot-admin-server</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><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><version>2.5.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
2、新建BootAdminServerApplication启动类
然后在工程的启动类
BootAdminServerApplication
加上@EnableAdminServer注解,开启AdminServer的功能,代码如下:
package com.example.server;import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@EnableAdminServer
public class BootAdminServerApplication {public static void main(String[] args) {SpringApplication.run(BootAdminServerApplication.class, args);}}
3、修改application.yml配置
在工程的配置文件application.yml中配置程序名和程序的端口,代码如下:
server:port: 9091
spring:application:name: boot-admin-server
4、启动访问spring boot admin
启动应用,访问http://127.0.0.1:9091
因为当前还没有springboot应用接入,所有登录后看到的是0个应用。
三、创建Spring Boot Admin Client
首先创建一个Spring Boot工程,本文的所有工程的Spring Boot版本为2.7.3 ,JDK版本1.8,
spring-boot-admin-starter-client版本为2.5.1。
1、修改pom文件
完整的pom.xml文件如下
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>boot-admin-client</artifactId><version>0.0.1-SNAPSHOT</version><name>boot-admin-client</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><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><version>2.5.1</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
2、新建BootAdminClientApplication启动类
package com.example.client;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class BootAdminClientApplication {public static void main(String[] args) {SpringApplication.run(BootAdminClientApplication.class, args);}}
增加一个Controller测试类,用于后面验证生成后台日志信息。
package com.example.client;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.Date;@Controller
@RequestMapping("/test")
public class HelloController {private static final Logger log = LoggerFactory.getLogger(HelloController.class);@GetMapping("/hello")public String hello(){String s = "hello," + new Date();log.error(s);return s;}}
3、修改application.yml配置
在工程的配置文件application.yml中配置程序名和程序的端口,以及向admin-server注册的地址为http://localhost: 9091,日志文件的路径logging.file.name,并暴露自己的actuator的所有端口信息,代码如下:
server:port: 8080
spring:application:name: boot-admin-clientboot:admin:client:url: http://localhost:9091
#系统日志配置
logging:#spring admin boot日志输出配置,需要跟logback-spring.xml配置中日志路径一致file:name: logs/boot-admin-client/error.log
# 服务端点检查
management:endpoints:web:exposure:include: "*"endpoint:health:show-details: always
4、增加logback-spring.xml日志配置文件
本配置文件可根据项目需求修改,符合logback标准即可,注意log.path的路径要与application.yml文件中指定的路径一致。
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!-- 日志存放路径 --><property name="log.path" value="logs/boot-admin-client" /><!-- 日志输出格式 --><property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" /><!-- 控制台输出 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%highlight${log.pattern}</pattern></encoder></appender><!-- 系统日志输出 --><appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/info.log</file><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件名格式 --><fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 日志最大的历史 30天 --><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>INFO</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter></appender><appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/error.log</file><!-- 循环政策:基于时间创建日志文件 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 日志文件名格式 --><fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern><!-- 日志最大的历史 30天 --><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 过滤的级别 --><level>ERROR</level><!-- 匹配时的操作:接收(记录) --><onMatch>ACCEPT</onMatch><!-- 不匹配时的操作:拒绝(不记录) --><onMismatch>DENY</onMismatch></filter></appender><!-- 系统模块日志级别控制 --><logger name="com.yuncheng" level="info" /><!-- Spring日志级别控制 --><logger name="org.springframework" level="warn" /><!--myibatis log configure --><logger name="com.apache.ibatis" level="warn" /><logger name="java.sql.Connection" level="warn" /><logger name="java.sql.Statement" level="warn" /><logger name="java.sql.PreparedStatement" level="warn" /><root level="info"><appender-ref ref="console" /></root><!--系统操作日志--><root level="info"><appender-ref ref="file_info" /><appender-ref ref="file_error" /></root>
</configuration>
5、启动访问,在线查看日志
启动该应用后,访问
http://127.0.0.1:8080/test/hello,模拟生成后台错误日志,此时查看spring boot admin界面,发现有1个应用已经接入。
点击进入,可以查看该应用的基本性能监控信息
点击进入日志菜单,看到spring boot 后台服务日志在线实时显示出来了,这样就不用再找服务器管理员看日志了。
也可以在线调整服务端日志级别,比如可以把日志级别从INFO调整到DEBUG,这样程序员开发调试代码也很方便了。
以上文档描述了Spring Boot Admin如何集成监控spring boot单体应用,如何在线查看spring boot后台日志,Spring Boot Admin也可通过服务注册发现中心Nacos监控多个spring boot微服务。
详细文章见:
https://yunchengxc.yuque.com/books/share/f9f667ff-8c2e-41f4-b1bf-052dc872186f/evsv1k
Spring Boot Admin在线查看spring boot后台日志相关推荐
- Spring Boot Admin –用于管理Spring Boot应用程序的Admin UI
作为微服务开发的一部分,我们许多人都将Spring Boot与Spring Cloud功能一起使用. 在微服务领域,我们将有许多Spring Boot应用程序将在相同/不同的主机上运行. 如果将Spr ...
- Spring Boot Admin系列(3)-Spring Boot Admin添加登录认证
前言 在搭建成功并集成nacos后,未登录用户也可访问首页,然后敏感信息太多,肯定得需要进程登录认证,此处只是一个演示,实际需要整合自己项目得权限认证 步骤 amdin服务端项目添加pom <d ...
- Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序
1. Spring Boot Admin 是什么 Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 S ...
- Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序,支持异常邮件通知
点赞再看,动力无限.Hello world : ) 微信搜「 程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. 1. ...
- 《深入理解 Spring Cloud 与微服务构建》第十五章 微服务监控 Spring Boot Admin
<深入理解 Spring Cloud 与微服务构建>第十五章 微服务监控 Spring Boot Admin 文章目录 <深入理解 Spring Cloud 与微服务构建>第十 ...
- Spring Boot Admin 基于security 认证监控
首先介绍一下Spring Boot Admin是用来干嘛的,它用于监控基于 Spring Boot 的应用,它是在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI. ...
- Spring Boot Admin (Spring Clould Admin) 官方文档重点内容中文翻译
GitHub地址 文章目录 1. Spring Boot Admin简介 2. 快速入门 2.1 配置Spring Boot Admin Server (SBA Server) 2.2 注册Clien ...
- Spring Boot Admin,贼好使
Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和监控 Spring Boot 应用程序.应用程序可以通过 http 的方式,或 Spring Cloud 服务发现机制注册到 ...
- Spring Boot Admin的使用
文章目录 配置Admin Server 配置admin client 配置安全主键 Hazelcast集群 Spring Boot Admin的使用 前面的文章我们讲了Spring Boot的Actu ...
最新文章
- 转录本counts,FPKM,TPM相互转化
- 点击屏幕上EditText区域以外的任何地方隐藏键盘的解决方法
- BCH压力测试悄然开始?有优势但也有不足!
- el-table-column中格式化判断数据为空则显示指定内容
- cmake的使用--目标的编译附源码
- AD 脚本kixtart运用之五(用户电脑屏保设置)
- 数学家比10个师更有威力?
- 从程序员到项目经理(9):程序员加油站 -- 再牛也要合群【转载】
- Java8中list转map方法总结
- 被利用达数百万次、瞄准 Linux 系统的 Top 15漏洞
- java生成验证码图片
- 2个相同的 stm32 can通讯不成功_一文读懂,基于 STM32 和 CAN 总线的温度监控系统的设计方法...
- WPF-遍历页面所有TextBox做数据校验
- 人工智能ai下海百度云_云AI就像核电
- 春节感悟 - 原年人的爱和恨
- mscorsvw.exe
- vue element-ui 键盘输入enter键 触发事件
- 小笨狼的LLDB技巧:chisel
- 图像处理冷知识——dpi和ppi
- 2022-2028年中国干冰行业市场发展现状及投资策略研究报告
热门文章
- 关于mask蒙尘效果触发
- 【转】想到他再看不到自己英俊的脸,方继藩就心肝儿疼
- 主要视频压缩技术在中国内地市场发展分析
- 小云路由器mysql地址_小云OS3.0,极简操作,让小白玩转离线下载和NAS(转发)
- 2022年2月halcon licenses
- 王者荣耀微信23区服务器在哪,王者荣耀微信23区2点富婆出没,大厅红包满天飞,酸了...
- word怎么显示计算机数字,如何使word文档自动显示字数统计 Word自动统计文档字数在哪里...
- 美国纽约大学计算机专业排名,纽约大学计算机科学排名怎么样?专业好不好?
- CEA-861-D infoframe
- 换了工作城市,社保和公积金的转移