1 Elasticsearch 是什么
引用官方对es的描述:
Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。
2.下载安装包
下载地址:https://www.elastic.co/downloads/elasticsearch
选择对应的平台及版本我这里下载的是 elasticsearch-7.15.1.tar.gz
保存至/opt目录下
cd /opt
tar -zxvf elasticsearch-7.15.1.tar.gz
3.创建用户es,用户组es
groupadd es
useradd es -g es -p elasticsearch
4.修改文件权限
cd /opt/
chown -R es:es elasticsearch-7.15.1
5.修改配置文件
cd /opt/elasticsearch-7.15.1/config/
vim elasticsearch.yml
修改以下配置:
集群名称,建议修改成自己的,防止误用默认集群
cluster.name: elasticsearch
设置节点名称
node.name: node-10.10.10.10
配置外网可以访问
network.host: 0.0.0.0
单节点需要修改配置
cluster.initial_master_nodes: ["node-1"]
如果有特殊需求可以设置日志路径和数据路径
path.data: /esdata/data
path.logs: /esdata/log
追加配置文件:
echo "bootstrap.memory_lock: false" >> /opt/elasticsearch-7.15.1/config/elasticsearch.yml
echo "bootstrap.system_call_filter: false" >> /opt/elasticsearch-7.15.1/config/elasticsearch.yml
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "* soft nproc 4096" >> /etc/security/limits.conf
echo "* hard nproc 4096" >> /etc/security/limits.conf
echo "vm.max_map_count=655360" >> /etc/sysctl.conf
保存后执行
sysctl -p
6.配置jvm内存大小
cd /opt/elasticsearch-7.15.1/config/
修改文件jvm.options
# Xms represents the initial size of total heap space根据内容需要设置建议设置内容一半
# Xmx represents the maximum size of total heap space 根据内容需要设置建议设置内容一半
-Xms8g
-Xmx8g
echo "export ES_HEAP_SIZE=8g" >> /opt/elasticsearch-7.15.1/bin/elasticsearch
7.启动服务
su es
cd /opt/elasticsearch-7.15.1/bin/
./elasticsearch -d
8. 访问验证:
curl http://ip/9200
9.X-pack
X-Pack是Elastic Stack扩展功能,提供安全性,警报,监视,报告,机器学习和许多其他功能。 ES7.0+之后,默认情况下,当安装Elasticsearch时,会安装X-Pack,无需单独再安装。
自6.8以及7.1+版本之后,基础级安全永久免费。
10.为集群创建认证机构
文件根目录下执行
bin/elasticsearch-certutil ca
依次输入回车(文件使用默认名),并输入密码
11.节点颁发证书
TLS需要X.509证书(X.509 证书是一个数字证书,它使用 X.509 公有密钥基础设施标准将公有密钥与证书中包含的身份相关联。X.509 证书由一家名为证书颁发机构 (CA) 的可信实体颁发。CA 持有一个或多个名为 CA 证书的特殊证书,它使用这种证书来颁发 X.509 证书。只有证书颁发机构才有权访问 CA 证书)才能对与之通信的应用程序执行加密和身份验证。 为了使节点之间的通信真正安全,必须对证书进行验证。
在Elasticsearch集群中验证证书真实性的推荐方法是信任签署证书的证书颁发机构(CA)。
这样,只需要使用由同一CA签名的证书,即可自动允许该节点加入集群。
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 #依次输入上一个步骤的密码。回车(文件使用默认名),密码(建议与上一步密码相同)
bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password #并输入第一步输入的密码
bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password #并输入第一步输入的密码
12.复制生成的两个文件到config目录下
13.修改配置
在elasticsearch-7.6.1/config/elasticsearch.yml中增加一下配置,启用x-pack安全组件,启用ssl加密通信,并且配置认证证书:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
配置修改完成后,重启es服务,重启成功后
http://ip/9200访问Es服务要输入用户名和密码
14.密码设置
通过设置访问密码,这是elastic用户和其他一些系统内置用户的密码
bin/elasticsearch-setup-passwords interactive
设置完成后启动并输入用户名密码登录