前文:前幾天整合elk 框架,中間出了不少的問題,故寫這篇文章記錄一下同時也提供給想要了解這一塊內容的同學一個參考的機會:
對於ELK的介紹可以看一下這篇文章,寫的很詳細,英語好的推薦官方的文檔
目錄
1.前置條件:
- 已經簡單搭建springboot2.1.3 項目;
- es6.3.1 和kibana6.3.1啓動完畢;
2.具體步驟:
下載資源
下載對應對應版本的logstash 和 filebeat 並解壓 (這裏用的6.3.1 版本 elk對應的版本是在太多 開始搭建的時候就吃版本不對應的虧,所以這裏儘量保證這幾個中間件的版本一致)
filebeat下載地址 | logstash下載I地址 (其他版本直接把鏈接的版本改一下就行 :))
運行logstash
在logstash的安裝目錄下新建default-pipeline.conf
#輸入類型爲filebeat 監聽端口:5044
input{
beats{
port => "5044"
}
}
#輸出類型elasticsearch,多個地址之間用',' 隔開
output{
elasticsearch {
hosts => [ "0.0.0.0:9200" ]
}
}
執行命令
bin/logstash -f default-pipeline.conf --config.reload.automatic
如圖顯示成功:
運行filebeat
在filebeat安裝目錄新建filebeat.yml,輸入以下內容:
filebeat.inputs:
- type: tcp
enable: true
max_message_size: 10MiB
#filebeat 監聽端口
host: "0.0.0.0:9000"
output.logstash:
#logstash 監聽端口
hosts: ["localhost:5044"]
執行命令
./filebeat -e -c filebeat.yml -d "publish"
springboot連接filebeat
maven 依賴
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--logstash 依賴-->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.9</version>
</dependency>
</dependencies>
在resources目錄下創建config/logback-spring.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>0.0.0.0: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>
以上內容僅供參考,歡迎一起討論!