SpringBoot整合ELK實現(xiàn)日志監(jiān)控
ELK 安裝匯總
可參考一下安裝內容,過程親測可用。
CentOS下安裝ElasticSearch7.9.2(無坑版)
新建SpringBoot項目
pom依賴
<?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.6.1</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>spring-boot-mysql</artifactId> <version>0.0.1-SNAPSHOT</version> <name>spring-boot-mysql</name> <description>Spring Boot with MySQL</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--連接logstash相關依賴--> <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>6.6</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.16</version> <scope>compile</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
新建或修改application.yml
這個操作隨意,可以不改端口號
server: port: 8088
創(chuàng)建日志配置文件
在項目的 resources 目錄下創(chuàng)建 logback-spring.xml 文件,也就是日志輸出配置文件SpringBoot默認的使用的logback日志,必須叫這個名字?。?!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<!--應用名稱-->
<property name="APP_NAME" value="logstash"/>
<!--日志文件保存路徑-->
<property name="LOG_FILE_PATH" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/logs}"/>
<contextName>${APP_NAME}</contextName>
<!--每天記錄日志到文件appender-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<!--輸出到logstash的appender-->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--可以訪問的logstash日志收集的ip和端口-->
<destination>你的ip:端口號</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
創(chuàng)建一個測試類
package com.example.demo.controller;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Slf4j
public class HelloController {
// private static final Logger logger = LoggerFactory.getLogger(HelloController.class);
@GetMapping("/hello")
public String hello() {
log.warn("HelloController執(zhí)行-----log.warn");
log.info("HelloController執(zhí)行-----log.info");
log.error("HelloController執(zhí)行-----log.error");
// logger.info("HelloController執(zhí)行hello");
return "hello";
}
}啟動項目

Kibana配置
SpringBoot項目啟動后,可以看到默認已經(jīng)創(chuàng)建出索引文件

索引數(shù)據(jù)。

模擬數(shù)據(jù)請求
http://localhost:8088/hello

控制臺日志

Kibana數(shù)據(jù)

索引規(guī)則配置
在kibana中,創(chuàng)建一個索引規(guī)則
點擊堆棧管理Stack Mangement

點擊索引規(guī)則Index pattern

然后創(chuàng)建索引規(guī)則
通過輸入的 log-goboy-dev-* 篩選一條匹配的索引

選擇時間參數(shù)作為@timestamp通配符字段,然后點擊右下角的創(chuàng)建索引模式Create index pattern;

創(chuàng)建完成后可以看到索引的相關詳細信息

索引文檔查看
點擊Discover

通過Refresh按鈕進行數(shù)據(jù)的查看,左側可進行文檔過濾。
通過索引文檔內容可以知道,SpringBoot控制臺打印的相關日志信息。
文檔中包含:時間、日志輸出的結果信息、文檔的版本、日志的級別、線程名、端口、執(zhí)行的方法都全類名、文檔id、文檔索引名等

注意!??!
一定要注意端口號的開放,配置好云服務器的安全組端口開放!?。?/strong>
以上就是SpringBoot整合ELK實現(xiàn)日志監(jiān)控的詳細內容,更多關于SpringBoot ELK日志監(jiān)控的資料請關注腳本之家其它相關文章!
相關文章
SpringBoot讀取properties配置文件中的數(shù)據(jù)的三種方法
本文主要介紹了SpringBoot讀取properties配置文件中的數(shù)據(jù)的三種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-06-06
maven創(chuàng)建spark項目的pom.xml文件配置demo
這篇文章主要為大家介紹了maven創(chuàng)建spark項目的pom.xml文件配置demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
Java實現(xiàn)利用圖片或視頻生成GIF并發(fā)送微信
這篇文章主要為大家詳細介紹了Java語言如何利用圖片或視頻實現(xiàn)生成GIF并發(fā)送微信的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下2022-11-11
Retrofit+RxJava實現(xiàn)帶進度下載文件
這篇文章主要為大家詳細介紹了Retrofit+RxJava實現(xiàn)帶進度下載文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-05-05
java文件如何統(tǒng)計字母出現(xiàn)的次數(shù)和百分比
這篇文章主要介紹了java文件如何統(tǒng)計字母出現(xiàn)的次數(shù)和百分比,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-11-11

