elasticsearch7.5单点集群部署

  1. 原理问题

主分片是4 副本数是2 ,副本分片等于就是8个,所有分片等于加起来分片数是12,主分片可以写入,副本分片只可读

一个分片最大存储30G数据

 

elasticsearch7以上 xpack基础版本免费了,不用破解

https://www.elastic.co/cn/subscriptions 免费功能界面

集群必须强制开启tls后才能开启密码认证

 

 

  1. 参考文档

http://www.pianshen.com/article/9207198635/

配置文件详解

https://www.cnblogs.com/han-luo/p/10444754.html

 

https://abcops.cn/archives/981#toc_5

 

https://blog.51cto.com/13740724/2438072

 

  1. 部署环境

内核版本

Linux iZ8vbc1ax05oc6vsu6u24kZ 3.10.0-1062.9.1.el7.x86_64 #1 SMP Fri Dec 6 15:49:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

系统版本

CentOS Linux release 7.7.1908 (Core)

jdk版本

openjdk version "13.0.1" 2019-10-15

elasticsearch版本

elasticsearch 7.5.1

 

  1. elasticsearch和jdk的版本对应关系

https://www.elastic.co/cn/support/matrix#matrix_jvm

 

 

  1. 安装部署单点

  2. 上传tar包,并解压缩

 

  1. 创建安装目录并创建运行用户(es不能用root用户运行,创建普通用户)

mkdir -p /jesong/cluster/

useradd -d /home/elastic elastic -s /sbin/nologin

 

  1. 修改环境参数

echo "vm.max_map_count=262144" >>/etc/sysctl.conf

sysctl -p

 

echo -e "elastic soft memlock unlimited \nelastic hard memlock unlimited" >> /etc/security/limits.conf

 

  1. 调整jvm参数

vim /jesong/cluster/elasticsearch01/config/jvm.options #使用内存大小,一般不超过百分之50

-Xms256m

-Xmx256m

 

  1. 如果未配置java jdk环境变量那么es会用自带的java jdk(es版本和jdk版本对应)如果发现未覆盖,可以到官网下载未捆绑jdk的版本

 

 

vim /etc/profile

配置系统环境变量

JAVA_HOME=/usr/local/java/jdk1.8

JRE_HOME=/usr/local/java/jdk1.8/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

 

  1. 授权普通用户

chown -R elastic. /jesong/cluster/elasticsearch

 

  1. 修改配置文件

vim elasticsearch.yml

node.name: node-1

path.data: /jesong/cluster/elasticsearch01/data2

path.logs: /jesong/cluster/elasticsearch01/data2

network.host: 172.26.103.59

http.port: 9200

cluster.initial_master_nodes: ["node-1"]

#xpack密码认证配置

#xpack.security.enabled: true

#xpack.license.self_generated.type: basic

#xpack.security.transport.ssl.enabled: true

 

  1. 启动

