一、准备工作
安装包的下载: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 掉即可: