ELK-基本概念

集羣(cluster)


一個Elasticsearch集羣由一個或多個ES節點組成,所有節點共同存儲數據,並提供跨集羣內所有節點的聯合索引和搜索能力。一個集羣被命名爲唯一的名字(默認爲elasticsearch),集羣名稱非常重要,因爲節點需要通過集羣的名稱加入集羣。

您需要確保在不同的環境使用不同的集羣名稱,否則會導致節點添加到錯誤的集羣中。

只有一個節點的集羣是有效的。

節點(node)


一個節點是集羣中的一個服務器,用來存儲數據並參與集羣的索引和搜索。和集羣類似,節點由一個名稱來標識,默認情況下,該名稱是在節點啓動時分配給節點的隨機通用唯一標識符(UUID)。您也可以自定義任意節點的名稱,節點名稱對於管理工作很重要,因爲通過節點名稱可以確定網絡中的哪些服務器對應於Elasticsearch集羣中的哪些節點。

一個節點可以被添加到指定名稱的集羣中。默認情況下,每個節點會被設置加入到名稱爲elasticsearch的集羣中,這意味着,如果在您在網絡中啓動了某些節點(假設這些節點可以發現彼此),他們會自動形成並加入名稱爲elasticsearch的集羣中。

一個集羣可以擁有任意多的節點。此外,如果在您的網絡中沒有運行任何Elasticsearch節點,此時啓動一個節點會創建一個名稱爲easticsearch的單節點集羣。

索引(index)


一個索引是一個擁有一些相似特徵的文檔的集合(相當於關係型數據庫中的一個數據庫)。比如,您可以擁有一個客戶數據的索引,一個商品目錄的索引,以及一個訂單數據的索引。一個索引通常使用一個名稱(所有字母必須小寫)來標識,當針對這個索引的文檔執行索引、搜索、更新和刪除操作的時候,這個名稱被用來指向索引。

類型(type)


一個類型通常是一個索引的一個邏輯分類/分區,允許在一個索引下存儲不同類型的文檔(相當於關係型數據庫中的一張表)。比如用戶類型,博客類型等,現在已經不支持在一個索引下創建多個類型,並且類型概念已經在後續版本中刪除,詳細請參考Elasticsearch官方文檔。

文檔(document)


一個文檔是可以被索引的基本信息單元(相當於關係型數據庫中的一行數據)。比如,您可以爲一個客戶創建一個文檔,或者爲一個商品創建一個文檔。文檔可以用JSON格式來表示。在一個索引中,您可以存儲任意多的文檔,且文檔必須被索引。

分片(shards)


代表索引分片,Elasticsearch可以把一個完整的索引分成多個分片,這樣的好處是可以把一個大的索引拆分成多個,分佈到不同的節點上,構成分佈式搜索。分片的數量只能在索引創建前指定,並且索引創建後不能更改。

副本(replicas)


代表索引副本,Elasticsearch可以設置多個索引的副本,副本的作用一是提高系統的容錯性,當某個節點某個分片損壞或丟失時可以從副本中恢復。二是提高Elasticsearch的查詢效率,Elasticsearch會自動對搜索請求進行負載均衡。

recovery


代表數據恢復或叫數據重新分佈,Elasticsearch在有節點加入或退出時會根據機器的負載對索引分片進行重新分配,掛掉的節點重新啓動時也會進行數據恢復。

gateway


代表Elasticsearch索引快照的存儲方式,Elasticsearch默認是先把索引存放到內存中,當內存滿了時再持久化到本地硬盤。gateway對索引快照進行存儲,當這個Elasticsearch集羣關閉再重新啓動時就會從gateway中讀取索引備份數據。Elasticsearch支持多種類型的gateway,有本地文件系統(默認)、分佈式文件系統、Hadoop的HDFS和阿里雲的OSS雲存儲服務。

discovery.zen


代表Elasticsearch的自動發現節點機制,Elasticsearch是一個基於p2p的系統,它先通過廣播尋找存在的節點,再通過多播協議來進行節點之間的通信,同時也支持點對點的交互。

Transport


代表Elasticsearch內部節點或集羣與客戶端的交互方式,默認內部是使用TCP協議進行交互,同時它支持http協議(JSON格式)、thrift、servlet、memcached、zeroMQ等的傳輸協議(通過插件方式集成)。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章