CentOS 7.4 下安裝 ES 6.5.1 搜尋叢集

rochy_he發表於2018-11-22

一、準備安裝

1、修改系統 hosts

vi /etc/hosts   # 修改 hosts 檔案,新增下面的內容

192.168.11.1    sky-00
192.168.11.2    sky-01
192.168.11.3    sky-02
192.168.11.4    sky-03
192.168.11.5    sky-04
192.168.11.6    sky-05
192.168.11.7    sky-06
複製程式碼

2、角色分配

主機名 角色 記憶體分配
sky-00 Master 4G
sky-01 Master 8G
sky-02 Master+Data 12G
sky-03 Data 12G
sky-04 Data 12G
sky-05 Data 12G
sky-06 Data 12G

3、建立 ES 使用者

adduser elastic  # 新增使用者
passwd elastic   # 修改使用者密碼
複製程式碼

4、建立 ES 資料和日誌目錄

cd /data/
mkdir elastic
cd elastic
mkdir data      # 建立資料目錄
mkdir log       # 建立日誌目錄
chown -R elastic /data/elastic/  # 修改擁有著
複製程式碼

5、調整檔案控制程式碼數以及可用程式數

Elasticsearch 要求其可用的檔案控制程式碼至少為 65536,同時要求其程式數限制至少為 2048,可用按照下面的指令進行修改。

分別對應以下兩個報錯資訊:

  • max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
  • max number of threads [1024] for user [es] is too low, increase to at least [2048]
vi /etc/security/limits.conf

*     soft   nofile  100001
*     hard   nofile  100002
*     soft   nproc   4096
*     hard   nproc   8192
elastic soft memlock unlimited
elastic hard memlock unlimited
複製程式碼

6、設定核心交換

為了避免不必要的磁碟和記憶體交換,影響效率,需要將 vm.swappiness 修改為 1(進行最少量的交換,而不禁用交換)或者 10(當系統存在足夠記憶體時,推薦設定為該值以提高效能),其預設值為 60。

此外需要修改最大虛擬記憶體 vm.max_map_count 防止啟動時報錯:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]

vi /etc/sysctl.conf

vm.swappiness = 1
vm.max_map_count = 262144
複製程式碼

7、下載安裝檔案

mkdir /opt/downloads/
mkdir /opt/soft/
cd /opt/downloads/

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.1.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.1-linux-x86_64.tar.gz
wget http://download.oracle.com/otn/java/jdk/xxxxxx/jdk-8u191-linux-x64.tar.gz

tar -zxvf elasticsearch-6.5.1.tar.gz -C /opt/soft/
tar -zxvf jdk-8u191-linux-x64.tar.gz -C /opt/soft/
tar -zxvf kibana-6.5.1-linux-x86_64.tar.gz -C /opt/soft/

chown -R elastic /opt/soft/elasticsearch-6.5.1/
chown -R elastic /opt/soft/kibana-6.5.1/
複製程式碼

二、開始安裝

1、配置 Java 環境

su elastic             #切換到 elastic 使用者
vi ~/.bashrc          #只修改 elastic 使用者自己的環境變數

export JAVA_HOME=/opt/soft/jdk1.8.0_191
export JRE_HOME=/opt/soft/jdk1.8.0_191/jre
export CLASSPATH=.:/opt/soft/jdk1.8.0_191/lib:/opt/soft/jdk1.8.0_191/jre/lib
export PATH=$PATH:/opt/soft/jdk1.8.0_191/bin:/opt/soft/jdk1.8.0_191/jre/bin
複製程式碼

2、配置 ES 記憶體佔用

cd /opt/soft/elasticsearch-6.5.1/config/
vi jvm.options 

-Xms4g      # 請根據自己機器配置調整
-Xmx4g
複製程式碼

3、配置 Elasticsearch

下面的配置已經過多個生產環境驗證,具體設定值僅供參考,請務必根據實際情況進行調整。

# ---------------------------------- Cluster -----------------------------------
#
# 設定叢集名
cluster.name: cluster-name
#
# ------------------------------------ Node ------------------------------------
#
# 設定節點名
node.name: node01

# 設定角色
node.master: true   
node.data: false
node.ingest: true

# 設定機架資訊
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# 設定資料路徑
path.data: /data/elastic/data

# 設定日誌路徑
path.logs: /data/elastic/log
#
# ----------------------------------- Memory -----------------------------------
#
# 設定記憶體鎖定
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
#
# ---------------------------------- Network -----------------------------------
#
# 設定ip和埠
network.bind_host: sky-00
network.publish_host: 0.0.0.0
http.port: 9200

# 設定跨域訪問
http.cors.enabled: true
http.cors.allow-origin: "*"
http.max_content_length: 500mb

# --------------------------------- Discovery ----------------------------------

# 設定zen發現範圍(只需要填寫主節點的 ip 即可)
discovery.zen.ping.unicast.hosts: ["sky-00", "sky-01", "sky-02"]

