一、准備工作
安裝包的下載:elasticsearch-6.8.1.tar.gz
集群服務器:A B
一、單節點elasticsearch的安裝部署
a、進入es的下載目錄home:解壓tar包
tar -zxvf elasticsearch-6.8.1.tar.gz
b、將解壓后的目錄名elasticsearch-6.8.1 修改為elasticsearch:
cd /home
進入elasticsearch的config目錄下,修改elasticsearch.yml:修改配置文件的IP、端口信息
cd elasticsearch/config
node.name: node-163
node.master: true
node.data: true
path.logs: /home/elastic/logs
bootstrap.memory_lock: false
bootstrap.system_call_filter: false
network.host: 10.68.120.163
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
詳細截圖如下:
c、添加用戶,因為啟動es需要單獨創建用戶:
useradd elastic -g elastic -p elasticsearch
chown -R elastic.elastic elasticsearch/ (遞歸修改權限)
chmod 777 elasticsearch/ bin/
su elastic (切換用戶)
d、進入 elasticsearch 的bin目錄下執行 ./elasticsearch 。如果日志中沒有ERROR標志的錯誤,說明啟動成功,./bin/elasticsearch -d (-d為在后台啟動,不加-d時可以看到啟動過程,出現started時啟動完成)
e、驗證是否成功。關閉防火牆(systemctl stop firewalld),然后在瀏覽器中訪問192.168.80.129:9200 ,或者 curl 192.168.80.129:9200,如下所示啟動成功
三、elasticsearch集群的安裝部署
a、主節點:
進入到es目錄下,解壓3份elasticsearch安裝包,分別改名es-master,es-slave1。主節點目錄結構:
修改主節點的配置文件:修改es-master/config下的elasticsearch.yml 如下格式:此時主節點默認的端口號為9200.
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name: kainan(和其他幾個節點的名字一樣)
node.name: master
node.master: true
network.host: 主節點的IP地址
詳細截圖如下:
b、子節點:子節點目錄結構:
修改子節點的配置文件:修改es-slave1/config下的elasticsearch.yml 如下格式:此時子節點默認的端口號為8200,如果手動配置,冒號后面要加空格
cluster.name: kainan(與主節點相同)
node.name: slave1
network.host: 子節點IP地址
http.port: 8200
discovery.zen.ping.unicast.hosts: ["主節點IP地址"]
詳細截圖如下:
如果存在多個節點配置安裝目錄結構與節點1相同即可。
c、給文件夾賦權限
添加用戶:
groupadd elastic
adduser -g elastic -d /home/elastic elastic
chown :chown 777 elasticsearch/ bin/
chmod:chown -R elastic.elastic elastic
當主節點與子節點修改完用戶權限后即可啟動es。
d、啟動es。切換elastic用戶,先啟動master,再啟動slave1等子節點服務器
切換用戶:su elastic
進入es的安裝目錄的bin目錄下執行:./elasticsearch -d
四、elasticsearch集群的安裝部署的常見報錯
問題1:[2018-08-07T11:35:38,130][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [node-001] uncaught exception in thread [main]
原因:elasticsearch不支持root用戶登錄,新增用戶並切換到其他用戶啟動es服務。
問題2:[2018-11-16T13:53:00,839][WARN ][o.e.b.JNANatives ] unable to install syscall filter: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk bootstrap checks failed
解決版本:一般在配置文件中新增:bootstrap.system_call_filter: false
問題3:2020-06-08 09:50:26,077 main ERROR RollingFileManager (/home/elastic/es-master/logs/note1.log) java.io.FileNotFoundException: /home/elastic/es-master/logs/note1.log (Permission denied) java.io.FileNotFoundException: /home/elastic/es-master/logs/note1.log (Permission denied)
原因:一般由於提示文件的權限不足導致,需要給提示文件修改用戶組。
問題4:uncaught exception in thread [main]
原因:發現了另一個 elasticsearch 服務,ps -ef |grep elasticsearch 雖然不清楚是如何啟動的,kill 掉即可: