ELK:(ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三個開源工具組成),Elasticsearch用於存儲日誌信息,Logstash用於收集日誌,Kibana用於圖形化展示。
上一節我們介紹瞭如何使用docker-compose搭建ELK日誌分析系統。傳送門:
本節我們介紹SpringBoot項目如何接入ELK日誌分析系統。
新建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
- 訪問http://192.168.85.128:5601/
- Kibana管理界面點擊左側Management,點擊 Kinaba Index Patterns
- 在Index pattern裡輸入我們在logstash配置文件logstash-kiki.conf裡output.index指定的值kiki-logstash-*,點擊下一步,注意,這裡需要檢查elasticsearch中是否有匹配數據。
所以,需要按上面的步驟創建springboot項目並啟動,否則無法點擊Next Step。 - 點擊Next Step,在下拉框裡選擇@timestamp
- 點擊 Create index patterns
- 創建測試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彙總分析日誌了。
座右銘:學然後知不足,教然後知困。知不足,然後能自反也;知困,然後能自強也。
閱讀更多 Garnett 的文章