ELK日誌收集(SpringBoot)
阿新 • • 發佈:2020-07-22
目錄
環境&準備
-
下面所有操作都基於CentOS7
-
基於目前官網最新版搭建(版本號7.8)
es+kibana+logstash
-
官網下載安裝包
如官網打不開,可從我的雲盤中下載(7.8版本)
連結:https://share.weiyun.com/O10eSbOH 密碼:ir72nx
-
安裝JDK
安裝方法見CentOS7安裝JDK8
ES安裝
Kibana安裝
Logstash安裝
Logstash配置
在logstash安裝中,已經新建了一個my.conf,就還在這個檔案上修改
input { tcp { #模式為serve,代表資料來源為服務端 mode => "server" #SpringBoot logback-spring.xml中指定的ip,用於日誌傳輸到logstash #此處IP可指定為0.0.0.0 #host => "0.0.0.0" host => "192.168.1.232" #SpringBoot logback-spring.xml中指定的埠,用於日誌傳輸到logstash port => 4560 #格式json codec => json_lines } } output { elasticsearch { #這裡是es的地址,多個es要寫成陣列的形式,例如 ["127.0.0.1:9200","127.0.0.2:9200"] hosts => "192.168.1.232:9200" #用於kibana過濾,可以填專案名稱 #index => "mylog" #這種方式將所有資料全部輸出到一個檔案中,不便於後期的資料清理,不推薦 index =>"logstash-%{+yyyy.MM.dd}" #不設定預設是按照日期拆分,便於以後資料清理,推薦 } stdout {}#接到資料後在控制檯輸出一份,可不加 }
儲存後重啟Logstash服務
SpringBoot中logback-spring.xml配置
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false" scan="true" scanPeriod="1 seconds"> <include resource="org/springframework/boot/logging/logback/base.xml"/> <contextName>logback</contextName> <appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>192.168.1.232:4560</destination> #上面這個ip就是my.conf中input配置的host、port <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" /> </appender> <root level="info"> <appender-ref ref="logstash" /> </root> </configuration>
測試
啟動 ES\Kibana\LogStash
啟動SpringBoot專案
使用Idea、windows下CMD啟動、扔到Linux上啟動都可以,但是一定要保證一點:專案執行環境可與LogStash通訊
配置Kibana
-
進入 http:// Kibana的IP:5601
-
選擇Stack Management
-
確認上面配置的Logstash-output中index=mylog是否建立了
注意:只有SpringBoot專案啟動後才會有
-
mylog存在,點選下面
-
輸入"mylog"
-
選擇如下
-
檢視日誌
- 執行專案中那個迴圈的輸出方法
- 就可以看到收集的實時日誌了