elasticsearch认证,节点部署,容量规划,性能优化--《elasticsearch核心技术与实战》笔记

Posted jazon@

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch认证,节点部署,容量规划,性能优化--《elasticsearch核心技术与实战》笔记相关的知识,希望对你有一定的参考价值。

开启并配置X-Pack的认证和授权


第三步是修改kibana.yml文件,将elasticsearch.username, elasticsearch.password,修改为kibana使用的账号和密码,配置完这步,打开kibana还是提示登录,还是需要输入账号和密码的,所以可以理解为该配置只是kibana程序自身使用,实际登录还需使用其他账户。

Elasticsearch常见的集群部署方式

  • 不同角色的节点

Master eligible, Data, Ingest, Coordinating, Machine Learning

  • 在生产环境中,根据数据量,写入和查询的吞吐量,选择合适的部署方式,建议设置单一角色的节点。


各个单一角色考虑的配置



[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SDX2gYGO-1627222714254)(https://cdn.nlark.com/yuque/0/2021/png/12674217/1627083581172-7b4e7c32-9c40-4e26-86b0-9ad6c1a67ec2.png#align=left&display=inline&height=421&originHeight=421&originWidth=649&size=64872&status=done&style=none&width=649)]

部署策略

Hot Warm架构



配置Hot & Warm Architecture

  1. 标记节点

  1. 配置Hot数据

  1. 旧数据迁移到Warm节点,当发现索引不再更新,将索引迁移到Warm节点上

Rack Awareness

通过Rack Awareness的机制,可以尽可能避免将同一个索引的主副分片同时分配在一个机架节点上。

分片的设计与管理

  • 分片过多带来的副作用

  • 如何确定主分片数

  • 如何确定副本分片数

  • 调整分片总数设定,避免分配不均衡

如何对集群进行容量规划




容量规划案例

  • 案例一,搜索类型


  • 案例二,日志类型数据




集群扩容

生产环境常用配置和上线清单

  • elasticsearch支持development和production模式,是通过http.host和bind_host字段判断是哪种模式的。

  • 运行在production模式的bootstrapChecks






集群的写入性能优化



  • 高质量建模回顾

  • 极致性能取舍

  • elasticsearch写入数据的过程

  • refreshInterval调参逻辑


refresh Interval控制着buffer生成segment(lucene索引的存储文件)的频率,所以增大refreshInterval会降低搜索的实时性,但是可以增加写入性能,因为segment变少了,IO也少了,更多的是在内存操作了。

  • Translog调参逻辑


translog类似于InnoDB的redolog

  • 分片设定调参逻辑

  • Bulk,线程池和队列大小调参逻辑

  • 一个索引设定的例子

集群读性能优化

  • 尽可能地使用反范式,从而获得最佳性能




使用Filter利用上elasticsearch的cache


诊断集群潜在问题

  • 集群诊断的维度


解决集群Yellow与Red的问题

红: 至少有一个主分片没有分配; 黄: 至少有一个副本没有分配; 绿: 主副本分片全部正常分配;

  • 集群健康度API



  • rerouteAPI将分片移动到另一个节点上

段合并优化

  • Merge优化


  • Force Merge

缓存及使用Circuit Breaker限制内存使用

  • es缓存分类

  • Node Query Cache

  • Shard Request Cache

  • Fielddata Cache

  • 缓存何时失效

  • 管理内存的重要性

  • es内存状况API

  • elasticsearch 的内存问题案例



  • es提供了断路器,防止es节点OOM

监控es集群



设置慢查询语句阈值

Full Restart的步骤

运维常用的命令




使用Shrink与Rollover API管理索引

  • 使用Rollover API,使得满足一定条件,alias指向一个新的索引


rolloverAPI只会将alias指向一个新的索引。这意味着,如果不触发rollover,数据一直都是往当前alias对应的索引写入,直到触发了rollover API,将alias指向新的索引。

  • 配置alias在rollover时保留旧索引,即alias读取时指向的的是一批索引,但是写入时指向的最新的索引

索引全生命周期管理

这些生命周期的管理,需要自动化支持,es官方有一个elasticsearch Curator,这里只是告诉有这么一个工具,具体如何使用仍需要查看文档

以上是关于elasticsearch认证,节点部署,容量规划,性能优化--《elasticsearch核心技术与实战》笔记的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch性能优化干货

elasticsearch的安装部署

ElasticSearch 集群与x-pack监控集群分开部署

elasticsearch Elasticsearch集群规模和容量规划的底层逻辑

elasticsearch系列八:ES 集群管理(集群规划集群搭建集群管理)

《Elasticsearch 源码解析与优化实战》第21章:综合应用实践