如何開始搭建Elastic Stack及使用方式介紹-上

圖文:Alex Lee

ELK架構說明

ElasticStack在系統架構中各司其職

  • Beat負責採集資料
  • Logstash負責接收及預處理資料
  • Elasticsearch負責儲存及分析
  • Kibana提供視覺化介面

下圖為比較大型Elasticsearch Cluster架構

  • Elasticsearch:可以透過配置如node.attr.rack_id及shard allocation awareness,可以將資料分片盡可能分配至不同的機架,或是透過**ILM(Index Lifecycle Management)**依照資料生命週期(重要性)配置到對應的硬體資源節點(Hot-Warm)。
  • Logstash: Logstash本身無Cluster的概念,透過啟動多個Instance進行Load Balance或是HA,在Logstash前方亦可搭配Reverse Proxy,讓Client目標端點一致,後方能夠進行Logstash的Scale up。
  • Kibana: 根據需求決定是否需要HA,大多情境下Kibana的使用對象是資訊人員且頻率不是非常大量,緊急程度不會像一級系統,通常啟動一個即可。

ELK開發環境搭建

目標:建立ELK的開發環境,透過docker環境快速建立ELK架構

環境準備:請先安裝 Docker 及 Docker-compose

DEMO環境:MacOS 10.15 / Docker 19.03 / Docker-compose 1.24

  1. 準備Docker及ELK相關設定檔
  2. 檔案結構如下
  • elasticsearch
    • config
      • elasticsearch.yml: ES設定檔,本文以Single-node方式啟動
elasticsearch.yml: ES設定檔,本文以Single-node方式啟動
  • IKAnalyzer.cfg.xml: IK Plugin設定檔,在此設定自定義字典檔及熱更新字典檔端點
IKAnalyzer.cfg.xml: IK Plugin設定檔,在此設定自定義字典檔及熱更新字典檔端點
  • data: 準備掛載Elasticsearch實際儲存資料位置(path.data)
  • dict:字典檔
    • ik:IK自定義字典檔,可於啟動時載入,須定義於IKAnalyzer.cfg.xml中
    • synonym:自定義同義詞字典,後續如搜尋有需要使用同義詞時可放置於此
  • Dockerfile: 使用官方Image,可以再另外安裝Plugin如IK、Pinyin等
  • kibana
    • config

      • kibana.yml

      Kibana啟動時會嘗試去取得Elasitcsearch的一些資訊,這邊先給予admin的帳號密碼

      (在正式環境應改用指定權限的帳號,並且避免明碼,使用keystore的方式存取帳密)

Kibana啟動時會嘗試去取得Elasitcsearch的一些資訊,這邊先給予admin的帳號密碼
  • Dockerfile: 使用官方Image,可以再另外安裝Plugin
Dockerfile: 使用官方Image,可以再另外安裝Plugin
  • logstash
    • config

      • logstash.yml

      可以在此逐步調試批次送出的Event數量,提高Logstash寫入效能

可以在此逐步調試批次送出的Event數量,提高Logstash寫入效能
  • pipelines.yml: 定義/宣告pipeline及其對應的pipeline設定檔
pipelines.yml: 定義/宣告pipeline及其對應的pipeline設定檔
  • data: 準備掛載Logstash Queue / Dead letter queue / uuid 等資料
  • pipeline: pipeline設定檔
    • http-pipeline.conf: 接收http input
  • Dockerfile: 使用官方Image,可以再另外安裝Plugin
  • nginx

    此處Nginx僅作為IK hot reload使用

    • dict/remote-dict.dic: For IK Hot Reload 字典檔,IK約每分鐘檢查一次是否有更新
    • nginx.conf: Nginx設定檔,設定存取靜態檔案路徑
Nginx僅作為IK hot reload使用

專人協助

由偉康業務人員為您詳細說明偉康的解決方案,以及相關產業經驗。

Tags:

立即訂閱電子報

掌握最新科技趨勢!