1. 程式人生 > 實用技巧 >ELK日誌收集(SpringBoot)

ELK日誌收集(SpringBoot)

目錄

環境&準備

  1. 下面所有操作都基於CentOS7

  2. 基於目前官網最新版搭建(版本號7.8)

    es+kibana+logstash

  3. 官網下載安裝包

    ES下載

    kibana下載

    logstash下載

    如官網打不開,可從我的雲盤中下載(7.8版本)

    連結:https://share.weiyun.com/O10eSbOH 密碼:ir72nx

  4. 安裝JDK

    安裝方法見CentOS7安裝JDK8

ES安裝

Elasticsearch-CentOS7單機安裝測試

Kibana安裝

Kibana-CentOS7單機安裝測試

Logstash安裝

Logstash-CentOS7單機安裝測試

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

  1. 進入 http:// Kibana的IP:5601

  2. 選擇Stack Management

  3. 確認上面配置的Logstash-output中index=mylog是否建立了

    注意:只有SpringBoot專案啟動後才會有

  4. mylog存在,點選下面

  5. 輸入"mylog"

  6. 選擇如下

  7. 檢視日誌

    • 執行專案中那個迴圈的輸出方法
    • 就可以看到收集的實時日誌了

附:SpringBoot專案

elk.zip