《Linux运维总结:ubuntu20.04二进制部署elasticsearch7.13.0集群》

一、二进制部署

服务信息如下:

节点主机IP版本HTTP端口TCP端口jdk版本
节点1192.168.1.627.13.01920419304es二进制包自带jdk版本
节点2192.168.1.637.13.01920419304es二进制包自带jdk版本

1.1、环境初始化

说明:以下操作都需要在ES集群各个节点执行。

echo '* soft nofile 65536' >> /etc/security/limits.conf
echo '* hard nofile 65536' >> /etc/security/limits.conf
echo '* soft memlock unlimited' >> /etc/security/limits.conf
echo '* hard memlock unlimited' >> /etc/security/limits.conf
echo 'vm.max_map_count=655360' >> /etc/sysctl.conf
sysctl -p  

1.2、部署准备步骤

说明:以下操作都需要在ES集群各个节点执行。

1、创建elastic用户

useradd -d /data/es-cluster -m elastic
passwd elastic

2、进入elastic用户,下载解压软件包

su elastic
cd /data/es-cluster
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.0-linux-x86_64.tar.gz
tar axf elasticsearch-7.13.0-linux-x86_64.tar.gz

3、进入elastic用户,创建数据目录和快照备份目录

mkdir elasticsearch-7.13.0/data
mkdir elasticsearch-7.13.0/backup

4、配置jdk环境变量

vim elasticsearch-7.13.0/bin/elasticsearch-env
export ES_JAVA_HOME=/data/es-cluster/elasticsearch-7.13.0/jdk

说明:如果是在root用户下操作的,记得对目录进行授权,使属主和属组均为elastic。


1.3、配置x-pack生成p12格式证书

说明:以下操作都需要在ES集群其中一个节点执行即可,这里默认在节点1的elastic用户下执行。

1、生成p12格式证书

注意:其中生成生成p12格式证书必须与下面的生成密码操作在同一主机上执行。

# 进入elastic用户下
cd elasticsearch-7.13.0
./bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

2、将elastic-certificates.p12证书文件拷贝到节点2主机上的对应目录

# 进入elastic用户下
cd elasticsearch-7.13.0
scp config/elastic-certificates.p12 elastic@192.168.1.63:/data/es-cluster/elasticsearch-7.13.0/config

说明:只有elastic-certificates.p12文件在config目录下,才可以写在配置文件定义相对路径,否则,就必须写全路径。


1.4、修改elasticsearch.yml文件

1、节点1配置文件如下所示:

# 进入elastic用户下
cd /data/es-cluster && vim  elasticsearch-7.13.0/config/elasticsearch.yml

# 集群名称
cluster.name: my-application

# 节点名称
node.name: node-1

# http端口
http.port: 19204

# 集群通信端口
transport.tcp.port: 19304

# 网络连接地址
network.host: 192.168.1.62
network.bind_host: 192.168.1.62
network.publish_host: 192.168.1.62

# 是否设置主节点,默认为true
node.master: true

# 是否允许节点存储数据,默认为true
node.data: true

# 为了避免脑裂,集群节点数最少为 半数(N/2)+1
discovery.zen.minimum_master_nodes: 2

# 从7.0版本开始,如果要启动在多个物理主机上启动一个全新的集群,必须指定参与第一次投票选举的候选主节点。这个过程称为集群启动引导,仅在集群第一次启动时才需要
# cluster.initial_master_nodes 参数设置一系列符合主节点条件的节点的主机名或IP地址来引导启动集群
# 如果不是候选主节点,则不需要配置此项
cluster.initial_master_nodes: ["node-1","node-2"]

# 自动发现设置,配置之后集群的主机之间可以自动发现
discovery.seed_hosts: ["192.168.1.62:19304", "192.168.1.63:19304"]

# 启用elsticserach验证模块x-pack
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.license.self_generated.type: basic
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

# 跨域访问,不添加无法使用head连接es,连接时在http:ip:port/?auth_user=elastic&auth_password=密码
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

# 禁用交换区swapping
bootstrap.memory_lock: false

# 网络参数配置
network.tcp.no_delay: true
network.tcp.keep_alive: true
network.tcp.reuse_address: true
network.tcp.send_buffer_size: 256mb
network.tcp.receive_buffer_size: 256mb

# 设置是否压缩tcp传输时的数据,默认为false,不压缩
transport.tcp.compress: true

# 快照备份仓库地址
path.repo: ["/data/es-cluster/elasticsearch-7.13.0/backup"]

2、节点2配置文件如下所示:

# 进入elastic用户下
cd /data/es-cluster && vim  elasticsearch-7.13.0/config/elasticsearch.yml

# 集群名称
cluster.name: my-application

# 节点名称
node.name: node-2

# http端口
http.port: 19204

# 集群通信端口
transport.tcp.port: 19304

# 网络连接地址
network.host: 192.168.1.63
network.bind_host: 192.168.1.63
network.publish_host: 192.168.1.63

# 是否设置主节点,默认为true
node.master: true

# 是否允许节点存储数据,默认为true
node.data: true

# 为了避免脑裂,集群节点数最少为 半数(N/2)+1
discovery.zen.minimum_master_nodes: 2

# 从7.0版本开始,如果要启动在多个物理主机上启动一个全新的集群,必须指定参与第一次投票选举的候选主节点。这个过程称为集群启动引导,仅在集群第一次启动时才需要
# cluster.initial_master_nodes 参数设置一系列符合主节点条件的节点的主机名或IP地址来引导启动集群
# 如果不是候选主节点,则不需要配置此项
cluster.initial_master_nodes: ["node-1","node-2"]

# 自动发现设置,配置之后集群的主机之间可以自动发现
discovery.seed_hosts: ["192.168.1.62:19304", "192.168.1.63:19304"]

