Elastic Stack-02-Elasticsearch7.10.0-集群详细部署

一、部署步骤
1 、在每个节点创建用户 elastic

useradd elastic


2 在每个节点上解压到指定目录

wget http://www.sharkyun.com:8010/2002/soft/elk-pkg/elasticsearch-7.10.0-linux-x86_64.tar.gz
tar -xf elasticsearch-7.10.0-linux-x86_64.tar.gz -C /usr/local/

-C指定减压目录

程序的主目录会是: /usr/local/elasticsearch-7.10.0

这里假设变量 ES_HOME 的值是 /usr/local/elasticsearch-7.10.0, 此变量将会在下文以及以后的文章中使用。

3 在每个节点上修改安装主目录的属主和属组

 chown  -R elastic.elastic  /usr/local/elasticsearch-7.10.0


4 在每个节点上设置系统内核参数
设置内存映射

sysctl -w vm.max_map_count=262144 > /etc/sysctl.conf
sysctl -p


还需要设置关于这个进程可以打开的文件描述符数量

每个节点vim /etc/security/limits.conf   最后添加这几行

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

[root@prod ~]# tail /etc/security/limits.conf
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4

# End of file
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096


5 在每个节点设置如下集群参数
默认情况下 Elasticsearch 会使用:
$ES_HOME/config/elasticsearch.yml 作为配置文件启动进程。

编译配置文件 /usr/local/elasticsearch-7.10.0/config/elasticsearch.yml
并添加如下内容:

ela1 节点 设置的内容如下:

cluster.name: elk
node.name: ela1
node.data: true
network.host: 0.0.0.0
http.port: 9200

discovery.seed_hosts:
   - 192.168.145.161
   - 192.168.145.195
   - 192.168.145.165
cluster.initial_master_nodes: ["ela1", "ela2", "ela3"]


ela2 节点设置的内容如下:

cluster.name: elk
node.name: ela2
node.data: true
network.host: 0.0.0.0
http.port: 9200

discovery.seed_hosts:
   - 192.168.145.161
   - 192.168.145.195
   - 192.168.145.165
cluster.initial_master_nodes: ["ela1", "ela2", "ela3"]


ela3 节点设置的内容如下:

cluster.name: elk
node.name: ela3
node.data: true
network.host: 0.0.0.0
http.port: 9200

discovery.seed_hosts:
   - 192.168.145.161
   - 192.168.145.195
   - 192.168.145.165
cluster.initial_master_nodes: ["ela1", "ela2", "ela3"]


参数说明

cluster.name 集群名称,各节点配成相同的集群名称。
node.name 节点名称,各节点配置不同。
node.data 指示节点是否为数据节点。数据节点包含并管理索引的一部分。
network.host 绑定节点IP。
http.port 监听端口。
path.data 数据存储目录。
path.logs 日志存储目录。
discovery.seed_hosts 指定集群成员,用于主动发现他们,所有成员都要写进来,包括自己,每个节点中应该写一样的信息。
cluster.initial_master_nodes 指定有资格成为 master 的节点
http.cors.enabled 用于允许head插件访问ES。
http.cors.allow-origin 允许的源地址。
注意:
当您为提供自定义设置时 network.host,Elasticsearch会假设您正在从开发模式过渡到生产模式,并将许多系统启动检查从警告升级到异常。
cluster.initial_master_nodes 中的节点名称需要和 node.name 的名称一致。
6 启动集群
在每个节点上启动 elasticsearch 进程

切换到普通用户 elastic

su elastic


执行如下命令

cd /usr/local/elasticsearch-7.10.0

./bin/elasticsearch -d -p /tmp/elasticsearch.pid


-d 后台运行
-p 指定一个文件,用于存放进程的 pid

7 日志
日志消息可以在 $ES_HOME/logs/ 目录中找到

ls logs/elk.log


8 查看集群健康状态


[elastic@ela3 elasticsearch-7.10.0]$ curl -X GET "localhost:9200/_cat/health?v"
epoch      timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1609065251 10:34:11  elk     green           3         3      0   0    0    0        0             0                  -                100.0%


三种不同状态的含义

黄色 如果您仅运行单个Elasticsearch实例,则集群状态将保持黄色。单
节点群集具有完整的功能,但是无法将数据复制到另一个节点以提供弹性。
绿色 副本分片必须可用,群集状态为绿色。
红色 如果群集状态为红色,则某些数据不可用。
9 查看集群节点信息


[elastic@ela3 elasticsearch-7.10.0]$ curl -X GET "localhost:9200/_cat/nodes?v"
ip              heap.percent ram.percent cpu load_1m load_5m load_15m node.role  master name
192.168.122.106           59          93   0    0.00    0.01     0.05 cdhilmrstw -      ela2
192.168.122.218           65          94   0    0.00    0.02     0.06 cdhilmrstw -      ela3
192.168.122.6             49          94   0    0.07    0.05     0.05 cdhilmrstw *      ela1


