这里借助kibana进行修改相应的配置
elasticsearch集群的部署,详情请看上一篇文章:
Elasticsearch最新版快速入门看这个就可以了-CSDN博客
基础ES集群运维篇可以查看
Elasticsearch 生产应用(实用版),知晓这些,你就可以进行简单的ES集群运维了-CSDN博客
1、生产环境常用配置与上线清单
Development vs. production mode
从ES 5版本开始,支持 development 和 production 两钟运行模式
开发模式
生产模式
Bootstrap checks检测
一个集群在 production mode 时 。启动时必须通过所有bootstrap 检测,否则会启动失败
Bootstrap checks 可以分为两类:JVM & Linux checks 。
Linux checks 只针对Linux系统
JVM
从ES 6版本开始,只支持64位的JVM
配置 config/jvm.options
避免修改默认配置
将内存Xms 和Xmx 设置成一样,避免 heap resize 时引发停顿
Xmx 设置不要超过物理内存的50%(留有足够的内存用于全文检索) ;单个节点上,最大内存建议不要超过32G内存(JVM内存小于32时,会使用JVM对象指针压缩的技术,大于32时,可能会引起性能下降)
详情看 A Heap of Trouble: Managing Elasticsearch's Managed Heap | Elastic Blog
生产环境,JVM必须使用server模式
关闭JVM swapping
集群的API设定
静态设置和动态设定
静态配置文件尽量简洁:按照文档设置所有相关参数。Elasticsearch.yml配置文件中尽量只写必备参数
其他的设置项可以通过API动态进行设定,动态设定分 transient 和 persistent 两种,都会覆盖elasticsearch.yml中的设置
Transient 在集群重启后会丢失
Persistent在集群中重启后不会丢失
参照文档“setup elasticsearch > important system configuration”
Important System Configuration | Elasticsearch Guide [7.1] | Elastic
Disable swapping ,increase file descriptor ,虚拟内存 ,number 偶发thread
详细参考官方文档或者 ELK实验报告中的,优化资源限制配置
2、集群具体性能参考依据
(1)、网络
单个集群不要跨数据中心进行部署(不要使用WAN)网络延迟越小越好
节点中间的hops 越少越好
如果有多块网卡,最好将transport 和 http 绑定到不同的网卡,并设置不同的防火墙rules
按需为 coordinating node 或 ingest node 配置负载均衡
(2)、内存设定计算依据
内存大小要根据node需要存储的数据来进行估算
搜索类的比例建议:1:16
日志类的: 1:48 – 1:96 之间
总数据量1T ,设置一个副本 = 2T 总数据量
如果搜索类的项目,每个节点31*16 =496G ,加上预留空间,所以每个节点最多400G数据,至少需要5个节点
如果是日志类的项目,每个节点 31*50 = 1550GB ,2个数据节点即可
(3)存储
推荐使用SSD,使用本地存储(local disk),避免使用 SAN NFS / AWS /Azure filesystem
可以在本地指定多个 “path.data”,以支持使用多块磁盘
ES本身提供了很好的HA机制;无需使用RAID 1/5/10
可以在warm 节点上使用 spinning disk ,但是需要关闭 concurrent merges
Index.merge.scheduler.max_thread_count:1
Trim 你的SSD
(4)服务器硬件
建议使用中等配置的机器,不建议使用过于强劲的硬件配置
Medium machine over large machine
不建议在一台服务器上运行多个节点
(5)集群设置:throttles限流
为relocation 和recovery 设置限流,避免过多任务对集群产生性能影响
Recovery
Cluster.routing.allocation.node_concurrent_recoveries:2
Relocation
Cluster.routing.allocation.cluster_concurrent_rebalance:2
(6)集群设置:关闭dynamic indexes(动态索引创建的功能)
可以考虑关闭动态索引创建的功能,需要进行手动创建
PUT _cluster/settings
{
"persistent": {
"action.auto_create_index":false
}
}