使用ELK系統分析SpringBoot日誌


ELK:(ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三個開源工具組成),Elasticsearch用於存儲日誌信息,Logstash用於收集日誌,Kibana用於圖形化展示。

上一節我們介紹瞭如何使用docker-compose搭建ELK日誌分析系統。傳送門:

本節我們介紹SpringBoot項目如何接入ELK日誌分析系統。


使用ELK系統分析SpringBoot日誌


新建springboot項目

  • POM.xml(引入logstash,此處springboot項目使用logback作為日誌框架)
<code><dependency>    <groupid>net.logstash.logback/<groupid>    <artifactid>logstash-logback-encoder/<artifactid>    <version>6.1/<version>/<dependency>/<code>
  • logback-spring.xml(修改logback配置文件)
<code><appender>    <destination>192.168.85.128:4560/<destination>    <encoder>/<appender>......<root>    ......    <appender-ref>/<root>/<code>

<strong>168.85.128:4560對應我們剛剛搭建的Logstash地址。

  • 配置Kiabana
  1. 訪問http://192.168.85.128:5601/
  2. Kibana管理界面點擊左側Management,點擊 Kinaba Index Patterns
  3. 在Index pattern裡輸入我們在logstash配置文件logstash-kiki.conf裡output.index指定的值kiki-logstash-*,點擊下一步,注意,這裡需要檢查elasticsearch中是否有匹配數據。
    所以,需要按上面的步驟創建springboot項目並啟動,否則無法點擊Next Step。
  4. 點擊Next Step,在下拉框裡選擇@timestamp
  5. 點擊 Create index patterns
使用ELK系統分析SpringBoot日誌

  • 創建測試Controller

這個是我的測試,大家可以隨便寫,返回個hello word即可。

<code>package com.sxdx.sso.resource.one.controller;import lombok.extern.slf4j.Slf4j;import org.springframework.security.access.prepost.PreAuthorize;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import java.security.Principal;import java.util.HashMap;import java.util.Map;@Slf4j@RestControllerpublic class OneController {    @GetMapping("/user")    public Principal user(Principal principal) {        log.info("獲取當前登錄人信息");        return principal;    }}/<code>

驗證

使用postman訪問 localhost:8002/one/user。查看是否蒐集到了日誌數據。


使用ELK系統分析SpringBoot日誌

可以看到已經獲取到了日誌數據。這樣我們就可以直接使用ELK彙總分析日誌了。


座右銘:學然後知不足,教然後知困。知不足,然後能自反也;知困,然後能自強也。


分享到:


相關文章: