Elastic認證叢集環境準備

ghostwritten發表於2020-10-27

1. 考試是什麼環境?

考試是在 centos7 環境下考試的。

  • 不同的題庫會有不同的試題,但大致都需要3-4個獨立的叢集環境。
  • 有的叢集1-2個節點
  • 有的叢集3-4個節點
    在這裡插入圖片描述
    在這裡插入圖片描述
    考慮到很多同學沒有參加過類似的psi的線上考試,所以多看幾遍:心裡有數,考試才不緊張。
  • Elastic文件的位置,考試不允許google、bing等搜尋,文件是唯一的參考方式。常見的操作建議爛熟於心,稍微複雜點的建議對文件爛熟於心,直接o(1)時間鎖定文件。
  • 考試環境介紹,包含:主機節點訪問方式,叢集介紹等。

2. 我們該如何準備環境?

2.1 自己本機windows搭建虛擬機器環境

注意:虛擬機器選型:centos 7,其他不考慮。

2.2 自己本機部署docker

藉助:docker compose實現。

2.3 購買雲伺服器。

建議:最小2核CPU,4GB記憶體。
能搭建兩個節點的叢集。
可以用來模擬:

  • 1個叢集兩個節點。
    常見考題:分片分配感知、叢集主/副本分片異常等故障診斷等。
  • 2個獨立節點的叢集。
    常見考題:跨叢集檢索、機架awareness分片分配等。
    其他相關DSL(增、刪、改、查、聚合、Mapping/template/analyzer、xpack安全等)一個節點的叢集就能搞定。

3. Elasticsearch單節點叢集環境部署

3.1 Elasticsearch 7.9.3 版本下載地址

https://www.elastic.co/cn/downloads/past-releases#elasticsearch
在這裡插入圖片描述
選擇 Linux版本,就可以完成下載。tar包或rpm包
在這裡插入圖片描述

3.2 將壓縮包匯入Centos7 機器環境。

3.3 基礎配置準備(非考試重點)

3.3.1 新建elastic賬號和使用者組。

• Elasticsearch不支援root賬戶執行。
• 考試的時候,賬號名和使用者組是elastic
centos 7 執行命令:

useradd elastic

3.3.2 解壓壓縮包得elasticsearch-7.9.3檔案

  • 將elasticsearch-7.9.3檔案拷貝到指定路徑,路徑自己定義即可。
  • 為檔案指定使用者和使用者組許可權
    進入elasticsearch-7.2.0路徑,執行命令:
chown -R elastic:elastic ./*

3.3.3 修改檔案描述符數目

為什麼要修改?

  • 原因1: Elasticsearch 在節點和 HTTP 客戶端之間進行通訊也使用了大量的套接字(注:sockets)。 所有這一切都需要足夠的檔案描述符。
  • 原因2:許多現代的 Linux 發行版本,每個程式預設允許一個微不足道的 1024 檔案描述符。這對一個小的 Elasticsearch 節點來說實在是太低了,更不用說一個處理數以百計索引的節點。
    步驟1: 設定環境變數。
vim /etc/profile
ulimit -n 65535

用以設定同一時間開啟的檔案數的最大值為65535。

source /etc/profile

使得命令生效。
步驟2: 修改limits.conf配置檔案。
在:/etc/security/limits.conf 增加

* soft nofile 65536
* hard nofile 65536

用來限制開啟檔案數65535
步驟3: 驗證是否成功。
切換到elastic使用者,使用ulit -a 檢視是否修改成功。
ulimit -a

3.3.4 修改 最大對映數量 MMP

Elasticsearch 對各種檔案混合使用了 NioFs( 非阻塞檔案系統)和 MMapFs ( 記憶體對映檔案系統)。
請確保你配置的最大對映數量,以便有足夠的虛擬記憶體可用於 mmapped 檔案。這可以暫時設定:

sysctl -w vm.max_map_count=262144

或者你可以在 /etc/sysctl.conf 通過修改 vm.max_map_count 永久設定它。

[root@4ad config]# tail -f /etc/sysctl.conf
vm.max_map_count=262144

3.4 elasticsearch.yml 核心配置(考試會考)

cluster.name: cluster1 
node.name: node1
node.master: true 
node.data: true 
cluster.remote.connect: false 
network.host: 172.17.0.17
http.port: 9200
transport.port:9300
discovery.seed_hosts: ["172.17.0.17:9300"]
cluster.initial_master_nodes: ["172.17.0.17:9300"]

注意:考試的時候就基本如上所示,沒有任何註釋。

• cluster.name: 叢集名稱,唯一確定一個叢集。
• node.name:節點名稱,一個叢集中的節點名稱是唯一固定的,不同節點不能同名。
• node.master: 主節點屬性值
• node.data: 資料節點屬性值
• network.host: 本節點的ip
• http.port: 本節點的http埠
• transport.port:9300——叢集之間通訊的埠,若不指定預設:9300
• discovery.seed_hosts:節點發現需要配置一些種子節點,與7.X之前老版本:disvoery.zen.ping.unicast.hosts類似,一般配置叢集中的全部節點
• cluster.initial_master_nodes:指定叢集初次選舉中用到的具有主節點資格的節點,稱為叢集引導,只在第一次形成叢集時需要。

3.4 章節的考點包含但不限於:

  • 叢集節點配置
    區分並會配置:master,data,coordinate,ingest等節點
  • xpack安全配置
    設定Elasticsearch安全屬性開關
  • 節點自定義屬性(冷、熱等)冷熱架構叢集部署配置

3.5 jvm.option的設定

-Xms1g
-Xmx1g

這裡針對4GB記憶體的機器環境,預留分配2個節點,所以堆記憶體大小:設定了1GB。

  • 實際生產環境中計算公式:min(機器記憶體的一半,32GB記憶體)。也就是說:取機器環境記憶體的一半和32GB記憶體之間的小值。
  • 實戰中經常會遇到堆記憶體設定不合理的問題,
  • 具體原理推薦閱讀:https://blog.csdn.net/laoyang360/article/details/79998974

3.6 啟動節點

實際考試中,一般kibana會啟動,elasticsearch叢集可能不啟動。
需要你:
• 第一步: ssh 登入到對應節點。

ssh node1

• 第二步:啟動 對應節點的Elasticsearch。
啟動方法1:後臺啟動

./elasticsearch -d

啟動方法2:非後臺啟動
能看到啟動日誌

./elasticsearch

4、Elasticsearch 雙節點或多節點叢集環境部署

僅說明兩個節點的配置,多節點雷同,不再贅述。
多節點elasticsearch.yml

4.1 節點1的配置如下:

cluster.name: cluster1 
node.name: node1
node.master: true 
node.data: true 
node.ingest: true
network.host: 172.17.0.17
http.port: 9200
transport.port:9300
discovery.seed_hosts: ["172.17.0.17:9300","172.17.0.17:9301"]
cluster.initial_master_nodes: ["172.17.0.17:9300","172.17.0.17:9301"]

4.2 節點2的配置如下:

cluster.name: cluster1 
node.name: node2
node.master: true 
node.data: true 
node.ingest: true
network.host: 172.17.0.17
http.port: 9201
transport.port:9301
discovery.seed_hosts: ["172.17.0.17:9300","172.17.0.17:9301"]
cluster.initial_master_nodes: ["172.17.0.17:9300","172.17.0.17:9301"]

核心點:
機器資源有限,1臺機器部署2-3甚至更多節點,如何通訊?

  • 設定相同ip
  • 設定不同的http和tcp埠以區分不同節點
  • 本質是偽叢集
    注意切記:實際業務線上環境,建議所有Elasticsearch節點都是獨立節點,不要部署其他程式、其他後臺程式,以提高效能。如果記憶體足夠大,比如:128GB、256GB,單節點是浪費,建議通過虛擬化方式切分開。

5、kibana環境部署

5.1 下載安裝包

https://www.elastic.co/cn/downloads/past-releases#kibana
如圖所示:
在這裡插入圖片描述

5.2 解壓安裝包

5.3 修改kibana.yml配置

  • 設定kibana埠
  • 設定所在主機ip
  • 指定Elasticsearch連線地址
server.port: 5601
server.host: "172.17.0.17"
elasticsearch.hosts: ["http://172.17.0.17:9200"]

5.4 啟動kibana(基本不考)

注意:不需要修改kibana的使用者或者使用者組許可權。

nohup ./bin/kibana --allow-root & > /dev/null 2>&1

6. 注意事項

6.1 我上面講的都是考試實際考試的環境。

6.2 啟動 + 引數的方式 也可以啟動叢集,考試沒有明確指定啟動方式。

如下 也可以啟動叢集。

bin/elasticsearch -E node.name=cluster0node -E cluster.name=cluster0 -E path.data=cluster0_data -E discovery.type=single-node -E http.port=9200 -E transport.port=9300

直觀的角度,便於設定和排查的角度,推薦用本文的1-5章節內容完成考試。
加油!

更多Elastic認證細節內容,請報名@毅銘天下
在這裡插入圖片描述

相關文章