Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置

文章目录

  • 1、官网文档
  • 2、安装elastic
    • 安装前提,系统配置:
    • 2.1、下载官网安装包
    • 2.2、配置文件参数介绍
      • 2.2.1、目录结构
    • 2.3、启动配置集群
      • 2.3.1、重置密码
      • 2.3.2、重新生成kibana令牌
      • 2.3.3、转换成生产环境后默认的es配置说明
  • 3、配置kibana
    • 3.1、下载安装
  • 4、同一台服务器的elastic集群配置
    • 4.1、生成新的elastic
  • 5、多服务器部署节点加入同一集群
    • 5.1、方法论
    • 5.3、生成设置证书
  • 6、冷热温节点部署
    • 6.1、使用索引验证
  • 7、报错信息合集
    • 7.1、启动elasticsearch报错
    • 7.2、kibana启动报错
  • 8、后台启动
  • 9、安装IK分词器
  • 9、安装IK分词器

1、官网文档

  • 系统配置:https://www.elastic.co/guide/en/elasticsearch/reference/8.1/setting-system-settings.html
  • elastic安装:https://www.elastic.co/guide/en/elasticsearch/reference/8.1/install-elasticsearch.html
  • 配置:https://www.elastic.co/guide/en/elasticsearch/reference/8.1/settings.html

2、安装elastic

安装前提,系统配置:

1、设置虚拟内存
sysctl -w vm.max_map_count=262144
echo "vm.max_map_count=262144" >> /etc/sysctl.conf,加入:vm.max_map_count=262144
使配置生效:sysctl -p

2、设置文件打开数:
cat >>/etc/security/limits.conf< * soft nofile 65535
> * hard nofile 65535
> * soft nproc 65535
> * hard nproc 65535
> EOF


设置pam配置:
echo "session    required pam_limits.so" >> /etc/pam.d/login


3、禁用swap交换分区
swapoff -a		#临时禁用
vi /etc/fstab	#永久禁用
找到swap这一行前面使用#符号禁用掉

4、设置TCP重传超时
sysctl -w net.ipv4.tcp_retries2=5
编辑配置文件:echo "net.ipv4.tcp_retries2=5" >> /etc/sysctl.conf

5、创建一个用户
useradd es

6、创建安装目录
mkdir /elasticsearch/
mkdir /elasticsearch/elastic-cluster1 elastic-cluster2

2.1、下载官网安装包

官网下载地址,选择对应版本的elasticsearch和kibana:https://www.elastic.co/cn/downloads/past-releases#elasticsearch

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第1张图片

1、解压:我的安装包下载到了/root/目录下,解压到/elasticsearch/elastic-cluster1/目录下

tar zxf /root/elasticsearch-8.1.0-linux-x86_64.tar.gz -C /elasticsearch/elastic-cluster1

2、进入对应目录下:cd /elasticsearch/elastic-cluster1

3、可以在linux里使用wget 加地址的方式直接下载,或者下载到本地,通过lrzsz的rz命令把安装包导入进去,或者ftp

2.2、配置文件参数介绍

elasticsearch的配置文件在:elasticsearch-8.1.0/config/elasticsearch.yml

  • 参数内容:elasticsearch如果不更改配置文件参数,列如network.host参数使用的是开发模式,如果更改就会使用生成产模式
  • 开发生产模式区别:https://www.elastic.co/guide/en/elasticsearch/reference/8.1/system-config.html#dev-vs-prod
集群名称设置:cluster.name:
节点名称:node.name:
网络主机设置:network.host:
发现形成集群:discovery.seed_hosts:
选举主节点master资格的节点:cluster.initial_master_nodes:
设置集群间通信端口:transport.port:
设置数据存放位置:path.data: 
设置日志存放位置:path.logs: 
节点角色设置参考:https://www.elastic.co/guide/en/elasticsearch/reference/8.1/modules-node.html
  • JVM堆内存大小设置,原理解读参考:https://blog.csdn.net/laoyang360/article/details/79998974
配置文件路径:elasticsearch-8.1.0/config/jvm.options
生产环境建议默认配置,这是默认配置参数,根据自身进行调整即可,列如4GB的内存环境,就把这两个参数设置成:-Xms1g、-Xmx1g
-Xms4g
-Xmx4g

注意切记:实际业务线上环境,建议所有Elasticsearch节点都是独立节点,不要部署其他程序、其他后台进程,以提高性能。如果内存足够大,比如:128GB、256GB,单节点是浪费,建议通过虚拟化方式切分开。

2.2.1、目录结构

Type Description Default Location Setting
home Elasticsearch 主目录或 $ES_HOME Directory created by unpacking the archive
bin 二进制脚本,包括用于启动节点的 elasticsearch 和用于安装插件的 elasticsearch-plugin $ES_HOME/bin
conf 配置文件,包括但不限于elasticsearch.yml $ES_HOME/config ES_PATH_CONF
conf 为传输层和 HTTP 层生成 TLS 密钥和证书 $ES_HOME/config/certs
data 节点上分配的每个索引/分片的数据文件的位置 $ES_HOME/data path.data
logs 日志文件位置 $ES_HOME/logs path.logs
plugins 插件文件位置。每个插件将包含在一个子目录中 $ES_HOME/plugins
repo 共享文件系统存储库位置。可以容纳多个位置。文件系统存储库可以放置在此处指定的任何目录的任何子目录中 Not configured path.repo

2.3、启动配置集群

前提:设置好系统配置和JVM堆内存

创建elastic的数据和日志存放目录,如果是测试环境无所谓,如果是生成环境一定要单独设置数据和日志存放的路径,因为ES可能因为升级或其它原因把原有的数据清理或丢失等因素

[root@4-30 elasticsearch-8.1.0]# mkdir /elasticsearch/elastic-cluster1/esdata
[root@4-30 elasticsearch-8.1.0]# mkdir /elasticsearch/elastic-cluster1/eslogs

1、先简单配置一下,vim elasticsearch-8.1.0/config/elasticsearch.yml

cluster.name: elasticsearch-cluster
node.name: node-1
path.data: /elasticsearch/elastic-cluster1/esdata
path.logs: /elasticsearch/elastic-cluster1/eslogs
network.host: 0.0.0.0
http.port: 9200

2、配置文件属组权限,并启动

1、chown -R es:es /elasticsearch/elastic-cluster1/
2、切换到其它用户,root用户不能启动ES:su es
3、进入目录:/elasticsearch/elastic-cluster1/elasticsearch-8.1.0
4、启动:./bin/elasticsearch
后台启动可以加-d的方式,第一次初始化集群看一下启动过程

执行完后检查一下:ls -al /elasticsearch/elastic-cluster1/

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第2张图片

3、查看启动含义

启动的回显如下就代表成功了生成的信息如下:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
? Elasticsearch security features have been automatically configured!
? Authentication is enabled and cluster connections are encrypted.

??  Password for the elastic user (reset with `bin/elasticsearch-reset-password -u elastic`):				##es登陆的密码
  j6np-BzH3+xtJwyvwXjh

??  HTTP CA certificate SHA-256 fingerprint:
  18efaa1f3bd314cbe40839b5472aba6af179f17b62b0d4c8631cc97229ccabe6

??  Configure Kibana to use this cluster:
? Run Kibana and click the configuration link in the terminal when Kibana starts.
? Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):				##登陆kibana的注册令牌,时效30分钟
  eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxOTIuMTY4LjAuMjo5MjAwIl0sImZnciI6IjE4ZWZhYTFmM2JkMzE0Y2JlNDA4MzliNTQ3MmFiYTZhZjE3OWYxN2I2MmIwZDRjODYzMWNjOTcyMjljY2FiZTYiLCJrZXkiOiJXM3hiUm9jQjd5UlZ6QmJBR0xOSDp2NVZ5MjRDT1MwdVJjeVlIRlZKeDhRIn0=

