springboot集成elk实现分布式日志管理

1.安装elk

https://www.cnblogs.com/xuaa/p/10769759.html

2.idea创建springboot项目

File -> New -> Project

3.选择Spring Initializr,点击Next

4.直接Next

5.选择Web,勾选Web,点击Next

6.直接点击Finish创建完成

7.在上一步创建的项目pom.xml中添加以下依赖

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
</dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>

8.在resources目录下创建logback.xml,添加以下内容

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>

<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>172.29.22.151:9000</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>

<root level="INFO">
<appender-ref ref="LOGSTASH"/>
<appender-ref ref="CONSOLE"/>
</root>
</configuration>

注:172.29.22.151位logstash服务所在的服务器IP地址,9000为logstash服务config目录下logstash-elasticsearch.conf中配置的端口号

9.验证

创建controller目录下新增DemoController.java,内容如下:

package com.example.elkdemo.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

/**
* TODO
*
* @author berger.xu
* @date 2019/4/26
*/
@Slf4j
@RestController
@RequestMapping(value = "/demo")
public class DemoController {

@GetMapping(value = "/test")
@ResponseBody
public void test(){
log.debug("message0");
log.info("message1");
log.warn("message2");
log.error("message3");
}
}

在浏览器中访问http://localhost:8088/demo/test;注:其中8088为这个demo服务的端口,加debug级别的日志打印是为了验证logback.xml中配置的INFO日志级别是否生效。

控制台打印了日志内容如下:

 

elasticsearch head中的日志内容如下:

kibana中的日志内容如下:

猜你喜欢

转载自www.cnblogs.com/xuaa/p/10774950.html