這趟旅程中,筆者將與大家一起建構ELK服務,並根據一個實際領域應用(資安),筆者跟我團隊的成員將會把:
一、建構系統 二、系統操作 三、實際功能應用 四、結合領域知識,盡量地整套介紹給大家。
筆者本身會負責的部分是建構系統,及系統底層操作的部分。
本身有建構ELK的經驗,但主要應用是作為後端的搜尋引擎替代,因此應用較多為API部分,透過後端程式call API取得資料;雲端部分則是有應用過GCP以及GCP上的K8S建構服務,但並沒有非常深入的應用。
這次撰寫對於筆者來說也是全新挑戰,結合雲端以及ElasticSearch,使這項服務可以無痛的與雲端服務串接,以及部屬在雲端上的一些優缺點。
這次Elasticsearch廠商為了鐵人賽,提供了30天免費試用。
只需要提供email,不用信用卡或其他資訊,就可以註冊帳號獲得30天免費試用。
Elasticsearch簡單來說,是一套開源式的分散式搜尋引擎。搜尋引擎,顧名思義就是可以幫忙處理搜尋的演算法;Elasticsearch主要包含了: 1. 儲存 2. 搜尋這兩項主要功能。
說到這邊大家一定會想說,SQL類型或NOSQL資料庫,不是也可以有儲存以及搜尋兩個功能。這邊要特別提的是,elasticsearch他的搜尋功能,是基於Apache lucene,並且符合RESTFUL格式,因此搜尋的效能與方式皆是非常優秀的。
而除了效能上的優越,elasticsearch建構以及使用上也非常友善,具有可擴充性 (scalability) 與可用性 (availability)。
可擴充性在筆者的想法是,因為作為一個開源程式碼,elasticsearch有許多可以擴充的plugin,架構上也是非常適合擴充規模;可用性則是前面提到,因為其建構及使用上的簡單且符合規範,一般有接觸過NOSQL或是RESTFUL API的使用者都可以很快的使用。
大家常說的ELK,其中E就是我們前面介紹的Elasticsearch,L則是Logstash,K則是Kibana。
Logstash主要是用來蒐集LOG;Kibana大家則可以想像類似tableau,主要是視覺化的呈現以及基本的aggregation分析。
而為什麼常常會被一起提到,是因為如果建構一個完整的監控程序,通常會需要這三者的輔助,當然視需求你當然也可以E+K,或是E+L,但通常E就是最重要的基底!
第一篇其實主要是前言,交代之後會帶到的部分,接下來會比較詳細的介紹ELK,以及ElasticCloud的特性;雲端上的服務與部屬在本地端差異,接著就會開始進入實際從0開始部屬這些服務,到工作上實際的應用!
抓穩了,那就一起來開始這趟旅程吧!
*有任何錯誤麻煩各位不吝指正,謝謝!