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中的日志內容如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM