https://www.elastic.co/guide/en/welcome-to-elastic/current/getting-started-guides.html
Java 17 安装
在安装 ES 软件前,需要下载使用 Java JDK17。
下载软件
Java 的官方地址:https://www.oracle.com/java
Java 最新的版本是 18.0.1.1(截止 2022.6.15),我们选择 17.0.3 版本
下载地址:https://www.oracle.com/java/technologies/downloads
JDK新特性
Elasticsearch 安装 & 使用
下载软件
Elasticsearch 的官方地址:https://www.elastic.co/cn/
Elasticsearch 最新的版本是 8.2.3(截止 2022.06.15),选择略早的 8.1.0 版本
下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
可以根据情况自行选择不同操作系统的版本。
安装软件
1.集群规划
准备三台 linux 虚拟机,用于配置 Elasticsearch 集群。
启动集群后,每台虚拟机的进程如下:
给三台虚拟机搭建 ES 集群,集群
中-节点名称依次为 es-node-1,es-node-2,es-node-3
2.将压缩包 elasticsearch-8.1.0-linux-x86_64.tar.gz 上传到虚拟机中
解压缩文件到自定义路径,笔者解压路径为:/opt/module,解压后,软件路径为:
/opt/module/elasticsearch-8.1.0
# 切换目录
cd software
# 解压缩
tar -zxvf elasticsearch-8.1.0-linux-x86_64.tar.gz -C /opt/module
解压后的 Elasticsearch 的目录结构如下
3.当前安装 ES 版本为 8.1.0,自带 JDK,所以当前 Linux 虚拟机节点无需配置 Java 环境
4.创建 linux 新用户 es, 数据文件,证书目录, 并修改 Elasticsearch 文件拥有者
# 新增 es 用户
useradd es
# 为 es 用户设置密码
passwd es
# 创建数据文件目录
mkdir /opt/module/elasticsearch-8.1.0/data
# 创建证书目录
mkdir /opt/module/elasticsearch-8.1.0/config/certs
#切换目录
cd /opt/module/elasticsearch-8.1.0
# 修改文件拥有者
chown -R es:es /opt/module/elasticsearch-8.1.0
5.在第一台服务器节点 es-node-1 设置集群多节点通信密钥
# 切换用户
su es
# 签发 ca 证书,过程中需按两次回车键
bin/elasticsearch-certutil ca
# 用 ca 证书签发节点证书,过程中需按三次回车键
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
# 将生成的证书文件移动到 config/certs 目录中
mv elastic-stack-ca.p12 elastic-certificates.p12 config/certs
6.在第一台服务器节点 es-node-1 设置集群多节点 HTTP 证书
# 签发 Https 证书
bin/elasticsearch-certutil http
# 以下是每次要求输入时,需要输入的内容
指定证书路径
无需输入密码
设置证书失效时间
无需每个节点配置证书
输出连接到第一个节点的所有主机名称
输出连接到第一个节点的所有主机 IP 地址
不改变证书选项配置
不给证书加密,按键输入两次回车
解压刚刚生成的 zip 包
# 解压文件
unzip elasticsearch-ssl-http.zip
将解压后的证书文件移动到 config/certs 目录中
# 移动文件
mv elasticsearch/http.p12 kibana/elasticsearch-ca.pem config/certs
7.修改主配置文件:config/elasticsearch.yml
# 设置 ES 集群名称
cluster.name: es-cluster
# 设置集群中当前节点名称
node.name: es-node-1
# 设置数据,日志文件路径
path.data: /opt/module/elasticsearch-8.1.0/data
path.logs: /opt/module/elasticsearch-8.1.0/log
# 设置网络访问节点
network.host: linux1
# 设置网络访问端口
http.port: 9200
# 初始节点
discovery.seed_hosts: ["linux1"]
# 安全认证
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: /opt/module/elasticsearch-8.1.0/config/certs/http.p12
truststore.path: /opt/module/elasticsearch-8.1.0/config/certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path:
/opt/module/elasticsearch-8.1.0/config/certs/elastic-certificates.p12
truststore.path:
/opt/module/elasticsearch-8.1.0/config/certs/elastic-certificates.p12
# 此处需注意,es-node-1 为上面配置的节点名称
cluster.initial_master_nodes: ["es-node-1"]
http.host: [_local_, _site_]
ingest.geoip.downloader.enabled: false
xpack.security.http.ssl.client_authentication: none
8.启动 ES 软件
# 启动 ES 软件
bin/elasticsearch
第一次成功启动后,会显示密码,请记住,访问时需要。只有第一次才有!
上面图形内容因为涉及到多节点集群配置以及 kibana 配置,所以极其重要!!!如果没有出现上面图片,出现下面图片也可以按照指定方式进行配置。
注意:9300 端口为 Elasticsearch 集群间组件的通信端口,9200 端口为浏览器访问的http 协议 RESTful 端口。
9.访问服务器节点 https://虚拟机地址:9200
因为配置了安全协议,所以使用 https 协议进行访问,但由于证书是自己生成的,并不可靠,所以会有安全提示
选择继续即可
输入账号,密码登录即可
账号:elastic
密码:步骤8.中日志输出的密码
10、修改集群中其他节点的配置文件:config/elasticsearch.yml
linux2: 证书直接拷贝,其他步骤完全相同,配置文件中修改如下内容即可
# 设置节点名称
node.name: es-node-2
# 设置网络访问主机
network.host: linux2
linux3:证书直接拷贝,其他步骤完全相同,配置文件中修改如下内容即可
# 设置节点名称
node.name: es-node-3
# 设置网络访问主机
network.host: linux3
11、依次启动集群的三台服务器节点, 不要忘记切换到步骤4.创建的es用户后再启动
su es
linux1:
# 后台启动服务
bin/elasticsearch -d
linux2:
# 后台启动服务
bin/elasticsearch -d
linux3:
# 后台启动服务
bin/elasticsearch -d
问题解决
- Elasticsearch 是使用 java 开发的,8.1 版本的 ES 需要 JDK17 及以上版本。默认安装包中带有 JDK 环境,如果系统配置ES_JAVA_HOME 环境变量,那么会采用系统配置的JDK。如果没有配置该环境变量,ES 会使用自带捆绑的 JDK。虽然自带的 JDK 是 ES软件推荐的 Java 版本,但一般建议使用系统配置的 JDK。
- Windows 环境中出现下面的错误信息,是因为开启了 SSL 认证:
修改 config/elasticsearch.yml 文件,将 enabled 的值修改为 false
# Enable encryption for HTTP API client connections, such as Kibana, Logstash,
and Agents
xpack.security.http.ssl:
enabled: false
keystore.path: certs/http.p12
- 启动成功后,如果访问 localhost:9200 地址后,弹出登录窗口
第一次启动时,因为开启了密码验证模式,在启动窗口中会显示输入账号和密码。如果没有注意到或没有找到账号密码,可以设置免密登录:
修改 config/elasticsearch.yml 文件
# Enable security features
xpack.security.enabled: false
-
双击启动窗口闪退,通过路径访问追踪错误,如果是“空间不足”,请修改config/jvm.options 配置文件
# 设置 JVM 初始内存为 1G。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配 内存 # Xms represents the initial size of total heap space # 设置 JVM 最大可用内存为 1G # Xmx represents the maximum size of total heap space -Xms4g -Xmx4g
-
启动后,如果密码忘记了,怎么办?可以采用指令重置密码
# 使用 es 用户,执行指令,重置 elastic 用户密码 bin/elasticsearch-reset-password -u elastic
如果只启动单一节点,此操作可能会失败,至少启动 2 个节点,测试成功。
Kibana 安装 & 使用
Elasticsearch 的开源分析可视化工具,与存储在 Elasticsearch 中的数据进行交互
下载软件
Elasticsearch 下载的版本是 8.1.0,这里我们选择同样的 8.1.0 版本
下载地址:https://www.elastic.co/cn/downloads/past-releases#kibana
安装软件
这里与前面安装的ElasticSearch集群一致,Kibana 也采用 linux 集群配置。
1.将压缩包 kibana-8.1.0-linux-x86_64.tar.gz 上传到虚拟机中
解压缩文件到自定义路径,笔者解压路径为:/opt/module,解压后,软件路径为:/opt/module/kibana-8.1.0
# 切换目录
cd software
# 解压缩
tar -zxvf kibana-8.1.0-linux-x86_64.tar.gz -C /opt/module
解压后的 kibana 的目录结构如下:
2.给 Kibana 生成证书文件
# 在 ES 服务器中生成证书,输入回车即可
cd /opt/module/elasticsearch-8.1.0
bin/elasticsearch-certutil csr -name kibana -dns linux1
# 解压文件
unzip csr-bundle.zip
# 将解压后的文件移动到 kibana 的 config 目录中
mv kibana.csr kibana.key /opt/module/kibana-8.1.0/config/
# 生成 crt 文件
openssl x509 -req -in kibana.csr -signkey kibana.key -out kibana.crt
3.修改配置文件:kibana.yml
# 服务端口
server.port: 5601
# 服务主机名
server.host: "linux1"
# 国际化 - 中文
i18n.locale: "zh-CN"
# ES 服务主机地址
elasticsearch.hosts: ["https://linux1:9200"]
# 访问 ES 服务的账号密码
elasticsearch.username: "kibana"
elasticsearch.password: "fnqIYLQGv81iyW5nWeZ-"
elasticsearch.ssl.verificationMode: none
elasticsearch.ssl.certificateAuthorities:
[ "/opt/module/elasticsearch-8.1.0/config/certs/elasticsearch-ca.pem" ]
server.ssl.enabled: true
server.ssl.certificate: /opt/module/kibana-8.1.0/config/kibana.crt
server.ssl.key: /opt/module/kibana-8.1.0/config/kibana.key
4.修改软件目录拥有者
# 切换目录
chown -R es:es /opt/module/kibana-8.1.0/
5.切换用户,启动软件
# 切换用户
su es
# 启动软件
bin/kibana
# 也可以后台启动
nohup /opt/module/kibana-8.1.0/bin/kibana >kibana.log 2>&1 &
应用软件
打开浏览器,输入访问地址:https://linux1:5601
输入 elastic 账号和密码即可访问