discovery.zen.no_master_block: write
discovery.zen.fd.ping_timeout: 10s

# 設定最小主節點個數,一般為:(master_node_count+1)/2
discovery.zen.minimum_master_nodes: 2


# ---------------------------------- Gateway -----------------------------------
#
# 設定在有4個節點後進行資料恢復
gateway.recover_after_nodes: 4
gateway.expected_nodes: 7
gateway.recover_after_time: 1m
#
# ---------------------------------- Various -----------------------------------
# 禁止萬用字元模式刪除索引
action.destructive_requires_name: true

indices.recovery.max_bytes_per_sec: 200mb
indices.memory.index_buffer_size: 20%

# 預設開啟全部型別指令碼,可以通過下面配置進行限制
#script.allowed_types: inline
#script.allowed_contexts: search, update

# 關閉xpack的安全校驗
xpack.security.enabled: false

# 開啟 monitoring
xpack.monitoring.enabled: true
xpack.monitoring.collection.enabled: true

# 設定 monitoring 寫入資訊
xpack.monitoring.exporters:
  sky:
    type: http
    host: ["sky-02", "sky-03", "sky-04", "sky-05", "sky-06"]
    # 設定 monitoring 索引格式,預設是 YYYY-MM-DD(按天新建)
    index.name.time_format: YYYY-MM
    headers:
      # 設定 Basic 認證資訊(詳見外掛安裝部分說明)
      Authorization: "Basic XXXXXXXXXXXXXXX"
複製程式碼

三、安裝外掛

1、安裝外掛

推薦安裝的外掛有:

  • IK 中文分詞外掛
  • Readonlyrest 安全認證外掛
  • elasticsearch-head 叢集監控管理外掛(chrome 外掛)

外掛下載連結: pan.baidu.com/s/1r_322uns… 提取碼: aupq

使用下面命令即可安裝。

$ES_HOME/bin/elasticsearch-plugin -install file:///data/downloads/elasticsearch-analysis-ik-6.5.1.zip
$ES_HOME/bin/elasticsearch-plugin -install file:///data/downloads/readonlyrest-1.16.29_es6.5.1.zip
複製程式碼

2、配置 Readonlyrest 安全認證

下面只簡單介紹 Readonlyrest 的 Basic 認證,更高階的用法可以去官方網站檢視,在 ES 安裝目錄的 conf 目錄下新建檔案 readonlyrest.yml,並新增下面內容。

readonlyrest:
    access_control_rules:
    - name: "Require HTTP Basic Auth"
      type: allow
      auth_key: 使用者名稱:密碼
複製程式碼

3、啟動 ES

全部安裝完成後,即可使用 elastic 使用者啟動 ES。

# 預設 ES 不支援 root 使用者啟動
su elastic
cd /opt/soft/elasticsearch-6.5.1/bin
./elasticsearch -d
複製程式碼

四、在 Kibana 裡面監控

在安裝 ES 的時候,我們配置了 ES 的監控資訊,這樣我們就可以在 Kibana 中檢視 ES 索引資訊、node 資訊等。

1、配置 Kibana

進入 Kibana 的解壓目錄下的 conf 資料夾,開啟配置檔案 kibana.yml

# 配置 kibana ui 的埠
server.port: 5601

# 配置 kibana 訪問 ip
server.host: "0.0.0.0"

# 設定 ES 地址
elasticsearch.url: "http://sky-00:9200"

# dashboards. Kibana creates a new index if the index doesn't already exist.
#kibana.index: ".kibana"

# 開啟 kibana 時預設頁面
#kibana.defaultAppId: "home"

# ES Basic 認證資訊
elasticsearch.username: "使用者名稱"
elasticsearch.password: "密碼"

# 設定時區資訊
#i18n.locale: "en"

# 開啟監控
xpack.monitoring.enabled: true

# 關閉 kibana 監控,預設為 true
xpack.monitoring.kibana.collection.enabled: false
複製程式碼

2、對 Kibana 配置檔案的說明

  • ES Basic 認證資訊配置(在啟動時對 Kibana 索引進行維護)完成後,登陸 kibana 時,依舊需要輸入認證資訊;
  • 由於 kibana 的 monitoring 無法設定新建的索引的索引名(無法配置 index.name.time_format),這樣 kibana 每天會新建一個索引,由於 kibana 只是作為管理檢視工具,因此關閉了 kibana 監控;
  • elasticsearch.url 該配置項無法設定多個 es 地址;如果你想實現類似負載均衡的功能,最簡單的方法就是在 Kibana 機器上執行一個協調(Coordinating)節點。

3、監控介面

全部配置完成後,啟動 kibana,開啟 monitoring 即可開始監控 node、index 等。

使用 Kibana 監控節點狀態

五、設定索引模板

具體請參考之前釋出的文章基於 IK 分詞器的 ES 通用索引模板


Any Code,Code Any!

掃碼關注『AnyCode』,程式設計路上,一起前行。

CentOS 7.4 下安裝 ES 6.5.1 搜尋叢集

相關文章