因在工作需求上有使用到ELK,因此將這個經驗記錄下來。
先稍微針對ELK做點簡單的介紹。
ELK是由Elastic這間公司所開發的三個open-source軟體,三個軟體分別是:Elasticsearch、Logstash、Kibana。
這三個產品加上Elastic公司其他產品被設計成一個整合解決方案,稱為「Elastic Stack」(以前稱為「ELK stack」)。
簡單來說ELK stack的流程,是由 Logstash 收集與處理傳入 server 端的 log紀錄,再將log推送至 Elasticsearch 進行儲存,最後透過 Kibana 進行資料視覺化的呈現。

Elasticsearch
1. 使用RESTful介面操作的即時分散式儲存的搜索引擎
2. 基於開放原始碼的Apache Lucene程式庫,是用Java開發
3. 特徵
Ø彈性資料模型(無綱要結構) – JSON文件
Ø分散式、水平擴充
Ø高可用性
Ø多租戶(multi-tenancy technology)、免費安全機制(6.8版後)
Ø開發者友善 (RESTful API)
Ø適合NoSQL資料儲存,但缺少分散式事務(Distributed Transactions)
Ø接近即時
Ø全文檢索
Apache Lucene
1. Lucene是一套用於全文檢索和搜尋的開放原始碼程式庫,由Apache軟體基金會支援和提供。
2. Lucene是現在最受歡迎的免費Java資訊檢索程式庫。
3. Lucene的缺點:沒有平行化架構、沒有即時更新、資料不保證不遺失
4. Elasticsearch解決:可平行化架構、預設1秒refresh、文件版控
Kibana
1. Kibana提供即時彙總與繪製圖表的視覺化界面
Ø視覺化與分析
Ø地理資訊
Ø客製化報表與分享報表
Ø圖型式探索
ØElastic Stack管理介面
Logstash
1. Logstash是一個ETL工具,具備靈活、開源、pipeline特性,隨著不同套件,易於集成通用基礎設施。Logstash旨在有效地處理日誌、事件和非結構化數據源,在內部統一處理成JSON格式,再做各種輸出的分發,包括Elasticsearch。
2. 在Logstash中,包括了三個階段: 輸入input --> 處理filter(不是必須的) --> 輸出output

3. Logstash將多個資料來源的資料,同時間地進行轉換與傳送到你偏好的儲存體

4. Logstash File
