ELK簡單問答

2021-07-30 16:33:54 字數 1684 閱讀 7289

elasticsearch是乙個支援分布式儲存以及全文索引的資料庫,可用於儲存非結構化資料並能快速檢索關鍵字。比較適用於儲存日誌記錄。

問題1:elasticsearch是如何分布式儲存資料的?

elasticsearch會從所有節點中推舉出乙個master節點,master節點負責建立或者刪除索引,新增節點到集群或從集群刪除節點。master節點不參與文件層面的變更和搜尋工作,降低了master的負載。可以隨時新增多個節點進入集群滿足高併發的查詢要求。

elasticsearch中乙個索引對應乙個或者多個分片,而每個分片必定有乙個主分片和乙個或者多個從分片。分片可以儲存在任意乙個伺服器節點上。當集群擴充節點時,elasticsearch會根據集群的負載情況將分片進行轉移以免出現單個節點負載過高的問題。

當使用者的請求索引a到達elasticsearch集群中的某個節點node_1時,該節點node_1如果存有請求索引a的資料則直接返回給使用者;如果沒有索引a的資料,則需要查詢master節點索引a的具體存放節點node_2,然後將請求**到node_2中,當node_2將資料查詢到後返回給node_1,而node_1再將資料發給使用者。

問題2:elasticsearch是如何做到全文索引並支援快速檢索資料的?

elasticsearch使用了建立倒排索引的方案解決搜尋問題。比如向es中新增一條語句」hello world boy「;那麼es會將該語句拆分為三個單詞,並為每個單詞建立乙個索引,當使用者查詢hello這個單詞的時候,直接查詢hello索引中的所有資料返回即可,目前很多搜尋引擎都使用了倒排索引的方式。

logstash是乙個日誌處理管道,可以從不同渠道收集各種格式的統計資料,並按照預定義的格式將日誌資料轉化為json資料儲存到elasticsearch中。

問題1:logstash可以從遠端獲取資料麼,可以直接讀取關係型資料庫中的資料麼?

問題2:logstash的日誌預定義格式是怎麼樣的?

kibana是乙個基於elasticsearch的資料圖形化、圖表化顯示的工具,可以將elasticsearch中的資料很好地圖形化顯示出來。

問題1:隨著資料量的不斷增大,檢索一年前到現在的資料會有多大的延遲,有沒有解決方案?

elasticsearch橫向擴充套件可以解決部分查詢壓力,每個分片有多個從分片,同時查詢從分片也可以減少對單一分片的查詢壓力。如果要查詢資料量過多,仍然會出現大量的卡頓情況,因此elk做資料監控很好用,大概監控一周內的資料量不會有太大問題,但是如果要統計查詢一年之久的資料也會夠嗆。

問題2:搜尋規則是怎樣的?

es中分為查詢和過濾,兩者沒有太大的區別,查詢會返回結果的相關性評分並根據相關性評分進行排序,而過濾不會,使用原則是如果需要相關性評分則使用查詢,剩下的都使用過濾。效率上過濾比查詢稍微好點。

使用結構化查詢最重要的有兩點:分頁和多條件查詢。

分頁使用from和size兩個引數,from控制起點,size控制數量。query為查詢,filter為過濾關鍵字。

通過bool條件可以組織多條件查詢,包括must,must_not,should。

must:文件必須匹配條件。相當於and條件。

must_not:過濾文件必須滿足條件的記錄。相當於not條件

should:匹配乙個以上的條件。相當於or條件

ELK簡單調優

es配置檔案 xpack.security.enabled true 允許安全驗證 bootstrap.memory lock true 開啟記憶體鎖,防止使用交換分割槽 bootstrap.system call filter false 重啟時系統禁止呼叫過濾器 transport.tcp.co...

ELK集群安裝及簡單使用

192.168.1.105 es 2 elk 目錄 192.168.1.108 es 1 logstash kibana mydata elk 192.168.1.106 es 3 elk 一般我們需要進行日誌分析場景 直接在日誌檔案中 grep awk 就可以獲得自己想要的資訊。但在規模較大的場景...

簡單介紹ELK 元件與歷史

elk 需求背景 為什麼要用到elk 一般我們需要進行日誌分析 直接在日誌檔案中 awk grep就可以獲取想要的資訊。但是規模較大時,些方法效率很低。日誌歸檔,文字搜尋,多維度查詢 需要集中化日誌管理 建立集中式日誌收集系統,將所有節點上的日誌統一收集,管理,訪問。分布式部署架構,不由的服務模式部...