前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ELK Stack系列之基础篇(五) - 配置elasticsearch集群需要注意哪些方面?

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

原创
作者头像
南非骆驼说大数据
修改2020-02-17 13:59:36
1.8K0
修改2020-02-17 13:59:36
举报

一、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配置
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.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优化配置
/etc/security/limits.d/20-nproc.conf优化配置
ulimit -a 命令
ulimit -a 命令

JVM调优

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

-Xms1g

-Xmx1g

jvm.options文件修改
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集群了,对吧。分别到每台节点上的ES安装目录下,去执行“bin/elasticsearch -d”就可以了。

三、小结

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、ES6集群的安装和配置
    • 1,ES6集群安装注意事项
      • 2, 操作系统调优、JVM调优
        • JVM调优
        • 二、ES配置文件详解
        • 三、小结
        相关产品与服务
        Elasticsearch Service
        腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档