CentOS 7.4 下安裝 ES 6.5.1 搜尋叢集
vi /etc/hosts# 修改 hosts 檔案,新增下面的內容 192.168.11.1sky-00 192.168.11.2sky-01 192.168.11.3sky-02 192.168.11.4sky-03 192.168.11.5sky-04 192.168.11.6sky-05 192.168.11.7sky-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 *softnofile100001 *hardnofile100002 *softnproc4096 *hardnproc8192 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 外掛)
外掛下載連結: ofollow,noindex">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 配置檔案的說明
elasticsearch.url
3、監控介面
全部配置完成後,啟動 kibana,開啟 monitoring 即可開始監控 node、index 等。

五、設定索引模板
具體請參考之前釋出的文章 基於 IK 分詞器的 ES 通用索引模板
Any Code,Code Any!
掃碼關注『AnyCode』,程式設計路上,一起前行。