# 启用elsticserach验证模块x-pack
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.license.self_generated.type: basic
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

# 跨域访问,不添加无法使用head连接es,连接时在http:ip:port/?auth_user=elastic&auth_password=密码
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

# 禁用交换区swapping
bootstrap.memory_lock: false

# 网络参数配置
network.tcp.no_delay: true
network.tcp.keep_alive: true
network.tcp.reuse_address: true
network.tcp.send_buffer_size: 256mb
network.tcp.receive_buffer_size: 256mb

# 设置是否压缩tcp传输时的数据,默认为false,不压缩
transport.tcp.compress: true

# 快照备份仓库地址
path.repo: ["/data/es-cluster/elasticsearch-7.13.0/backup"]

在elasticsearch 中,network.host、network.bind_host、network.publish_host这三个配置项都用于指定elasticsearch与外界交互的网络地址。它们的区别如下:

1、network.host:network.host 是elasticsearch 7.0版本中新增的配置项,用于指定easticsearch 与外界交互的网络地址。如果不指定该配置项,则 elasticsearch默认会监听0.0.0.0,即监听所有可用的网络接口。可以使用该配置项来限制elasticsearch监听的网络接口,从而提高安全性。

2、network.bind_host:network.bind_host是elasticsearch 1.0版本中引入的配置项,用于指定elasticsearch监听的网络接口。如果不指定该配置项,则elasticsearch 默认会监听所有可用的网络接口。可以使用该配置项来限制elasticsearch监听的网络接口,从而提高安全性。该配置项可以设置为一个具体的IP地址或主机名,也可以设置为一个通配符,如0.0.0.0或者local。

3、network.publish_host:network.publish_host是elasticsearch 1.0版本中引入的配置项,用于指定elasticsearch向外界公开的网络地址。如果不指定该配置项,则elasticsearch默认会使用network.bind_host 配置项指定的地址。可以使用该配置项来解决elasticsearch集群中的节点使用不同的网络接口的问题,从而实现跨机器通信。该配置项可以设置为一个具体的IP地址或主机名,也可以设置为一个通配符,如0.0.0.0或者local。

综上所述,network.host、network.bind_host、network.publish_host这三个配置项都用于指定elasticsearch与外界交互的网络地址,但它们的作用和使用方式略有不同。其中network.host是elasticsearch 7.0版本中新增的配置项,可以用来限制elasticsearch监听的网络接口;而network.bind_host和network.publish_host则是elasticsearch 1.0版本中引入的配置项,用于指定elasticsearch监听的网络接口和向外界公开的网络地址。


1.5、修改jvm.options文件

说明:以下操作都需要在ES集群各个节点执行,jvm内存根据实际情况修改。

# 进入elastic用户下
vim elasticsearch-7.13.0/config/jvm.options
-Xms4g
-Xmx4g

1.6、服务启动

说明:以下操作都需要在ES集群各个节点执行。

# 进入elastic用户下
cd elasticsearch-7.13.0
./bin/elasticsearch -d

# 或者在root用户执行
su elastic -c "/data/es-cluster/elasticsearch-7.13.0/bin/elasticsearch -d"

1.7、设置密码

说明:以下操作都需要在ES集群其中一个节点执行即可,这里默认在节点1执行,其中生成生成p12格式证书必须与下面的生成密码操作在同一主机上执行。

# 进入elastic用户下
cd elasticsearch-7.13.0

# 手动设置密码
./bin/elasticsearch-setup-passwords interactive

# 自动设置密码
./bin/elasticsearch-setup-passwords auto

1.8、检查集群状态

curl -u elastic:vhgXdi3PqkkA2HEVe7Bi http://192.168.1.62:19204/_cat/health

二、创建快照进行备份

Elasticsearch也提供了备份集群中索引数据的策略snapshot API。它会备份整个集群的当前状态和数据,并保存到集群中各个节点共享的仓库中。这个备份的进程是增量备份的,在第一次备份的基础上进行的第二次备份只备份新变化的数据。

创建elasticsearch快照进行备份,步骤如下:

# 1、建立NFS文件共享服务
# 2、配置共享目录挂载的路径,即path.repo
# 3、创建快照仓库
# 4、创建快照
# 5、恢复快照到elasticsearch集群

1、建立NFS文件共享服务

# 1、服务端,这里默认以节点1(192.168.1.62)为服务端,
sudo apt install nfs-kernel-server
chmod 777 /data/es-cluster/elasticsearch-7.13.0/backup -R
vim /etc/exports
/data/es-cluster/elasticsearch-7.13.0/backup 192.168.1.63(rw,sync,no_subtree_check)
sudo exportfs -ra
sudo systemctl restart nfs-kernel-server

#2、客户端,这里默认以节点2(192.168.1.63)为客户端
sudo apt install nfs-common
mount 192.168.1.62:/data/es-cluster/elasticsearch-7.13.0/backup /data/es-cluster/elasticsearch-7.13.0/backup/

2、创建快照仓库

说明:以下操作在ES集群任意一节点执行即可,这里默认在节点1执行。

## es_backup可任意设置,无特殊意义
curl -H "Content-Type: application/json" -XPUT http://192.168.1.62:19204/_snapshot/es_backup  -d '
{
    "type": "fs",
    "settings": {
        "location": "/data/es-cluster/elasticsearch-7.13.0/backup",
        "max_snapshot_bytes_per_sec": "50mb",
        "max_restore_bytes_per_sec": "50mb"
    }
}'

3、查看快照仓库信息

说明:以下操作在ES集群任意一节点执行即可,这里默认在节点1执行。

curl http://192.168.1.62:19204/_snapshot/es_backup?pretty

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:Linux运维实战总结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值