百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

ELK Stack系列之基础篇(五) - elasticsearch集群需要注意哪些?

nanshan 2025-01-13 16:33 13 浏览 0 评论

一、ES6集群的安装和配置

在上一章节中,我们在一个节点上快速构建了一个ES集群,方便我们快速入门。但是实际生产应用中,我们都会根据公司实际的生产情况,比如公司业务日志的数据量、平台的数据访问量去选择我们服务器节点的配置。那么关于节点的配置这块,这里先不做过多讲解。腾云ES服务提供了各种场景下的套餐,用户可以非常方便的选择适合自己的产品。后续我将陆续给出我的建议。

1,ES6集群安装注意事项

(1) 自ES 5.X版本后,由于elasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑,需要创建一个单独的用户用来运行elasticSearch,不能启用root启用ESt集群;

(2)需要将elasticsearch的安装目录都授权给刚新建的elasticsearch用户;

2, 操作系统调优、JVM调优

(1) 操作系统以及JVM调优主要是针对安装elasticsearch的机器。对于操作系统,需要调整几个内核参数,将下面内容添加到/etc/sysctl.conf文件中,修改此配置文件后,需要使用sysctl -p命令让配置生效:

fs.file-max=655360 ----> fs.file-max主要是配置系统最大打开文件描述符数,建议修改为655360或者更高

vm.max_map_count = 262144 ---->vm.max_map_count影响Java线程数量,用于限制一个进程可以拥有的VMA(虚拟内存区 域)的大小,系统默认是65530,建议修改成262144或者更高。

sysctl.conf配置

查询优化配置

(2) 需要调整进程最大打开文件描述符(nofile)、最大用户进程数(nproc)和最大锁定内存地址空间(memlock),添加如下内容到/etc/security/limits.conf文件,这个文件修改后,我们退出此终端重新登录即可让配置生效,然后使用ulimit -a 命令查看。

* soft nproc 204800 最大用户进程数(nproc)

* hard nproc 204800

* soft nofile 655360 进程最大打开文件描述符(nofile)

* hard nofile 655360

* soft memlock unlimited 最大锁定内存地址空间,这个非常重要

* hard memlock unlimited

/etc/security/limits.conf配置文件优化

最后,还需要修改/etc/security/limits.d/20-nproc.conf文件(centos7.x系统),

将 * soft nproc 4096 修改为:* soft nproc 20480 或者直接删除/etc/security/limits.d/20-nproc.conf文件也行。

/etc/security/limits.d/20-nproc.conf优化配置

ulimit -a 命令

JVM调优

JVM调优主要是针对elasticsearch的JVM内存资源进行优化,elasticsearch的内存资源配置文件为jvm.options,这个文件在ES安装目录的config目录下,打开此文件,修改如下:

-Xms1g

-Xmx1g

jvm.options文件修改

可以看到,默认JVM内存为1g,可根据服务器内存大小,修改为合适的值。一般设置为服务器物理内存的一半最佳

JVM设定标准:

1,最大不要超过31G

2,预留一半内存给操作系统,用来做文件缓存,提升系统查询速度。

那么以上就是ES6.x系列集群的安装过程中需要注意的事项,以及LInux系统、JVM内核的调优。当然,每个大的版本的更新都会有相应的变化,所以我们需要及时关注官方文档,上面有很多的产品知识:https://www.elastic.co/guide/en/elasticsearch/reference/current/vm-max-map-count.html


二、ES配置文件详解

elasticsearch的配置文件均在elasticsearch根目录下的config文件夹,这里是/usr/local/elasticsearch/config目录,主要有jvm.options、elasticsearch.yml和log4j2.properties三个主要配置文件。这里重点介绍elasticsearch.yml一些重要的配置项及其含义。这里配置的elasticsearch.yml文件内容如下

cluster.name: elk-- #集群的名字、所有节点的集群名必须相同 ,并且不能名字不能重复.默认是elasticsearch

node.name: server1--# 节点名称,仅仅是描述名称,用于在日志中区分(自定义),每个节点名必须不一样

node.master: true--#指定了该节点可能成为 master 节点,还可以是数据节点.默认就是true,elasticsearch集群中默认第一台启动的机器为master角色,如果这台服务器宕机就会重新选举新的master

node.data: true--#指定该节点是否存储索引数据,默认为true,表示数据存储节点.如果节点配置node.master:false并且node.data: false,则该节点就是client node。这个client node类似于一个“路由器”,负责将集群层面的请求转发到主节点,将数据相关的请求转发到数据节点。

path.data: /data1/elasticsearch,/data2/elasticsearch--# 设置索引数据的存储路径,默认是elasticsearch根目录下的data文件夹,这里自定义了两个路径,可以设置多个存储路径,用逗号隔开。

path.logs: /usr/local/elasticsearch/logs--#设置日志文件的存储路径,默认是elasticsearch根目录下的logs文件夹

bootstrap.memory_lock: true--# 此配置项一般设置为true用来锁住物理内存。 linux下可以通过“ulimit -l” 命令查看最大锁定内存地址空间(memlock)是不是unlimited.这个配置非常重要。让我们的ES来使用物理内存,而不去使用Swap。提升服务器性能。

network.host: 0.0.0.0--#此配置项用来设置elasticsearch提供服务的IP地址,默认值为0.0.0.0,此参数是在elasticsearch新版本中增加的,此值设置为服务器的内网IP地址即可。

http.port: 9200--#设置elasticsearch对外提供服务的http端口,默认为9200

discovery.zen.minimum_master_nodes: 1--#配置当前集群中最少的master节点数,默认为1,也就是说,elasticsearch集群中master节点数不能低于此值,如果低于此值,elasticsearch集群将停止运行。在三个以上节点的集群环境中,建议配置大一点的值,推荐2至4个为好。