排错

# 找到进程
[elastic@ela1 elasticsearch-7.10.0]$ jdk/bin/jps
8244 Jps
7526 Elasticsearch

# 杀死进程
[elastic@ela1 elasticsearch-7.10.0]$ kill -9 7526

# 删除数据目录中的所有文件
[elastic@ela1 elasticsearch-7.10.0]$ rm -rf /usr/local/elasticsearch-7.10.0/data/*

# 删除 keystore 文件
[elastic@ela1 elasticsearch-7.10.0]$ rm -rf config/elasticsearch.keystore

# 重新启动进程
[elastic@ela1 elasticsearch-7.10.0]$ bin/elasticsearch -d -p /tmp/elk.pid

10 关闭Elasticsearch进程

pkill -F /tmp/elasticsearch.pid

11 重要的集群参数
11.1 设置堆内存大小
Elasticsearch将通过在 jvm.options中指定Xms(最小堆大小 )和 Xmx(最大堆大小)的大小来设置 整个堆 。这两个设置必须彼此相等。

这些设置的值取决于服务器上可用的RAM数量:
设置Xmx和Xms 的大小应该不超过你物理内存的50%。
Elasticsearch出于JVM堆以外的目的而需要内存,因此为此留出空间很重要。
例如,Elasticsearch使用堆外缓冲区来进行有效的网络通信,依靠操作系统的文件系统缓存来有效地访问文件,并且JVM本身也需要一些内存。观察Elasticsearch过程使用的内存多于该Xmx设置配置的限制,这是正常的。
设置Xmx并且Xms不超过JVM用于压缩对象指针(压缩oop)的阈值。确切的阈值有所不同,但接近32 GB。您可以通过在日志中查找如下一行来验证您是否处于阈值以下:

heap size [1.9gb], compressed ordinary object pointers [true]


意思是不要超过 32G, 通常 26G是安全的。

设置示例

$ES_HOME/config/jvm.options

-Xms2g
-Xmx2g


11.2 设置JVM堆转储路径
默认情况下,Elasticsearch将JVM配置为将内存不足异常上的堆转储到默认数据目录。

在RPM和 Debian软件包中,数据目录为 /var/lib/elasticsearch。
使用二进制文件部署时,该data目录位于Elasticsearch安装目录的根目录下。
如果该路径不适合于接收堆转储,应该通过在 jvm.options 中设置条目 XX:HeapDumpPath=... 来改变此值。

如果指定的是目录,那么JVM 在此目录下自动转储文件,文件名将是正在运行的实例的PID。
如果指定固定文件名而不是目录,则当JVM需要在内存不足异常时执行堆转储时,该文件必须不存在。否则,堆转储将失败。
11.3 设置 GC日志记录
默认情况下,Elasticsearch启用垃圾收集(GC)日志。
它们在 jvm.options 中配置,并输出到和 Elasticsearch 日志相同的默认目录下。默认配置每64 MB轮换一次日志,最多可消耗2 GB磁盘空间。

# JDK 9+ GC logging
9-:-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m


修改默认值

这里的示例是关闭默认的日志配置参数
并将日志输出到 /opt/my-app/gc.log

这里通过创建 $ES_HOME/config/jvm.options.d/gc.options 子配置文件的方式设置新的 gc 日志输出参数


11.4 设置零时目录
默认情况下,Elasticsearch使用启动脚本在系统临时目录下立即创建的私有临时目录。这个零时目录通常在系统的 /tmp 目录下。

在某些Linux发行版中,如果最近未访问过 /tmp 下的文件和目录,则系统实用程序将从中清除文件和目录,此行为可能会导致在运行Elasticsearch时删除私有临时目录。如果 Elasticsearch 随后使用了该目录,则删除私有临时目录会导致问题。

如果您使用 .deb 或 .rpm 软件包安装的Elasticsearch并运行在 systemd 下,则定期清理将排除Elasticsearch使用的私有临时目录。

如果使用 .tar.gz 包部署的集群,那应该考虑给每个集群中的节点创建专用的临时目录,该目录应设置权限,以便只有运行Elasticsearch的用户(此文中是:elastic)才能访问它。
然后,在启动Elasticsearch之前,将环境变量 $ES_TMPDIR 设置为该目录。

以下步骤在每个节点上执行

1 切换为 root 用户

su - root


2 创建目录并改变属主和属组

mkdir /opt/ela
chown elastic:elastic  /opt/ela/


3 切换为普通用户 elastic, 并声明环境变量

su - stastic


4 声明环境变量

export ES_TMPDIR=/opt/ela


5 重新启动 Elasticsearch

./bin/elasticsearch -d -p /opt/ela/elasticsearch.pid


 

 

 

 


10 关闭 Elasticsearch 进程
pkill -F /tmp/elasticsearch.pid
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值