Springboot 配置logback 到logstash ELK(1)

日誌的管理,能夠很簡單,也能夠很煩人。簡單的可使用tail , cat 等工具來完成基本的需求。node

可是隨着業務的發展,各類應用的日誌多起來以後,若是仍是使用以前的小工具處理起來就費勁了,可能要同時開着幾個甚至十幾個的遠程來查看日誌來定位問題。spring

那有沒有什麼好的解決方案呢?docker

ELK 日誌統一管理

若是以前沒聽過ELK的話,我相信Elasticsearch 仍是起碼聽過的。具體我就不介紹了。想要詳細瞭解,能夠自定Google或者百度。app

今天首先給你們介紹第一部分,如何將咱們的應用日誌輸入到ELK中,統一管理。elasticsearch

logstash 的安裝和啓動

logstash 不用安裝,直接到官網上下載就能直接使用。下載下來的以後,在bin目錄下就能夠直接啓動。解壓出來的路徑下有conif 的目錄,裏面包含的是配置文件。maven

咱們這裏使用的是跟ES 集成,要用到Elasitcsearch 的插件。工具

下面是logstash 的配置樣例:插件

input {
    file {
        path => "path-to-log/app.log"#日誌文件的路徑
        
        
    }
    
    
}




output {

     elasticsearch { #es 插件
         hosts => [ "elasticsearch:9200" ]
         index => "app-%{+YYYY.MM.dd}"
         
         manage_template => false
         
         
    }

}

筆者這裏直接使用的是docker 鏡像來啓動,大家能夠根據本身的喜歡來選擇不一樣的方式安裝啓動。日誌

logback 配置

上面配置完logstash 以後,咱們還須要把spring的應用配置好logbackcode

<appender name="STASH" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>path-to-log/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>logback/redditApp.%d{yyyy-MM-dd}.log</fileNamePattern>
    <maxHistory>7</maxHistory>
</rollingPolicy>  
<encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
<root level="DEBUG">
    <appender-ref ref="STASH" />        
</root>

這裏須要注意,<file> tag 裏面的日誌文件,必需要跟logstash 上面的路徑一直

由於使用到Logstash 的appender , 因此還須要再maven上面添加依賴

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

接下來就能夠啓動服務生成日誌了。

啓動命令

docker

docker network create elk #建立network

docker run --name logstash --net elk  -p 5044:5044 -p 9600:9600 logstash:7.3.2  -f config-sample.yml
bin

install-path/bin/logstash -f config-sample.yml

這裏的config-sample.yml 制定的是上面的配置文件,讀者能夠根據需求修改。 注意:修改以後的配置,須要重啓logstash 才能生效

啓動以後,這裏logstash 應該會報錯,說沒法鏈接到elasticsearch。這時候咱們要啓動ES 應用。

啓動ES

docker run --name elasticsearch --network elk  -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.3.2

等ES 起來以後,就能夠正常輸出日誌到ES 了。

最後,咱們還要到kibana 上查看咱們的日誌文件。這個留到下一講以後,咱們再去詳細瞭解。

今天就到這裏了。謝謝你們。

相關文章
相關標籤/搜索