sudo -u elastic nohup /usr/local/elasticsearch/bin/elasticsearch -p /usr/local/elasticsearch/elasticsearch.pid -d

 

  1. 如果想迁移data目录,先停止es,然后把data目录拷贝到想要迁移得位置,更改配置文件路径然后启动即可。(记得目录属主属组问题

 

  1. 安装部署集群

  2. 上传tar包,并解压缩

 

  1. 创建安装目录并创建运行用户(es不能用root用户运行,创建普通用户)

mkdir -p /jesong/cluster/

useradd -d /home/elastic elastic -s /sbin/nologin

 

  1. 复制三份文件

cp -a elasticsearch-7.5.1/ /jesong/cluster/elasticsearch01

cp -a elasticsearch-7.5.1/ /jesong/cluster/elasticsearch02

cp -a elasticsearch-7.5.1/ /jesong/cluster/elasticsearch03

 

 

 

  1. 修改环境参数

echo "vm.max_map_count=262144" >>/etc/sysctl.conf

sysctl -p

 

echo -e "elastic soft memlock unlimited \nelastic hard memlock unlimited" >> /etc/security/limits.conf

 

 

  1. 修改配置文件

 

双击即可打开

#集群的名称

cluster.name: easyliao-brd100

#节点名称,其余两个节点分别为node-2 node-3

node.name: node-3

#指定该节点是否有资格被选举成为master节点,默认是truees是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master

node.master: true

#允许该节点存储数据(默认开启)

node.data: true

#索引数据的存储路径

path.data: /jesong/cluster/elasticsearch03/data/

#日志文件的存储路径

path.logs: /jesong/cluster/elasticsearch03/logs/

#设置为true来锁住内存。因为内存交换到磁盘对服务器性能来说是致命的,当jvm开始swappinges的效率会降低,所以要保证它不swap

bootstrap.memory_lock: true

#绑定的ip地址

network.host: 172.26.103.63

#设置对外服务的http端口,默认为9200

http.port: 9203

# 设置节点间交互的tcp端口,默认是9300

transport.tcp.port: 9303

#Elasticsearch将绑定到可用的环回地址,并将扫描端口93009305以尝试连接到运行在同一台服务器上的其他节点。

#这提供了自动集群体验,而无需进行任何配置。数组设置或逗号分隔的设置。每个值的形式应该是host:porthost

#(如果没有设置,port默认设置会transport.profiles.default.port 回落到transport.tcp.port)。

#请注意,IPv6主机必须放在括号内。默认为127.0.0.1, [::1]

discovery.zen.ping.unicast.hosts: ["172.26.103.63:9301", "172.26.103.63:9302", "172.26.103.63:9303"]

#如果没有这种设置,遭受网络故障的集群就有可能将集群分成两个独立的集群 - 分裂的大脑 - 这将导致数据丢失

discovery.zen.minimum_master_nodes: 2

#只要配置数量的数据或主节点已加入集群,即可恢复

gateway.recover_after_nodes: 2

#

#设置是否可以通过正则或者_all删除或者关闭索引库,默认true表示必须需要显式指定索引库名称,生产环境建议设置为true,删除索引库的时候必须显式指定,否则可能会误删索引库中的索引库

action.destructive_requires_name: true

#

cluster.initial_master_nodes: ["node-1","node-2","node-3"]

 

  1. 调整jvm参数

vim /jesong/cluster/elasticsearch01/config/jvm.options #使用内存大小,一般不超过百分之50

-Xms256m

-Xmx256m

 

  1. 如果未配置java jdk环境变量那么es会用自带的java jdk(es版本和jdk版本对应,)

 

vim /etc/profile

配置系统环境变量

JAVA_HOME=/usr/local/java/jdk1.8

JRE_HOME=/usr/local/java/jdk1.8/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

 

  1. 授权普通用户权限

chown -R elastic. /jesong/cluster/elasticsearch01

chown -R elastic. /jesong/cluster/elasticsearch02

chown -R elastic. /jesong/cluster/elasticsearch03

 

 

  1. 启动es各节点

-p 指定pid -d 后台运行

sudo -u elastic nohup /usr/local/elasticsearch/bin/elasticsearch -p /usr/local/elasticsearch/elasticsearch.pid -d

 

  1. 增加x-pack密码验证

  2. 单点增加xpack

    1. 修改配置文件

node.name: node-1

path.data: /jesong/cluster/elasticsearch01/data2

path.logs: /jesong/cluster/elasticsearch01/data2

network.host: 172.26.103.59

http.port: 9200

cluster.initial_master_nodes: ["node-1"]

xpack.security.enabled: true

xpack.license.self_generated.type: basic

xpack.security.transport.ssl.enabled: true

 

  1. 启动es

sudo -u elastic nohup /usr/local/elasticsearch/bin/elasticsearch -p /usr/local/elasticsearch/elasticsearch.pid -d

 

  1. 配置密码(进入bin目录)

./elasticsearch-setup-passwords –help #查看参数

./elasticsearch-setup-passwords interactive #手动输入各密码

 

  1. 使用密码连接es,验证是否正常

curl --user elastic:111111 -XGET 'http://172.26.103.59:9200/_cat/nodes?v'

 

  1. 集群增加xpack密码验证(集群增加验证强制开启ssl,不然报错)

    1. 进入其中一台的bin目录生成ca证书

elasticsearch-certutil ca

elasticsearch-certutil cert --ca elastic-stack-ca.p12

  1. 创建证书存放目录

mkdir -p /jesong/cluster/elasticsearch01/config/certs/

mv /jesong/cluster/elasticsearch01/elastic-* /jesong/cluster/elasticsearch01/config/certs/

 

  1. 如果是用root创建的目录和证书,别忘记授权

chown -R elastic. /jesong/cluster/elasticsearch01/config/certs/

  1. 把证书复制到其他节点

cp -a /jesong/cluster/elasticsearch01/config/certs/ /jesong/cluster/elasticsearch02/config/certs/

cp -a /jesong/cluster/elasticsearch01/config/certs/ /jesong/cluster/elasticsearch03/config/certs/

 

  1. 修改各节点配置文件

vim config/elasticsearch.yml

#开启安全功能

xpack.security.enabled: true

#集群内部通信加密

xpack.security.transport.ssl.enabled: true

xpack.security.transport.ssl.verification_mode: certificate

xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12

xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

 

  1. 启动各节点(启动后应该是连不上的,配置完密码后即可链接)

sudo -u elastic nohup /jesong/cluster/elasticsearch01/bin/elasticsearch -p /jesong/cluster/elasticsearch01/elasticsearch.pid -d

 

  1. 配置密码

进入任意节点bin目录,配置各账户密码, elastic为管理员

./elasticsearch-setup-passwords interactive

 

  1. 配置完成后测试各节点是否能正常连接

curl --user elastic:marbless -XGET 'http://172.26.103.63:9202/_cat/nodes?v'

此时已经部署完成

 

  1. es命令

查看节点信息

curl -XGET 'http://172.26.103.63:9202/_cat/nodes?v'

curl --user elastic:marbless -XGET 'http://172.26.103.63:9202/_cat/nodes?v'

查看集群状态

curl -XGET 'http://172.26.103.63:9202/_cat/health?v'

curl -XGET 'http://172.26.103.63:9201/_cluster/health?pretty'

查看master节点信息

curl -XGET 'http://172.26.103.63:9202/_cat/master?v'

创建一个索引

curl -XPUT 'http://172.26.103.63:9202/test_one?pretty' test_one:索引名字

查看当前所有索引

curl '192.168.1.4:9200/_cat/indices?v'

 

删除指定索引

curl -XDELETE 192.168.1.4:9200/system-log-2019.05

删除多个索引

curl -XDELETE 192.168.1.4:9200/system-log-2019.05,system-log-2019.05

删除所有索引

curl -XDELETE 192.168.1.4:9200/_all

 

 

 

 

curl -XGET 'http://172.26.103.63:9201/cluster/settings

{

"transient" : {

"cluster.routing.allocation.exclude._ip" : "10.0.0.1"

}

}

 

 

 

猜你喜欢

转载自www.cnblogs.com/-luoke/p/12696696.html