?? Configure other nodes to join this cluster:
? Copy the following enrollment token and start new Elasticsearch nodes with `bin/elasticsearch --enrollment-token ` (valid for the next 30 minutes):
  eyJ2ZXIiOiI4LjEuMCIsImFkciI6WyIxOTIuMTY4LjAuMjo5MjAwIl0sImZnciI6IjE4ZWZhYTFmM2JkMzE0Y2JlNDA4MzliNTQ3MmFiYTZhZjE3OWYxN2I2MmIwZDRjODYzMWNjOTcyMjljY2FiZTYiLCJrZXkiOiJYSHhiUm9jQjd5UlZ6QmJBR0xOSDp0Sm82RWNvYlQ4Nmc0WkNLX2w4SUp3In0=

  If you're running in Docker, copy the enrollment token and run:
  `docker run -e "ENROLLMENT_TOKEN=" docker.elastic.co/elasticsearch/elasticsearch:8.1.0`
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

4、浏览器访问

输入你的公网IP加9200端口,注意要用https访问,输入前面生成的密码:j6np-BzH3+xtJwyvwXjh,用户是:elastic

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第3张图片

2.3.1、重置密码

输入账户密码登陆,如果忘记密码,可以使用命令重新设置密码:/elasticsearch-reset-password -u elastic -i

注:集群得在启动的前提来修改,如果集群没有启动修改密码报错

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第4张图片

2.3.2、重新生成kibana令牌

生成命令:bin/elasticsearch-create-enrollment-token -s kibana

image-20230403172924530

如果你的kibana不在同一台主机上就需要加上http或https的访问路径生成,用""扩起来

2.3.3、转换成生产环境后默认的es配置说明

cluster.name: elasticsearch-cluster
node.name: node-1
path.data: /elasticsearch/elastic-cluster1/esdata
path.logs: /elasticsearch/elastic-cluster1/eslogs
network.host: 0.0.0.0
http.port: 9200

默认为true,启用 Elasticsearch 安全功能:xpack.security.enabled: true
xpack.security.enrollment.enabled: true

用于在 Elasticsearch 用于与其他客户端通信的 HTTP 网络层上启用或禁用 TLS/SSL。默认值为false:xpack.security.http.ssl:
表示开启:enabled: true
包含私钥和证书的密钥库文件的路径,目录在config/certs/http.p12:keystore.path: certs/http.p12

用于在传输网络层上启用或禁用 TLS/SSL,节点用于相互通信。默认值为false:xpack.security.transport.ssl:
表示开启:enabled: true
控制证书的验证。控制证书的验证:verification_mode: certificate
certificate:它验证提供的证书是否由可信机构 (CA) 签名,但不执行任何主机名验证
包含私钥和证书的密钥库文件的路径:keystore.path: certs/transport.p12
包含要信任的证书的密钥库的路径。它必须是 Java 密钥库 (jks) 或 PKCS#12 文件:truststore.path: certs/transport.p12

选举主节点master资格的节点:cluster.initial_master_nodes: ["node-1"]

3、配置kibana

3.1、下载安装

官网下载地址,选择对应版本的elasticsearch和kibana:https://www.elastic.co/cn/downloads/past-releases#kibana

官网文档:https://www.elastic.co/guide/en/kibana/8.1/introduction.html

解压:tar zxf /root/kibana-8.1.0-linux-x86_64.tar.gz -C /elasticsearch/elastic-cluster1

1、进入到解压目录

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第5张图片

2、编辑配置文件:vim kibana-8.1.0/config/kibana.yml

设置kibana的访问端口:server.port: 5601
主机所在的IP:server.host: ""
指定连接Elasticsearch的连接地址:elasticsearch.hosts: ["http://IP:端口"]

我配置如下:

image-20230403213338693

3、启动kibana

root用户启动:kibana-8.1.0/bin/kibana --allow-root

启动成功的截图如下,会生成一个url,复制下来把0.0.0.0换成IP地址,在访问

image-20230403213439712

4、输入elasticsearch的kibana令牌登陆

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第6张图片

5、输入账号密码:内置超级用户elastic

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第7张图片

6、添加或不添加都行,add或explore点哪个都行

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第8张图片

7、在kibana里验证一下,可以看到es的节点信息

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第9张图片

8、如果遇到这个信息,这个不是报错,可以看一下linux终端上的信息,kibana会输出6个数字,输入进去即可

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第10张图片

4、同一台服务器的elastic集群配置

