下载和安装

  • 一、下载
  • 二、安装
  • 2.1 JDK的安装
  • 2.2 ElasticSearch的安装
  • 2.3 启动ES
  • 2.4 多节点启动
  • 三、Kibana的安装


一、下载

以下载7.10.0为例:

https://www.elastic.co/cn/downloads/elasticsearch 选择对应的操作系统,我是为了安装在CentOS上面,所以选择的是Linux x86_64版本。

获取es中所有id es获取root_elasticsearch

想找历史版本,点击右边的view past release:

获取es中所有id es获取root_centos_02


在下拉框中选择对应的版本:

获取es中所有id es获取root_elasticsearch_03


点击即可下载:

获取es中所有id es获取root_学习_04

二、安装

本次安装环境:

CentOS Linux release 7.9.2009 (Core)
Elasticsearch 7.10.0

2.1 JDK的安装

略略略,在ES 7以后得版本,其安装文件自带JDK。
而且你在Linux上面装个Java都不会,你应该还没有学到ES。😄

2.2 ElasticSearch的安装

将前面下载的文件解压:

tar -zxvf elasticsearch-7.10.0-linux-x86_64.tar.gz

看一下解压后的ES目录中有什么内容:

[root@CentOS elasticsearch-7.10.0]# ll
total 568
drwxr-xr-x.  2 root root   4096 Nov 10  2020 bin
drwxr-xr-x.  3 root root    169 Nov 16 22:57 config
drwxr-xr-x.  9 root root    107 Nov 10  2020 jdk
drwxr-xr-x.  3 root root   4096 Nov 10  2020 lib
-rw-r--r--.  1 root root  13675 Nov 10  2020 LICENSE.txt
drwxr-xr-x.  2 root root      6 Nov 10  2020 logs
drwxr-xr-x. 53 root root   4096 Nov 10  2020 modules
-rw-r--r--.  1 root root 544318 Nov 10  2020 NOTICE.txt
drwxr-xr-x.  2 root root      6 Nov 10  2020 plugins
-rw-r--r--.  1 root root   7313 Nov 10  2020 README.asciidoc
  • bin: 可执行脚本文件,包括启动服务命令,插件管理,函数命令。
  • config:配置文件目录,如elasticsearch配置,角色配置,jvm配置等。
  • lib:elasricsearch所依赖的jar包库
  • data:默认的数据存放目录,包含所有节点、分片、索引、文档的所有数据。
  • logs:默认的日志存储路径。
  • modules:包含所有ES包含的模块,如Cluster、Discovery、Indices。
  • plugins:已经安装的插件的目录。
  • jdk:7.0之后才有,自带的java环境。

可以看一下它所包含的Java版本,为JDK 15。

[root@CentOS elasticsearch-7.10.0]# cd jdk/bin/[root@CentOS bin]# ./java -version openjdk version "15.0.1" 2020-10-20 OpenJDK Runtime Environment AdoptOpenJDK (build 15.0.1+9) OpenJDK 64-Bit Server VM AdoptOpenJDK (build 15.0.1+9, mixed mode, sharing)

2.3 启动ES

执行bin目录下面的elasticsearch命令,-d参数是为了在后台启动。

[root@centos elasticsearch-7.10.0]# ./bin/elasticsearch -d

遇到了错误:

[root@centos elasticsearch-7.10.0]# ./bin/elasticsearch -d
[root@centos elasticsearch-7.10.0]# uncaught exception in thread [main]
java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:111)
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:178)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:393)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
        at org.elasticsearch.cli.Command.main(Command.java:90)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
For complete error details, refer to the log at /root/elasticsearch-7.10.0/logs/elasticsearch.log
2022-11-16 15:14:28,412676 UTC [4050] ERROR CLogger.cc@310 Cannot log to named pipe /tmp/elasticsearch-15103854651302852425/controller_log_4031 as it could not be opened for writing
2022-11-16 15:14:28,414901 UTC [4050] INFO  Main.cc@103 Parent process died - ML controller exiting

这是因为elasticsearch为了安全,不允许使用root用户启动。
我们可以单独创建一个用户来专门运行ES。

或者在ES5以及以前版本,我们可以修改一下ES的配置,使得我们可以使用root用户启动。

  1. 在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下

./elasticsearch -Des.insecure.allow.root=true

  1. 打开elasticsearch执行文件,在变量ES_JAVA_OPTS使用前为其赋值添加参数:

ES_JAVA_OPTS="-Des.insecure.allow.root=true"

而在新的版本,我们就只能创建新的用户来执行ES解决这个问题了。
创建用户es并且授权:

[root@centos elasticsearch-7.10.0]# adduser es
[root@centos elasticsearch-7.10.0]# passwd es
Changing password for user es.
New password: 
BAD PASSWORD: The password is a palindrome
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@centos elasticsearch-7.10.0]# cd ..                              
[root@centos ~]# chown -R es elasticsearch-7.10.0

切换用户:

[root@centos ~]# sudo su - es
Last login: Wed Nov 16 23:49:10 CST 2022 on pts/0

再次执行es启动命令:

[es@centos elasticsearch-7.10.0]$ ./bin/elasticsearch -d
[es@centos elasticsearch-7.10.0]$

没有什么异常的输出,我们可以看一下日志文件:

less logs/elasticsearch.log

我们找到了started字样,说明启动成功了。

获取es中所有id es获取root_elasticsearch_05

我们可以访问一下服务器的9200端口:

获取es中所有id es获取root_学习_06


得到了ES的状态,说明ES启动成功。

2.4 多节点启动

如果我们想启动多个节点,
首先我们先启动第一个节点:

./bin/elasticsearch -E path.data=data1 -E path.logs=log1 -E node.name=node1 -E cluster.name=veeja-test -d
./bin/elasticsearch -E path.data=data2 -E path.logs=log2 -E node.name=node2 -E cluster.name=veeja-test -d

然后分别访问9200和9201端口就能看到了:

获取es中所有id es获取root_java_07

三、Kibana的安装

同样下载7.10.0版本:

获取es中所有id es获取root_获取es中所有id_08

kibana-7.10.0-linux-x86_64.tar.gz

解压:

[root@centos ~]# tar -zxvf kibana-7.10.0-linux-x86_64.tar.gz 
[root@centos ~]# ll
total 558188
drwxr-xr-x. 10 root root            210 Nov 20 15:01 kibana-7.10.0-linux-x86_64
-rw-r--r--.  1 root root      252795226 Nov 20 14:59 kibana-7.10.0-linux-x86_64.tar.gz

先修改一下配置文件,以便于我们再虚拟机外部访问(本地运行可以忽略):

[es@centos kibana-7.10.0-linux-x86_64]$ vim config/kibana.yml

修改为虚拟机的IP:

# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "192.168.31.217"

启动kibana的方式同es差不多:

[es@centos kibana-7.10.0-linux-x86_64]$ ./bin/kibana

当我们看到如下字样:

获取es中所有id es获取root_elasticsearch_09


就证明启动成功了,我们可以访问一下5601端口进行尝试:

获取es中所有id es获取root_获取es中所有id_10


End.