一、準備安裝
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 等。
五、設定索引模板
具體請參考之前釋出的文章基於 IK 分詞器的 ES 通用索引模板
Any Code,Code Any!
掃碼關注『AnyCode』,程式設計路上,一起前行。