不登录服务器如何在线查看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端点上的一些监控。

常见的功能或者监控如下:

二、创建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"?>

    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.7.3
         
    
    com.example
    boot-admin-server
    0.0.1-SNAPSHOT
    boot-admin-server
    Demo project for Spring Boot
    
        1.8
    
    

        
            org.springframework.boot
            spring-boot-starter-web
        

        
            de.codecentric
            spring-boot-admin-starter-server
            2.5.1
        

    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


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"?>

    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.7.3
         
    
    com.example
    boot-admin-client
    0.0.1-SNAPSHOT
    boot-admin-client
    Demo project for Spring Boot
    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            de.codecentric
            spring-boot-admin-starter-client
            2.5.1
        

    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


2、新建BootAdminClientApplication启动类

然后在工程的启动类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-client
  boot:
    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"?>

	
	
	
	

	
	
		
			%highlight${log.pattern}
		
	

	
	
		${log.path}/info.log
		
		
			
			${log.path}/info.%d{yyyy-MM-dd}.log
			
			30
		
		
			${log.pattern}
		
		
			
			INFO
			
			ACCEPT
			
			DENY
		
	

	
		${log.path}/error.log
		
		
			
			${log.path}/error.%d{yyyy-MM-dd}.log
			
			30
		
		
			${log.pattern}
		
		
			
			ERROR
			
			ACCEPT
			
			DENY
		
	

	
	
	
	

	
	
	
	
	

	
		
	

	
	
		
		
	

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

展开阅读全文

页面更新:2024-04-30

标签:在线   后台   服务器   日志   路径   指标   版本   代码   文件   工程

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top