ELK整合SpringBoot日志收集


ELK簡介:

  ELK是Elasticsearch+Logstash+Kibana簡稱

  1. Elasticsearch:是一個分布式的搜索和分析引擎,可以用於全文檢索、結構化檢索和分析,並能將這三者結合起來。Elasticsearch 基於 Lucene 開發,現在是使用最廣的開源搜索引擎之一。
  2. Logstash: 簡單來說就是一根具備實時數據傳輸能力的管道,負責將數據信息從管道的輸入端傳輸到管道的輸出端,與此同時這根管道還可以讓你根據自己的需求在中間加上濾網,Logstash提供了很多功能強大的濾網以滿足你的各種應用場景。
  3. Kibana: 是一個開源的分析與可視化平台,設計出來用於和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的數據,使用各種不同的圖標、表格、地圖等,kibana能夠很輕易的展示高級數據分析與可視化。

  ELK實現的日志采集的核心是,通過 logstash 將應用系統的日志通過 input 收集,然后通過內部整理,通過 output 輸出到 Elasticsearch 中,其實就是建立了一個 index,然后 kibana作為可視化平台,將 ES 的index進行輸出到平台,通過圖表的方式進行展示。

環境准備:

  JDK: 1.8

  OS: windows

  elasticsearch:6.5.1

  kibana:6.5.1

  logstash:6.5.1

環境搭建:

  其中 elasticsearch 與 kibana 的搭建可以參考 https://www.cnblogs.com/wuzhenzhao/p/12889339.html , 在這里就不贅述了。

  然后分別啟動 Elasticsearch 、 kibana 。

1.Logstash 的安裝包進行解壓。然后在config文件夾下添加 test.conf 文件內容:

input{ tcp { mode => "server" host => "0.0.0.0" #我這里是本地 port => 9061 #開放這個端口進行采集 codec => json_lines # 編解碼器 有的版本需要肚子安裝 } } output{ elasticsearch{ #es地址 hosts=>["127.0.0.1:9200"] # 在es里產生的index的名稱 index => "springboot-study-%{+YYYY.MM.dd}" } stdout{codec => rubydebug} }

   啟動 logstash:./logstash -f  ../config/test.conf 

  上面是采用 TCP的方式去采集日志,還可以指定日志文件, 修改 input,linux系統還需要給該日志文件授權:

input{ file { path => "D:/logs/web_info.log" type => "systemlog" start_position => "beginning" stat_interval => "3" } }

  Logstash 的input 、output、以及這里沒有提及的 filter都是核心。有興趣的可以深入了解。

2. 添加依賴:

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>4.9</version>
</dependency>

3.在resources下添加logback-spring.xml   只需把下面ip地址修改一下即可

<?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>127.0.0.1:9061</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>

4. application.properties 修改配置:

logging.config = classpath:logback-spring.xml

5.然后啟動springboot ,在對應的controller 里面打印一些日志,然后就可以看到啟動 Logstash 的 控制台有所輸出,就可以了。

6.登錄kibana http://localhost:5601/ ,點擊導航欄 monitoring 模塊 --->  點擊 Indices :

  可以看到在 es 里面已經產生該 index、說明日志成功收集。點擊 Management 里面的 Index Patterns:

  點擊 Create index pattern 輸入我們在 Logstash 里面配置的 index 的名稱進行匹配搜索

  點擊 next step:

  點擊創建,成功后顯示如下界面:

  然后回到 Discover ,保持服務是啟動狀態,可以看到

  對於 Kibana 提供了很多的可視化圖表:

  我們選一個柱狀圖:

  選擇 index:

  選擇完以后,然后需要構建 X、Y軸(多訪問幾次,圖示效果更好):

  在這里我們可以添加不同的統計方式,然后如上圖,我們可以點擊右上角的 save 按鈕,將我們構造出來的 視圖 保存起來,然后可以通過  Dashboard 將這些試圖組裝到一個儀表盤上進行展示。


免責聲明!

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



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