Linux版本下载地址:ES-8.1.0-linux
tar -zxvf elasticsearch-8.1.0-linux-x86_64.tar.gz -C 指定解压的目录
useradd es
passwd es
# 创建数据文件目录
mkdir /opt/module/es-8.1.0/data/
# 创建证书目录
mkdir /opt/module/es-8.1.0/config/certs
# 修改文件拥有者
chown -R es:es /opt/module/es-8.1.0
su es
# 签发ca证书 直接敲回车 不需要输入密码
bin/elasticsearch-certutil ca
# 用ca证书签发节点证书 敲三次回车
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
# 将生成的证书文件移动到config/certs目录中
mv elastic-certificates.p12 config/certs
# 签发Https证书
bin/elasticsearch-certutil http
# 这里获取证书的步骤有点多,只需要注意下面的重要环节,其余可以直接回车跳过
# (手动输入elastic-stack-ca.p12的路径,输入三个节点的hostname以及ip地址,过期时间设置为5y)
# 命令执行成功在es主目录下生成elasticsearch-ssl-http.zip压缩文件
# 解压生成的zip文件
unzip elasticsearch-ssl-http.zip
# 证书文件移动到指定目录下
mv elasticsearch/http.p12 kibana/elasticsearch-ca.pem config/certs
这里获取证书的一些关键步骤如何操作,如下图:



# ES集群配置
cluster.name: cluster-es
node.name: es-node-1
#设置数据
path.data: /media/es-8.1.0/elasticsearch-8.1.0/data/
path.logs: /media/es-8.1.0/elasticsearch-8.1.0/logs/
# 网络访问节点名称
network.host: linux1
# Rest访问端口9200 ES集群内部端口为9300
http.port: 9200
# 初始节点
discovery.seed_hosts: ["linux1"]
# 安全认证
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: true
keystore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/http.p12
truststore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/http.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/elastic-certificates.p12
truststore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/elastic-certificates.p12
# 集群初始化的主节点
cluster.initial_master_nodes: ["es-node-1"]
http.host: [_local_, _site_]
ingest.geoip.downloader.enabled: false
xpack.security.http.ssl.client_authentication: none
bin/elasticsearch
如果出现下面这种结果,表示已经启动成功了。
ps: 这里有可能会报bootstrap checks filed,具体可以看下面的第九步
最好是截图或者复制这里的登录密码,方便后面登录使用

不需要再重新获取证书,使用es-node-1中的即可(http.p12和elastic-certificates.p12的路径最好是和es-node-1保持一致,方便操作)
在配置文件中只需要修改node.name和network.host
三台服务器依次bin/elasticsearch -d 后台启动
这里如果不进行密码重置或者修改的话,三台机器登录的账号是共享密码的
(p06Yi689YAq1YekNLJjA 三台机器可共用该密码进行登录)


vim config/jvm.options 修改配置文件中的-Xms和-Xmx参数,用于解决空间不足的问题 bin/elasticsearch-reset-password -u elastic 重置登录es的密码
# 设置每个进程可以打开的文件数的限制
es - nproc 4096 # 设置线程数为4096
es soft nofile 65536
es hard nofile 65536
# 设置每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
一个进程可以拥有的VMA数量设置为655360(默认为65536)
vm.max_map_count=655360
最后使用sysctl -p重新加载,再去启动ES应该就没问题了。
访问https://虚拟机IP地址(或主机名):9200,用户名为elastic和对应的密码(也就是第六步中图中的那一串数字字母),可以看到页面返回一串json数据反馈ES集群的信息



最好是下载和ES相同版本的Kibana,避免在启动过程中报稀奇古怪的错。。
# 生成一个csr-bundle.zip文件
bin/elasticsearch-certutil csr -name kibana -dns linux1
# 解压
unzip csr-bundle.zip
#得到kibana文件,注意啊,是将该目录下的两个文件移动到kibana的config目录下,而不是ElasticSearch的config目录
mv kibana.csr kibana.key /media/kibana-8.1.0/config//config/
# 生成crt文件
openssl x509 -req -in kibana.csr -signkey kibana.key -out kibana.crt
vim kibana.yml
# 服务端口
server.port: 5601
# 服务主机名
server.host: "linux1"
# 国际化
i18n.locale: "zh-CN"
# ES服务器主机地址
elasticsearch.hosts: ["https://linux1:9200"]
# 访问ES服务器的账号 密码
elasticsearch.username: "kibana"
elasticsearch.password: "AYcyG-icexpqNCnzPXty"
elasticsearch.ssl.verificationMode: none
elasticsearch.ssl.certificationAuthorities: ["/media/es-8.1.0/elasticsearch-8.1.0/config/certs/elasticsearch-ca.pem"]
server.ssl.enabled: true
server.ssl.certificate: /media/kibana-8.1.0/kibana-8.1.0/config/kibana.crt
server.ssl.key: /media/kibana-8.1.0/kibana-8.1.0/config/kibana.key
chown -R es:es kibana的解压目录
bin/kibana 前台启动

在启动kibana的时候,有可能会报下面的错误,无法授权给用户kibana
那么这里就需要重置kibana的密码了,使用
bin/elasticsearch-reset-password -u kibana
可以在控制台看到重置后的密码,复制它替换到kibana.yml中的elasticsearch.password

访问kibana的客户端,https://虚拟机ip地址:5601
登录账户 elastic (注意啊,不是kibana用户登录)
密码还是上面生成的elastic的密码


