elk是現在常用的日誌方案,有多種組合方式:
elasticsearch + kibana + logstash:由logstash收集各終端的日誌,過濾後發到送elasticsearch,但logstatsh比較耗資源,會影響本地應用的效能
elasticsearch + kibana + filebeat:改由輕量的filebeat收集日誌,但filebeat不支援過濾(注:新版的ignest node可以部分實現),所以又出現了下面的組合
elasticsearch + kibana + filebeat + logstash:filebeat採集的日誌統一經過logstash處理後再到elasticsearch
elasticsearch + kibana + kafka/redis + logstash:這種組合也比較常見,使用kafka/redis的訊息分發功能由logstash統一收集訊息再發到elasticsearch
上面的方案的主要缺陷是引入節點太多,增加了複雜性,降低了可靠性。另外logstash的grok配置也是需要啃一番文件的。
在需要支援elasticsearch日誌的spring boot工程增加以下依賴
net.xdevelopgroupid>
1.0.0version>
dependency>
<?xml version="1.0" encoding="utf-8"?>
resource="org/springframework/boot/logging/logback/base.xml" />
name="stdout"
class="ch.qos.logback.classic.encoder.patternlayoutencoder">
%d [%thread] %-5level %logger - %msg%npattern>
encoder>
name="elastic"
docker-clusterclustername>
192.168.1.21:9300clusternodes>
level="info">
ref="stdout" />
ref="elastic" />
root>
name="net.xdevelop.elasticlogdemo"
level="info" />
configuration>
執行spring boot應用,正常使用logger.info()等輸出日誌就會直接傳送到elasticsearch伺服器。
為了看到發過來的日誌,還需要在kibana裡按下圖配置index pattern:
然後就可以在discovery裡看到應用發來的日誌了:
喜歡的**個星
ELK日誌分析方案
針對公司專案微服務化,隨著專案及伺服器的不斷增多,決定採用elk elasticsearch logstash kibana 日誌分析平台進行微服務日誌分析。1.在微服務伺服器上部署logstash,作為shipper的角色,對微服務日誌檔案資料進行資料採集,將採集到的資料輸出到redis訊息佇列。...
ELK日誌分析方案
針對公司專案微服務化,隨著專案及伺服器的不斷增多,決定採用elk elasticsearch logstash kibana 日誌分析平台進行微服務日誌分析。1.在微服務伺服器上部署logstash,作為shipper的角色,對微服務日誌檔案資料進行資料採集,將採集到的資料輸出到redis訊息佇列。...
網路摘抄 開源日誌解決方案ELK
一般我們需要進行日誌分析場景 直接在日誌檔案中 grep awk 就可以獲得自己想要的資訊。但在規模較大的場景中,此方法效率低下,面臨問題包括日誌量太大如何歸檔 文字搜尋太慢怎麼辦 如何多維度查詢。需要集中化的日誌管理,所有伺服器上的日誌收集彙總。常見解決思路是建立集中式日誌收集系統,將所有節點上的...