一、部署Elasticsearch集群
1、下载elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0-linux-x86_64.tar.gz
2、解压
tar xvf elasticsearch-7.1.0-linux-x86_64.tar.gz -C /opt/
3、创建用户esuser(注意elasticsearch不能用root用户启动)
useradd esuser
passwd esuser
.....输入两次密码(密码要满足规则,否则密码修改失败)....
4、将elasticsearch应用目录的所有者改为新建的用户esuser,否则用户esuser没有访问elasticsearch目录的权限
chown -R esuser /opt/elasticsearch-7.1.0
5、修改配置文件
vi /opt/elasticsearch-7.1.0/config/elasticsearch.yml
需要修改的内容:
(1)master配置
cluster.name: eric-es
node.name: es-master
path.data: /opt/elasticsearch-7.1.0/data
path.logs: /opt/elasticsearch-7.1.0/logs
network.host: 192.168.56.103
http.port: 9200
discovery.seed_hosts: ["host1", "host2"]
cluster.initial_master_nodes: ["node-1", "node-2"]
(2)cluster配置
6、启动
su - esuser //切换账号
cd /opt/elasticsearch-7.1.0/bin
./ elasticsearch –d //-d表示后台启动,不加这个参数的话关闭shell终端会终止elasticsearch服务进程
二、安装可视化管理插件Kibana
1、切换到root用户
2、下载kibana,注意kibana的版本要和Elasticsearch的版本要一致。
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.1.0-linux-x86_64.tar.gz
3、解压
tar -xzf kibana-7.1.0-linux-x86_64.tar.gz -C /opt
4、将kibana应用目录的所有者改为新建的用户esuser
chown -R esuser kibana-6.7.1-linux-x86_64
5、修改kibana.yml配置文件
vi /opt/kibana-7.1.0-linux-x86_64/config/kibana.yml
添加以下内容
server.host: "192.168.56.103" //设置为本机ip
server.port: 5601 //访问端口
elasticsearch.hosts: ["http://192.168.56.103:9200"] //Elasticsearch
6、启动
su - esuser //切换账号
//启动方式一:
nohup /opt/kibana-7.1.0-linux-x86_64/bin/kibana & //使用nohup 命令不挂断地运行命令
//启动方式二:
/opt/kibana-7.1.0-linux-x86_64/bin/kibana & //启动
exit //退出shell终端。如果使用其他方式退出shell终端,则会终止kibana服务进程
7、浏览器输入 http://192.168.56.103:5601 ,即第5步中设置的ip和端口,看到以下界面说明安装成功
三、可能出现的异常情况
1、can not run elasticsearch as root
[2019-05-28T14:34:29,942][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [es-master] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:134) ~[elasticsearch-6.0.1.jar:6.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:121) ~[elasticsearch-6.0.1.jar:6.0.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:69) ~[elasticsearch-6.0.1.jar:6.0.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) ~[elasticsearch-6.0.1.jar:6.0.1]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-6.0.1.jar:6.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.0.1.jar:6.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.0.1.jar:6.0.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.0.1.jar:6.0.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.0.1.jar:6.0.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:322) ~[elasticsearch-6.0.1.jar:6.0.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:130) ~[elasticsearch-6.0.1.jar:6.0.1]
原因很明显,不能用root用户启动Elasticsearch,切换为esuser用户启动即可
2、
which: no java in (/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/root/jdk1.8.0_201/bin:/root/bin)
could not find java; set JAVA_HOME or ensure java is in PATH
原因分析:使用root用户执行java -version 命令出现jdk版本信息,切换为esuser用户执行java -version命令提示 -bash: java: command not found。 这是因为此时esuser用户没有访问jdk目录的权限;切换为root用户,为esuser用户分配jdk目录访问权限即可
root用户执行以下命令
sudo chmod -R 755 /root/jdk1.8.0_201/.*
3、elasticsearch 集群无法启动出现如下提示 failed to send join request to master
检查elasticsearch.yml配置文件,将 network.host配置项的值修改为当前服务器的ip。