1. 程式人生 > 實用技巧 >Java Logstash_Kibana:(一)LogStash 簡介

Java Logstash_Kibana:(一)LogStash 簡介

LogStash 簡介

1.什麼是 LogStash

設定

  • 官方文字說明:Logstash 是開源的伺服器端資料處理管道,能夠同時從多個來源採集資料,轉換資料,然後將資料傳送到您最喜歡的“儲存庫”中
  • 通俗說明:Logstash 是一款強大的資料處理工具,常用作日誌處理
  • 到目前為止,Logstash 已經有超過 200 個可用的外掛,以及建立和貢獻自己的靈活性。社群生態非常完善,對於我們可以放心的使用。
    設定

2.為什麼使用 Logstash

  • 通常當系統發生故障時,工程師需要登入到各個伺服器上,使用 grep / sed / awk 等 Linux 指令碼工具去日誌裡查詢故障原因。在沒有日誌系統的情況下,首先需要定位處理請求的伺服器,如果這臺伺服器部署了多個例項,則需要去每個應用例項的日誌目錄下去找日誌檔案。每個應用例項還會設定日誌滾動策略(如:每天生成一個檔案),還有日誌壓縮歸檔策略等。
  • 這樣一系列流程下來,對於我們排查故障以及及時找到故障原因,造成了比較大的麻煩。因此,如果我們能把這些日誌集中管理,並提供集中檢索功能,不僅可以提高診斷的效率,同時對系統情況有個全面的理解,避免事後救火的被動
  • 所以日誌集中管理功能就可以使用 ELK 技術棧進行實現。Elasticsearch 只有資料儲存和分析的能力,Kibana 就是視覺化管理平臺。還缺少資料收集和整理的角色,這個功能就是 Logstash 負責的

3.Logstash 工作原理

3.1 Data Source

  • Logstash 支援的資料來源有很多。例如對於日誌功能來說只能能有日誌記錄和日誌傳遞功能的日誌都支援,Spring Boot 中預設推薦 logback 支援日誌輸出功能(輸出到資料庫、資料出到檔案)。
  • 我們就使用 logback 進行日誌輸出給 Logstash

3.2 Logstash Pipeline

  • 整個整體就是 Logstash 的功能

在 Logstash 中包含非常重要的三個功能:

  • a) Input
    輸入源,一般配置為自己監聽的主機及埠。DataSource 向指定的 ip 及埠輸出日誌, Input 輸入源監聽到資料資訊就可以進行收集。

  • b) Filter
    過濾功能,對收集到的資訊進行過濾(額外處理),也可以省略這個配置(不做處理)

  • Output
    把收集到的資訊傳送給誰。在 ELK 技術棧中都是輸出給 Elasticsearch,後面資料檢索和資料分析的過程就給 Elasticsearch 了

  • 最終效果:通過整體步驟就可以把原來一行日誌資訊轉換為 Elasticsearch 支援的 Document 形式(鍵值對形式)的資料進行儲存
    設定