linux環境下ES5.6叢集安裝心得
記錄安裝es5.6注意事項和遇到的問題。
1.安裝準備
需要準備es5.6安裝包,node包,grunt-cli包,head包(或者head chrome外掛需要和es大版本對應),es5.6 和1.4不同es5.6head是分離出來的 1.1. ES5.6需要JDK1.8版本,這裡安裝省略。
java -version 檢視jdk安裝情況
1.2. 關閉防火牆和selinux (linux6.X和linux7.X命令不同) ,我這邊的環境是Linux7.3 (linux6.X 命令 service iptables status(stop))
--檢視防火牆狀態
systemctl status firewalld.service
--永久關閉防火牆
systemctl disable firewalld.service (開啟 enable)
--檢視selinux是否關閉
getenforce
--顯示permissive即為開啟狀態 Enforcing 為關閉狀態
--臨時關閉selinux
setenforce 1 --對應Enforcing 開啟狀態
setenforce 0 --對應permissive 關閉狀態
--永久關閉 需要重啟伺服器
vi /etc/selinux/config/
selinux=disable
2.檢查並設定系統環境
a、檢查系統版本
> uname -a
b、檢查並設定檔案數設定
> vi/etc/security/limits.conf
新增:
* soft nofile65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 65536
c、調整使用者開啟最大程序數
> vi/etc/security/limits.d/90-nproc.conf
* soft nproc 1024 改為 * soft nproc 2048
d、修改單個程序最大執行緒資料
> vi /etc/sysctl.conf
新增:
vm.max_map_count=655360
儲存之後執行:
> sysctl –p
e、配置etc/hosts檔案
將叢集中的所有節點名稱和IP加到hosts檔案(修改叢集所有機器)。 /etc/hosts/
示例:
192.168.86.1 jq01
192.168.86.2 jq02
192.168.86.3 jq03
3.安裝ES (我配置的是1臺master 4臺node)
1.es啟動不可使用root使用者,必須要為es新建使用者啟動。
useradd elasticsearch -g elasticsearch -p elasticsearch
2.解壓軟體包
tar -zxvf elasticsearch-5.6.3.tar.gz
3.修改解壓的目錄所屬使用者和組
chown -R elasticsearch:elasticsearch elasticsearch-5.6.3
4.修改elasticsearch配置檔案 (配置檔案後冒號後必須加空格)
4.1 master elasticsearch.yml配置資訊
vi /es目錄/config/elasticsearch.yml
cluster.name: my-application ## 叢集名稱 根據自身需求填寫
node.name: node1 ## 節點名稱
#node.attr.rack: r1 ## 機架名稱
node.master: true ## master節點(為node節點時需要改為false)
node.data: true ## 資料節點(為master節點時需要改為true)
http.port: 9200 ## 當一個伺服器需要搭建多個例項時,需要修改其埠
path.data: /path/to/data ## 資料地址 建議不要放在es地址相同 當你沒有備份,不小心刪除ES安裝目錄,所有資料都被刪除
path.logs: /path/to/logs ## 日誌地址
bootstrap.memory_lock: false ## 鎖定記憶體
bootstrap.system_call_filter: false #防止報錯 bootstrap checks failed
network.host: 192.168.0.1 ## 繫結本機名稱 機器名稱
discovery.zen.ping.unicast.hosts: ["192.168.0.1"] ## master的地址,多例項的情況下,需要配置埠
discovery.zen.minimum_master_nodes: 1 ## 最少的master數量
gateway.recover_after_nodes: 3 ## 多少個節點啟動之後,資料開始恢復。通常配置節點的node總數的一半以上
indices.fielddata.cache.size: 20% #防止es叢集使用時間過久導致快取過高影響es查詢,之前的叢集es1.4出現過該問題,已經解決,es5.6版本未驗證,可不加該引數 如果是node 該配置建議為40%
http.cors.enabled: true
http.cors.allow-origin: “*”
node.max_local_storage_nodes:1 ## 當單機需要配置多例項時,將資料修改為需要配置的例項數值
修改記憶體引數配置檔案
vi /es安裝目錄/config/jvm.options
-Xms1g ### 當伺服器記憶體》64G時,修改成伺服器32G,否則修改成伺服器的一半記憶體。
-Xmx1g ### 和-Xms1g設定成一樣。
free -g (檢視記憶體情況,我的伺服器是128g配置資訊如下)
-Xms32g
-Xmx32g
4.1 node elasticsearch.yml配置資訊
vi /es目錄/config/elasticsearch.yml
cluster.name: my-application ## 叢集名稱 根據自身需求填寫
node.name: node2 ## 節點名稱
#node.attr.rack: r1 ## 機架名稱
node.master: false ## master節點(為node節點時需要改為false)
node.data: true ## 資料節點(為master節點時需要改為true)
http.port: 9200 ## 當一個伺服器需要搭建多個例項時,需要修改其埠
path.data: /path/to/data ## 資料地址 建議不要放在es地址相同 當你沒有備份,不小心刪除ES安裝目錄,所有資料都被刪除
path.logs: /path/to/logs ## 日誌地址
bootstrap.memory_lock: false ## 鎖定記憶體
bootstrap.system_call_filter: false #防止報錯 bootstrap checks failed
network.host: 192.168.0.2 ## 繫結本機名稱 機器名稱
discovery.zen.ping.unicast.hosts: ["192.168.0.1"] ## master的地址,多例項的情況下,需要配置埠
discovery.zen.minimum_master_nodes: 1 ## 最少的master數量
gateway.recover_after_nodes: 3 ## 多少個節點啟動之後,資料開始恢復。通常配置節點的node總數的一半以上
indices.fielddata.cache.size: 20% #防止es叢集使用時間過久導致快取過高影響es查詢,之前的叢集es1.4出現過該問題,已經解決,es5.6版本未驗證,可不加該引數 如果是node 該配置建議為40%
http.cors.enabled: true
http.cors.allow-origin: “*”
node.max_local_storage_nodes:1 ## 當單機需要配置多例項時,將資料修改為需要配置的例項數值
5.安裝ik分詞器(提供分詞查詢,所有機器必須安裝)
unzip elasticsearch-analysis-ik-5.6.3-releases.zip -d/home/elasticsearch/pulgins
## 解壓路徑是es的安裝路徑下的pulgins
6.啟動es例項
./bin/elasticsearch/ -d
檢視logs日誌 確認啟動無問題
常見問題處理(轉載,基本上常見問題在準備環境中已經做了處理):
瀏覽器檢查驗證 ip:9200 當你看到:說明安裝成功
{
"name":"node1",
"cluster_name":"ES_CLUSTER"
.....
.....
}
7.安裝head chrome瀏覽器外掛或者安裝head外掛
此外掛需要安裝才可以訪問head管理介面。
谷歌瀏覽器--新增擴充套件程式--將解壓後的crx外掛拖動到chrome中--安裝head chrome外掛
右上角es search 在小視窗欄輸入es master地址點選連線
安裝head外掛
1、安裝node包(僅master機器)
tar -xvf node-v0.10.26.tar.gz
cd node-v0.10.26
make &&makeinstall (編譯安裝需要一些時間)
node –v
2、安裝grunt包(僅master機器)
unzip grunt-cli.zip
cd /data/grunt-cli/node_modules/grunt-cli/bin/
chmod 777 grunt
cp bin/* /usr/local/bin/
cp lib/* /usr/local/lib
cd /data/grunt-cli
cp grunt /usr/local/bin
cp -r node_modules/ /usr/local/bin
3、安裝head包(僅master機器)
unzip elasticsearch-head-master.zip
cd elasticsearch-head-master
vi Gruntfile.js
(修改埠,新增一行hostname:’*’(存在不用新增))
cd _site
vi app.js (修改為es master地址)
執行命令(按照實際安裝目錄執行,我安裝在data目錄下)
cd /data/elasticsearch-head-master
grunt server &
驗證:
ip:9100 至此安裝成功:
驗證ik分詞器使用: 在node或者master啟動時能看到 日誌:
[node] loaded plugin [analysis-ik]
es叢集中驗證: 新增索引(iktest) 符合查詢
http://ip:9200/iktest
_analyze post
{
"analyzer":"ik_max_word",
"text":"我們是好朋友"
}
提交請求:
可以查到多個組合分詞
附:
1.ik分詞器 主要用來做分詞,例如 es資料中有一條"我們是好朋友"的資料,如果沒有安裝分詞,輸入"我們"將無法查到該資料
2.chrome head 瀏覽器外掛和安裝head外掛到伺服器的功能是一樣的,相比較來說安裝瀏覽器外掛訪問會簡單一些,但是其他人訪問需要安裝瀏覽器外掛,安裝head外掛到伺服器就不會存在這個問題
3.建議安裝kibana外掛方便管理,還有x-pack外掛可以隨時觀察叢集的效能,IO/cpu等等情況,es2.X以前可以使用bigdesk和kopf外掛來管理,目前瞭解到的bigdesk和kopf已經對es5.X不支援。但是x-pack外掛有1個月的試用期,需要反編譯jar包。
4.安裝node,grunt,head需要安裝gcc等編譯包,需要配置相關的yum源
5.啟動es時注意觀察es的日誌,大部分的啟動異常可以通過日誌檢視到
本文屬於原創,轉載請註明出處。