discovery.zen.ping.unicast.hosts: ["IP:9300","IP:9300"]--#设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点。这里需要注意,master节点初始列表中对应的端口是9300。即为集群交互通信端口;9300端口是ES集群服务的端口,是集群节点间通讯的端口。

ES安装目录截图

那么到此为止,我们的ES集群的优化讲解、配置文件讲解、安装注意事项已经结束了。接下来,就是启动ES集群了,对吧。分别到每台节点上的ES安装目录下,去执行“bin/elasticsearch -d”就可以了。


三、小结

本节我们讲解了Elasticsearch 6.8.2集群安装中要注意的事情、以及JVM、LInux系统调优、ES配置文件的讲解,更增进了对ES的深入了解。接下来,我们将重点讲解ES的各种功能模块的详解,同时腾讯云ES这款云产品的快速上手的使用。后面我们将逐步深入讲解。

相关推荐

Linux 的磁盘系统,和你了解的Windows差别很大

我的C盘去哪了?一个系统,如果没有存储,那么也就不能称之为系统。存储性是一个完整系统的重要组成部分。例如AWS最开始的服务就是S3(用来存储数据的云服务),足以见得存储对于一个应用平台是多么的重要。...

一文读懂 Linux 硬盘挂载:从问题到解决方案

各位互联网大厂的后端开发伙伴们!在咱们日常工作中,操作Linux系统是常有的事儿吧。你们有没有遇到过这样的场景:新添加了一块硬盘,满心欢喜准备用来存储重要数据或者部署新的应用服务,却突然发现不知道...

硬盘分区(硬盘分区格式)

 磁盘(硬盘)分区,可以分C、D、E等分区,大家可能都会用,会根据自已的需要确定所需的空间,但分区是如何工作的呢,内容如下。Windows中有3类:MBR分区:MasterBootRecord,也...

parted命令工具分区介绍(particle命令)

linux系统磁盘分区通常可以使用fdisk和parted命令,当分区大小小于2TB的时候,两种皆可以使用,当分区大于2TB的话,就需要用parted分区。以下介绍parted命令相关使用,以sdb为...

Linux 服务器上查看磁盘类型的方法

方法1:使用lsblk命令lsblk输出说明:TYPE列显示设备类型,如disk(物理磁盘)、part(分区)、rom(只读存储)等。NAME列显示设备名称(如sda、nvme0n1)。TR...

Linux分区命令fdisk和parted使用介绍

摘要:一般情况下,Linux分区都是选择fdisk工具,要求硬盘格式为MBR格式,能支持的最大分区空间为2T。但是目前在实际生产环境中使用的磁盘空间越来越大,呈TB级别增长;而常用的fdisk这个工具...

linux 分区原理与名词解释(linux操作系统中的分区类型)

分区的意义将磁盘分成几份,每份挂在到文件系统的那个目录在linux里的文件系统Ext2:早期的格式,不支持日志功能Ext3:ext2改良版,增加了日志功能,是最基本且最常用的使用格式了Ext4:针对e...

linux 分区合并(linux合理分区)

查看虚拟机当前磁盘挂载情况fdisk-l选择磁盘fdisk/dev/sda查看磁盘分区情况p重新选择分区n选择主分区p保存w创建物理卷pvcreate/dev/sda3查看物理卷信息pvdi...

如何在 Linux 系统中永久禁用交换分区 ?

Linux操作系统中的交换分区或交换文件充当硬盘上的临时存储区域,当物理内存(RAM)满时,系统使用该存储区域。它用于交换较少使用的内存页,这样系统就不会因为运行应用程序而耗尽物理内存。随着技术的发...

Linux 如何知道硬盘已用多少空间、未用多少空间

刚出社会时,去了一家公司上班,老板为了省钱,买的服务器是低配的,硬盘大小只有40G,有一次网站突然不能访问了,排查半天才知道原来服务器的硬盘空间已用完,已无可用空间。第一步是查看硬盘的使用情况,第二步...

用Linux系统管理磁盘空间 就该这么来

要想充分有效的管理使用Linux系统中的存储空间,用户必须要做的就是双管齐下,一边扩充空间一边限制空间。不得不说的就是很多时候磁盘空间就像水资源,需节制水流。说到要如何实现限制空间就离不开使用LVM技...

Windows 11 磁盘怎么分区?(windows11磁盘怎么分区)

Windows11磁盘分区技术解析与操作指南:构建高效存储体系一、磁盘分区的技术本质与系统价值磁盘分区作为存储系统的基础架构,通过逻辑划分实现数据隔离与管理优化。Windows11采用NTF...

linux上创建多个文件分区,格式化为 ext2、ext3、ext4、XFS 文件

以下是在Linux系统上创建多个20GB文件分区并格式化为不同文件系统的分步指南:步骤1:创建基础文件(4个20GB文件)bash#创建4个20GB稀疏文件(实际占用空间随写入量增长)ddif=/...

救命的U盘低格哪家最强?(低格优盘)

周二时有位童鞋留言说U盘之前做过引导盘,现在格式化不了,用各种工具都不行,而且因为U盘厂商的关系,查不到U盘主控,无法量产恢复,特来求助。小编花了点时间特意弄坏一个U盘分区,终于试出方法了,特来分享一...

Linux 查看硬件磁盘存储大小和磁盘阵列(RAID)的组合方式

一、查看硬件磁盘存储大小查看所有磁盘信息:#lsblk该命令会列出所有磁盘(如/dev/sda、/dev/nvme0n1)及其分区和挂载点。查看磁盘总容量:fdisk-l#或parted-...

取消回复欢迎 发表评论: