快速搭建自己的日誌收集,方便各個微服務的日誌收集。
搭建ELK
- 採用docker-elk進行快速搭建ELK的環境
- 進行clone倉庫
git clone https://github.com/deviantony/docker-elk.git
- 開啓docker-compose up -d (需要事先安裝好docker-compose)
- 如圖1.1 開啓docker
- 訪問如下地址進行快讀訪問
名稱 | 地址 |
---|---|
ES | http://localhost:9300 |
Kibana | http://localhost:5601 |
Springboot使用ELK
- 增加依賴
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.1</version>
</dependency>
- 編輯
logback-spring.xml
注意:<destination></destination>
標籤內填寫你的logstansh的地址和端口
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>localhost:5500</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<root level="INFO">
<appender-ref ref="LOGSTASH" />
<appender-ref ref="CONSOLE" />
</root>
</configuration>
- 編寫測試
這裏進行打印日誌50次。運行項目後通過kinbana新增的index進行查看數據。
package com.elk.test
import org.slf4j.LoggerFactory
import org.springframework.boot.CommandLineRunner
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class TestApplication : CommandLineRunner {
val log = LoggerFactory.getLogger(TestApplication::class.java)
override fun run(vararg args: String?) {
for (i in 0..50) {
log.error("test error, id=$i ; name= Test$i")
}
}
}
fun main(args: Array<String>) {
runApplication<TestApplication>(*args)
}
Kibana查看
- 新增Index索引…。
- 索引建立完成後,即可進行查看已經有我們想要的結果了