4.1、生成新的elastic

单点部署完毕后来生成一个新的elastic,把之前的单点部署先停掉

1、把原有的配置都复制过去:cp -R elastic-cluster1/* elastic-cluster2/

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第11张图片

2、设置权限

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第12张图片

3、删除原有集群生成的数据和logs日志,不删除会报错:rm -rf esdata/* eslogs/*

image-20230403215608461

4、配置文件对比如下:

集群node-1
cluster.name: elasticsearch-cluster
node.name: node-1
path.data: /elasticsearch/elastic-cluster1/esdata
path.logs: /elasticsearch/elastic-cluster1/eslogs
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.0.2:9300", "192.168.0.2:9301"]
cluster.initial_master_nodes: ["node-1", "node-2"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
集群node-2
cluster.name: elasticsearch-cluster
node.name: node-2
path.data: /elasticsearch/elastic-cluster2/esdata
path.logs: /elasticsearch/elastic-cluster2/eslogs
network.host: 0.0.0.0
http.port: 9201
transport.port: 9301
discovery.seed_hosts: ["192.168.0.2:9300", "192.168.0.2:9301"]
cluster.initial_master_nodes: ["node-1", "node-2"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第13张图片

注:配置文件有两行:cluster.initial_master_nodes,把最后一行注释掉,保留前面的一行,设置es节点:: [“node-1”, “node-2”],仔细看文件差异,因为是同一台服务器部署多节点形成集群所以有部分设置是唯一性的

5、访问测试

把2个es都启动,不然无法访问

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第14张图片

6、启动kibana:elastic-cluster1/kibana-8.1.0/bin/kibana --allow-root

查询结果如下

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第15张图片

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第16张图片

5、多服务器部署节点加入同一集群

因为生产环境的es是启动着安全设置的,使用TLS加密节点间进行通信,可以参考官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/8.1/security-basic-setup.html#encrypt-internode-communication

5.1、方法论

注意事项:集群中的节点数量应该是奇数个,最少为3个,这样可以避免脑裂问题

就不放截图了,直接口述,跟上面配置没有太大出入,包括注意事项一样,当时这个问题卡了我几天后来把data目录下的数据删除后在启动就可以了

1、如果你是新集群,es内没有任何数据可以使用此方法,把es里面配置的的data和logs目录下的所有内容都删除

2、主机这两个内网主机是否能通信,首先保证通信正常,能ping就行

3、是否设置了node.roles:,如果默认不用管,如果设置了你要确保你设置的是否正确

4、确保你的ca证书,及tls设置是否正确,可以参考下面配置的生成证书然后分配到对应节点上在加入集群,或者用取巧的方法,直接把集群拷贝过去,然后修改一下启动即可

5、不用生成新的token node,新节点也不用指定token

  • 我的操作步骤,复制已有集群到另外一台机器上,然后配置/etc/hosts文件把IP和主机名加入进去,然后,新节点下的data和logs目录内的文件全部删除,配置文件配置好集群信息,启动集群加入新节点即可

  • 3个节点的配置文件:

主节点配置如下:

cluster.name: node-xiao
node.name: master
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.0.160:9300", "192.168.0.160:9302", "192.168.0.183:9301"]
cluster.initial_master_nodes: ["master"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
node1节点配置如下:

cluster.name: node-xiao
node.name: node1
network.host: 0.0.0.0
http.port: 9202
transport.port: 9302
discovery.seed_hosts: ["192.168.0.160:9300", "192.168.0.160:9302", "192.168.0.183:9301"]
cluster.initial_master_nodes: ["master"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12

node2节点配置如下:

cluster.name: node-xiao
node.name: node2
network.host: 0.0.0.0
http.port: 9201
transport.port: 9301
discovery.seed_hosts: ["192.168.0.183:9301", "192.168.0.160:9302", "192.168.0.160:9300"]
cluster.initial_master_nodes: ["master"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第17张图片

  • 我试了两种方法,第一种是集群全部是初始化新的状态,方法二是加入节点,没有太大的差异

跟方法1没有什么出入

image-20230529154819085

5.3、生成设置证书

官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/8.1/update-node-certs-same.html

我的报错如下:错误:跳过安全自动配置,因为此节点被配置为引导或加入不受支持的多节点群集

注:我生成的是两个节点的证书,你需要最少配置3个节点,多加入个IP即可

解决方案:

1、禁用群集中所有节点的安全性:xpack.security.enabled: false

2、禁止引导检查:discovery.type=single-node

3、配置集群通信密钥,让集群通信在加入

ERROR: Skipping security auto configuration because this node is configured to bootstrap or to join a multi-node cluster, which is not supported.
  • 进入elastic的目录下,执行命令生成ca证书:elasticsearch-certutil ca,默认直接回车即可,第一个选项设置名称,第二个设置密码

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第18张图片

image-20230405221344877

  • 为刚刚生成的ca证书生成一个密钥库:./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12,(elastic-stack-ca.p12为刚刚生成ca的名字)

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第19张图片

  • 把生成的证书移动到certs目录下:mv elastic-certificates.p12 ./config/certs/,mv elastic-stack-ca.p12 ./config/certs/

  • 生成http的证书:./bin/elasticsearch-certutil http

1、第一个选项询问你是否生成CSR选择:n
2、询问你是否使用现有CA选择是:y
3、输入ca证书的路径,我生成的ca证书名称是elastic-stack-ca.p12:certs/elastic-stack-ca.p12
4、输入ca证书的密码,没设置直接回车即可
5、设置证书的有效期,我输入的5y,等于5年
6、是否未每个节点生成证书输入:y
7、输入节点名称,我输入的xiao1,我的主机名,稍后把es的配置文件node.name和现在输入的节点名称一致,建议这样做
8、设置哪些节点可以连接,输入主机名,一行一个,输入完了回车即可
9、确认主机名是否正确,正确输入:y
10、输入2台服务器的内网IP,每行一个,输入完了回车即可
11、确认IP是否正确,正确输入:y
12、会生成密钥的名称和大小让你确认,输入n即可,不需要更改:n
13、会在咨询你是否要生成其它证书,n,不需要
14、设置密码,我设置的空白直接回车
15、让你设置将要输出的文件名称,并会给到你一个路径这就是我们刚刚生成的证书

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第20张图片

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第21张图片

  • 我使用的默认名称,解压一下:unzip elasticsearch-ssl-http.zip,会生成一个elasticsearch目录,移动到certs目录下:mv elasticsearch/http.p12 kibana/elasticsearch-ca.pem config/certs/

  • 把certs目录传输到新节点,我新节点是全新刚解压的环境:scp -r /elasticsearch/elastic-cluster1/elasticsearch-8.1.0/config/certs/ node-3:/elasticsearch/elasticsearch-8.1.0/config/

6、冷热温节点部署

1、创建3个目录:冷节点:es-cold 、热节点:es-hot、温节点:es-warm

注:配置前先参考第2目录的安装前提,部分设置跳过,直接上3个节点的配置文件,及查询结果

配置冷热温节点必要的一步配置就是设置角色,使用node.roles参数进行设置

  • 热节点:es-hot:
cluster.name: node-xiaoming1
node.name: node-1
network.host: 192.168.0.160
node.roles: [data_hot, data_content, master, ingest]
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["192.168.0.160:9300"]
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
  • 温节点:es-warm
cluster.name: node-xiaoming1
node.name: node-2
network.host: 192.168.0.160
node.roles: [data_warm, data_content, master, ingest]
http.port: 9201
transport.port: 9301
discovery.seed_hosts: ["192.168.0.160:9300", "192.168.0.160:9301"]
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12
  • 冷节点:es-cold:
cluster.name: node-xiaoming1
node.name: node-3
network.host: 192.168.0.160
node.roles: [data_cold, data_content, master, ingest]
http.port: 9202
transport.port: 9302
discovery.seed_hosts: ["192.168.0.160:9300", "192.168.0.160:9301", "192.168.0.160:9302"]
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.path: certs/transport.p12

先看一下集群节点是否正常:

image-20230513000149780

6.1、使用索引验证

参考官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/ilm-shrink.html,https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-shrink-index.html

1、设置特定的索引,分片设置为5

PUT kibana_sample_data_logs_ext
{
  "settings": {
    "number_of_replicas": 0,
    "number_of_shards": 5
  }
}

2、准备索引数据,首先你得先确保您索引有:kibana_sample_data_logs

POST _reindex
{
  "source": {
    "index": "kibana_sample_data_logs"
  },
  "dest": {
    "index": "kibana_sample_data_logs_ext"
  }
}

这是拉取方法

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第22张图片

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第23张图片

这是现在的分片情况

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第24张图片

3、设置索引分片信息,主要参数:index.routing.allocation.include._tier_preference,索引-路由-分配,分配到data_hot节点上,之前我们在配置文件内定义的节点

PUT kibana_sample_data_logs_ext/_settings
{
  "settings": {
    "index.number_of_replicas": 0,
    "index.routing.allocation.include._tier_preference": "data_hot",
    "index.blocks.write": true
  }
}

在查询就能看到分片都在hot节点上了

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第25张图片

7、报错信息合集

7.1、启动elasticsearch报错

1、报错:could not find java in bundled JDK at /root/elasticsearch-8.1.0/jdk/bin/java

因为目录权限的问题,赋予对应目录启动命令的权限,并使用非root用户启动,列如使用

es用户就用如下命令:chown -R es:es /目录

2、报错如下:该问题是因为你配置文件IP地址分配的问题,仔细看看配置文件的:network.host和http.port这两个是否有冲突

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第26张图片

3、如果elasticsearch报错killed,可以尝试设置一下JVM堆内存大小,可能是系统没内存了

image-20230512234742151

7.2、kibana启动报错

1、进入kibana报错如下:可以尝试以下步骤来进行解决

1. 看一下kibana的配置文件,配置连接elasticsearch的是否正确,换成本地IP或者127.0.0.1,或localhost在试试

2. 如果你是多节点部署的elasticsearch,是不是近期修改了配置文件,然后只重启了主节点或单一节点,可以尝试把所有节点都重启一遍然后在试试

3. 看日志进一步分析吧

Kibana server is not ready yet.

image-20230524141232464

8、后台启动

  • es后台启动:/elasticsearch/elastic-cluster1/elasticsearch-8.1.0/bin/elasticsearch -d
  • kibana后台启动:nohup /elasticsearch/elastic-cluster1/kibana-8.1.0/bin/kibana --allow-root & > /dev/null 2>&1

9、安装IK分词器

下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases?page=3

选择你对应版本的ES,我是8.1,wget直接下载,或者下载到本地在导入进去

使用ES在线安装:./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.0/elasticsearch-analysis-ik-8.1.0.zip,github网络不稳建议用离线安装

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第27张图片

  • 在线安装:

1、使用ES在线安装:./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.0/elasticsearch-analysis-ik-8.1.0.zip

2、重启ES

  • 离线安装:

1、把安装包移动到elasticsearch-8.1.0/plugins/ik/目录下,记得创建一个ik目录

2、解压:unzip elasticsearch-analysis-ik-8.1.0.zip

3、重启ES,测试:./bin/elasticsearch-plugin list

image-20230408235327515

.1.0/bin/kibana --allow-root & > /dev/null 2>&1

9、安装IK分词器

下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases?page=3

选择你对应版本的ES,我是8.1,wget直接下载,或者下载到本地在导入进去

使用ES在线安装:./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.0/elasticsearch-analysis-ik-8.1.0.zip,github网络不稳建议用离线安装

Elasticsearch8版本安装详解,单节点部署、多节点部署、冷热温集群部署、IK分词器安装、简单生产安全模式配置_第28张图片

  • 在线安装:

1、使用ES在线安装:./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.1.0/elasticsearch-analysis-ik-8.1.0.zip

2、重启ES

  • 离线安装:

1、把安装包移动到elasticsearch-8.1.0/plugins/ik/目录下,记得创建一个ik目录

2、解压:unzip elasticsearch-analysis-ik-8.1.0.zip

3、重启ES,测试:./bin/elasticsearch-plugin list

image-20230408235327515

你可能感兴趣的:(史上最全详解,elasticsearch,安全,大数据)