娱乐网站建设方案,商城网站免费建设,网站以个人名义备案,有网址的公司先看一下官网给我们提供的全部的参数配置项
官网地址
官方文档链接#xff1a;注意版本是8.1Configuring Elasticsearch | Elasticsearch Guide [8.1] | Elastic编辑https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html 重要#xff08;基本…先看一下官网给我们提供的全部的参数配置项
官网地址
官方文档链接注意版本是8.1Configuring Elasticsearch | Elasticsearch Guide [8.1] | Elastic编辑https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html 重要基本参数
Important Elasticsearch configuration 关于分片和路由的配置
Cluster-level shard allocation and routing settings
分片的配置用于集群重启时候的分片恢复、副本分配问题、分片平衡问题、以及删除节点的时候触发生效。
master节点负责分片分配的相关问题包括了分片去哪个节点以及节点之间的分片平衡当一个节点上的数据过多与其它节点分配不均匀的时候master节点负责重新平衡。 分片分配相关参数
参数cluster.routing.allocation.enable cluster.routing.allocation.enable 用来限制不同的分片能否在某个节点上分配 all- 默认允许分配所有类型的分片。 primaries- 只允许分配主分片。 new_primaries- 仅允许新索引的主分片分配。 none- 不允许对任何索引进行任何类型的分片分配。该设置不影响重启节点时本地主分片的恢复。具有未分配主分片副本的重新启动节点将立即恢复该主分片假设其分配 id 与集群状态中的活动分配 id 之一匹配。 这里的优化点我们可以靠谱的机器分配主分片。可能有问题的机器可以限制主分片的分配。 cluster.routing.allocation.node_concurrent_incoming_recoveries 副本在当前节点分配的并发数。比方说你的索引只有主分片没有副本。你想要添加副本则你就要在别的机器上去分配副本。 默认值为2 增大该配置可以提升添加副本的速度。但是它意味着花费更多的资源。假如你不考虑集群当前服务能力就想快速添加副本则可以增大该配置。具体的可以增加到多大。需要做压力测试。根据不同的机器资源有不同的效果。 cluster.routing.allocation.node_concurrent_outgoing_recoveries 最大允许同时多少个分片去别的机器上恢复。 默认值为2 增大该配置可以提升添加副本的速度。但是它意味着花费更多的资源。假如你不考虑集群当前服务能力就想快速添加副本则可以增大该配置。具体的可以增加到多大。需要做压力测试。根据不同的机器资源有不同的效果。 cluster.routing.allocation.node_concurrent_recoveries 该参数合并了cluster.routing.allocation.node_concurrent_incoming_recoveries 和cluster.routing.allocation.node_concurrent_outgoing_recoveries这两个参数。意思是只配置当前这个参数以上两个参数都会生效。 cluster.routing.allocation.node_initial_primaries_recoveries 当节点重启后或者说集群重启后主分片恢复的并发数。假如一个节点上有20个主分片。那么如果默认4个并发则需要分五次才能把这个主分片全部恢复起来。或者说同时只能有四个主分片一起恢复。 默认值为4 这个参数可以用来提升集群故障重启后的集群恢复速度。我们可以适当增大它。能够增大多少也是需要具体的压力测试。根据机器资源不同可增大就不同。 目前我认为这个参数是和CPU能力挂钩的。 另外我认为集群恢复我能可以调大它。不用考虑此时集群服务能力。说白了主分片如果都没回复全肯定对外提供查询它是有问题的。 注意一点所谓的参数调优每个参数都不是孤立的它要和其它参数一起配合来使用。 cluster.routing.allocation.same_shard.host 这个参数只会在一台物理机器上多个节点的时候才会有用。 默认配置false cluster.routing.allocation.same_shard.host: true 禁止把副本分配到同一台物理机器上相同ip地址认为是同一台机器 cluster.routing.allocation.same_shard.host: false 可以把副本分配到同一台物理机器上。如果一台物理机器只有一个节点默认为false也没什么问题因为副本不会分配到同一个机器上。但是一台机器上有多个节点就失去数据容灾的能力了也不能将请求均分到其它机器上去。 分片平衡配置
分片平衡问题对于es集群来说它其实是希望数据能按大小均匀分不到不同的节点上的。当发生数据倾斜的时候集群会有一个自动的平衡机制帮你把分片挪到别的节点上。 这里有一个点就是我们在组建集群的时候最好能够将每台机器或者说每个节点能用的磁盘空间对齐。避免节外生枝。 cluster.routing.rebalance.enable
设置哪些分片能够重新平衡 all- 默认允许对所有类型的分片进行分片平衡。 primaries- 仅允许对主分片进行分片平衡。 replicas- 仅允许对副本分片进行分片平衡。 none- 任何索引都不允许任何类型的分片平衡。
cluster.routing.allocation.allow_rebalance
指定何时允许分片重新平衡 always- 始终允许重新平衡。 indices_primaries_active- 仅当分配了集群中的所有主节点时。 indices_all_active- 默认仅当集群中的所有分片主分片和副本都已分配时。这个阶段显然是最安全的。不要掺和太多事等集群稳定的时候去平衡。
cluster.routing.allocation.cluster_concurrent_rebalance
设置集群中执行分片重新平衡的并发数。默认值为2的情况下一个集群中最多能有2个分片同时去执行重新平衡。
默认值2 分片平衡规则设置
上边只提到了。集群会自动平衡节点中的分片。那策策略是什么呢或者说规则是什么呢
cluster.routing.allocation.balance.shard
动态定义节点上分配的分片总数的权重因子浮点数。默认为0.45f. 提高这一点会增加集群中所有节点上的分片数量相等的趋势。 从这里我们可以知道es只能保证分片数量平衡。 那么再提出来一个问题假如分片的大小并不平衡呢 cluster.routing.allocation.balance.index
动态定义分配在特定节点浮点数上的每个索引的分片数的权重因子。默认为0.55f. 提高这一点会增加集群中所有节点上每个索引的分片数量相等的趋势。
cluster.routing.allocation.balance.threshold
动态应该执行的操作的最小优化值非负浮点。默认为1.0f. 提高此值将导致集群在优化分片平衡方面不那么积极。 与磁盘相关的分片设置
关于磁盘的保护。我们很容易就可以理解我们的磁盘总不能写满吧es集群给我们增加了这个控制。特地设置了三个水位线一个最低水位线一个控制水位线一个最高水位线。看下图三条线。这个水位线是说磁盘使用量占比。 当磁盘空间倾斜的时候es需要自动调整。假如我们物理节点的磁盘大小不一致。节点A分配1T磁盘节点B分配10T磁盘如果同样是每个上边分配相同的分片。同样都写入数据显然A节点先到达最低水位线。
所以磁盘有一个限制。当写入磁盘到达橙色低水位线的时候副本将无法再在这个节点上分配。
当到达控制水位线就会进入一个挪分片阶段。这个阶段会把分片挪到别的节点上去以达到磁盘平衡的目的。
当所有的节点都达到了控制水位线的时候就不能再挪分片了分片也没有地方去了。此时还能继续写入数据当写入直到最高水位线的时候不行了集群不再接受写入请求了此时能读能删除。 这里有一个集群规划-磁盘规划方面的优化点。 我们知道这个挪分片的过程数据不会自己从一个磁盘飞到另外的磁盘。它是要花资源的占用CPU占用磁盘IO占用网络IO。 所以我们要尽可能的分配均匀的磁盘给每个节点。尽可能的避免这个挪的过程从而避免资源占用。 另外如何磁盘大小不一样。我们通过上边的参数知道它是按比例来算的。也就是有可能在极端情况下假如三个节点磁盘分别是 1T10T10T。假如数据都装85%这意味着一次搜索一个节点处理850G数据另外两个节点每个处理8.5T。这相当于只有两个节点在工作。从而失去了集群的意义。 可以使用以下设置来控制基于磁盘的分配
cluster.routing.allocation.disk.threshold_enabled
动态默认为true。设置为false禁用磁盘分配决定器。
cluster.routing.allocation.disk.watermark.low
动态控制磁盘使用的低水位线。默认为85%这意味着 Elasticsearch 不会将分片分配给磁盘使用率超过 85% 的节点。它也可以设置为绝对字节值如500mb以防止 Elasticsearch 在可用空间少于指定数量时分配分片。此设置对新创建索引的主分片没有影响但会阻止分配它们的副本。
cluster.routing.allocation.disk.watermark.high
动态控制水位线。它默认为90%这意味着 Elasticsearch 将尝试将分片从磁盘使用率高于 90% 的节点开始挪分片去其他节点。
cluster.routing.allocation.disk.watermark.flood_stage
动态高水位线默认为 95%。index.blocks.read_only_allow_deleteElasticsearch对在节点上分配了一个或多个分片并且至少有一个磁盘超过洪水阶段的每个索引强制执行只读索引块 ( )。此设置是防止节点耗尽磁盘空间的最后手段。当磁盘利用率低于高水位线时索引块会自动释放。 注意以上配置需要对齐要么都用百分比要么都指定具体大小。 cluster.info.update.interval
动态Elasticsearch 应该多久检查一次集群中每个节点的磁盘使用情况。默认为30s. 以下两个参数没看懂等看懂了再来补。 cluster.routing.allocation.disk.watermark.flood_stage.frozen (Dynamic) Controls the flood stage watermark for dedicated frozen nodes, which defaults to 95%. cluster.routing.allocation.disk.watermark.flood_stage.frozen.max_headroom (Dynamic) Controls the max headroom for the flood stage watermark for dedicated frozen nodes. Defaults to 20GB when cluster.routing.allocation.disk.watermark.flood_stage.frozen is not explicitly set. This caps the amount of free space required on dedicated frozen nodes. search相关设置
限制搜索条件包含的搜索子句
参数 indices.query.bool.max_clause_count
默认值4096 这个默认配置是偏大的。这个我们可以调小。用来对集群的保护。 聚类结果数桶的个数例如你去 agg terms获取聚类结果
参数 search.max_buckets
默认是65536 这里建议聚类结果不要一下子返回通常情况可以利用 compsit滚动导出聚类结果。 这个不难理解比方说你一共有100亿数据让你一下子从集群中拿出20亿。这也不现实集群做不到这件事肯定要滚动利用游标的方式导出。 嵌套查询的层数
就是嵌套查询最多有几层
参数 indices.query.bool.max_nested_depth
默认值20 index相关配置
是否允许自动创建索引
参数 action.auto_create_index
默认值true 删除索引是否要指定索引名称
参数 action.destructive_requires_name
默认值false如果设置为true则不能通过通配符来删除索引。 是否允许关闭索引
参数 cluster.indices.close.enable
默认值true。如果设置为false则不能关闭索引。 关闭索引会释放内存空间但是不会释放磁盘空间。 跨集群数据同步白名单
由 ipport字符串数组组成
参数 reindex.remote.whitelist
例如 reindex.remote.whitelist [10.10.10.10:9200, 10.10.10.11.9200:*] 是否启用内置索引和组件模板
参数stack.templates.enabled
默认为true,如果为false则es不会自动为你创建以下这些索引。
此设置影响以下内置索引模板 logs-*-* metrics-*-* synthetics-*-*
此设置还会影响以下内置组件模板 logs-mappings logs-settings metrics-mappings metrics-settings synthetics-mapping synthetics-settings 控制集群是否能写入数据
控制集群只读 cluster.blocks.read_only
控制集群可读可以删除 cluster.blocks.read_only_allow_delete 集群分片数设置
限制单个节点最大的分片数cluster.max_shards_per_node
默认值1000
所以集群的总的主分片和副本分片总数为 cluster.max_shards_per_node * 数据节点的个数
如果索引被关闭则其分片数不计数。 这个很多人给的建议是每1G堆内存对应20个分片。假如你给堆分配30G堆内存则该节点分片数最好不要超过600个。这个默认是每个节点1000个调优的时候通常是降低这个默认值而不是增大它。 限制单个节点上存在冻结的分片 cluster.max_shards_per_node.frozen
向理解以下什么冻结的分片换句话说就是关闭的分片。比如一个索引有十个分片一共两个节点假如每个节点5个分片将索引close掉那么这5个分片就算是冻结分片。如果还不懂看下边这篇文章。
关于什么是冻结索引
ES冻结索引_51CTO博客_es冻结索引 占多少内存 Field data cache 设置
参数 indices.fielddata.cache.size
取值可以是百分比例如 20% 。也可以制定是 5GB。
注意熔断器中也有参数限制Field data cache 的大小。并且默认值是 40%。所以如何设置这个参数的时候要比40%小。
关于Field data cache请看下边的这篇文章
elasticsearch中 fieldData_elasticsearch fielddata_水的精神的博客-CSDN博客 永远不要尝试打开它。它是性能的杀手。我们不要对text类型的字段排序聚类如果真的需要就同时给它设置一个keyword类型利用doc values而不是构造Field data index buffer cache
用作写缓存。分配的是堆空间。
indices.memory.index_buffer_size
接受百分比或字节大小值。它默认为10%这意味着10%分配给节点的总堆将用作所有分片共享的索引缓冲区大小。
indices.memory.min_index_buffer_size
如果index_buffer_size指定为百分比则此设置可用于指定绝对最小值。默认为48mb.
indices.memory.max_index_buffer_size
如果index_buffer_size指定为百分比则此设置可用于指定绝对最大值。默认为无界。 Node query cache
节点级别的缓存。
es节点可以缓存查询的结果。
参数 index.queries.cache.enabled 是否开启节点请求结果缓存。
默认值true。代表节点默认是会缓存查询数据的。
默认情况下缓存最多可容纳 10000 个查询 。段合并会导致缓存失效
参数 indices.queries.cache.size 节点分配个查询缓存的堆大小。
默认值10%。 也就是说有百分之十的堆空间用于节点的请求缓存。
它是LRU的策略来进行替换的。但是不会被GC回收掉 Shard requests cache
分片级别的缓存。
通常情况下缓存 查询结果为0的数据。例如 aggregations, andsuggestions.
为了保证搜索的实时性和搜索结果的最终一致性。分片级别的缓存会在执行 refreshe 的时候失效。 所以说分片级别的缓存生效的时间取决于 refreshe的时间间隔。缓存和实时性是不可兼得的一件事请 参数index.requests.cache.enable 是否开启分片级别的缓存。
默认值true。开启
另外我们可以在一次请求的时候指定是否缓存本次结果在分片上。
GET /my-index-000001/_search?request_cachetrue
{size: 0,aggs: {popular_colors: {terms: {field: colors}}}
}
参数indices.requests.cache.size 分片缓存占用堆内存的大小
默认值1% 快照与恢复配置
快照操作的最大并发数。操作包括快照创建删除和复制。
参数 snapshot.max_concurrent_operations
默认值1000
快照生命周期管理配置
是否把记录快照历史操作
参数 slm.history_index_enabled
默认值true 快照的执行周期
参数 slm.retention_schedule
可以是 cron表达式 0 30 1 * * ? 多长时间删除快照
参数 slm.retention_duration
默认值1小时 允许用来快照恢复的url
参数repositories.url.allowed_urls 线程池相关设置
通常情况下我们对es集群下发的命令例如search、index、agg、suggest段合并等等。都交由不同的线程池来完成执行。这个其实不难理解线程是任务调度的最小单元。对es来说也是。 先来聊一聊物理机器的CPU 一个物理节点对应一个es节点是理想情况。es会自动检测CPU的个数这并不难。但是如果一台机器有多个节点就有问题了。因为es没有那么智能它会傻傻的以为当前的CPU都是给自己一个节点用的。这种情况下会很大程度上降低es的性能。 假如一台机器上有多个节点请告诉node它该分几个核心 以下参数可以设置CPU核心数。假如一台机器总的核心数是32假如你的机器上分配了两个节点你可以设置为16此时每个节点正好分配16个核心。 16核心是一个节点的理想核心数
node.processors: 2 再聊一下线程池如果熟悉线程池原理应该知道线程池可以有固定线程数的线程池也有弹性的线程池。提交的任务会优先给线程处理如果处理不过来自然要把这些任务放在任务队列里。如果任务队列还满的话那自然要触发拒绝策略了。 在看es 线程池相关的配置参数的时候我们主要关注线程池的功能线程池是否是固定线程数以及其任务队列的大小。 generic线程池
参数generic
用于集群运行的幕后工作者例如用于节点的发现。
用于search的线程池
参数search
例如 count、search、suggest
固定线程数CPU核心数 * 3 / 2 1
任务队列1000
下边这个我不太懂
search_throttled
For count/search/suggest/get operations on search_throttled indices. Thread pool type is fixed with a size of 1, and queue_size of 100.
search_coordination
For lightweight search-related coordination operations. Thread pool type is fixed with a size of a max of min(5, (# of allocated processors) / 2), and queue_size of 1000.
get
For get operations
固定线程数CPU核心数
任务队列1000
analyze
用于获取语句的执行过程。
固定线程数1个线程
任务队列大小16
write
写操作写、删除、更新、批量提交操作
固定线程数CPU核心数 1
任务队列大小10000
snapshot
For snapshot/restore operations. Thread pool type is scaling with a keep-alive of 5m and a max of min(5, (# of allocated processors) / 2).
生成快照数据。
线程数min(5, (CPU核心数 1) / 2) 也就是最多5个线程。
snapshot_meta
读取快照数据用来恢复。
线程数min(50, (CPU核心数* 3)).
warmer
用于段数据预热
线程数min(5, (CPU核心数) / 2).
refresh
将数据从JVM堆内存刷新到文件系统生成段。
线程数min(10, (CPU核心数) / 2).
fetch_shard_started
获取分片状态信息.
线程数最大为 CPU核心数*2
fetch_shard_store
获取分片列表.
线程数最大为 CPU核心数*2
flush
用于操作文件系统上的段数据refresh之后的阶段从文件系统落到磁盘上。
线程数 min(5, (CPU核心数) / 2).
force_merge
段合并的线程数。默认为1个线程。 注意这个参数不要随意调。比较致命。因为段合并是一个非常花费资源的操作。如果真的要调大可以在凌晨来段合并。 management
用于集群管理
默认 5 个线程
system_read
系统索引的读.
线程数 min(5, (CPU核心数) / 2).
system_write
系统索引的写
线程数 min(5, (CPU核心数) / 2).
system_critical_read
For critical read operations on system indices.
线程数 min(5, (CPU核心数) / 2).
system_critical_write
For critical write operations on system indices.
线程数 min(5, (CPU核心数) / 2).
watcher
用于集群监控
线程数 min(5 * (CPU核心数), 50)
任务队列1000
我们可以通过以下配置来指定线程数。
thread_pool:# 指定线程池类型write:# 指定线程数size: 30# 指定任务队列大小queue_size: 1000 集群与注册相关配置
es有天然的集群自动组成方式。我们只需要简单的配置节点就会自动组成集群。做分布式应用es的集群策略是值得我们学习的
一起看下和形成集群相关的参数配置 discovery.seed_hosts 集群的节点列表意思是指定哪些节点去进行通信并形成集群。 配置有两种形式直接指定ip和端口号多个用逗号分割。注意是ipport的形式。如果不指定端口的话默认是9300。9300是es节点间通信的端口。 如果地址是ipv4举个栗子 [10.10.10.10:9300, 10.10.10.11:9300] 如果地址是ipv6需要用中括号括起来。举个栗子 [ 10.10.10.10:9300, [::1]:9300] 也可以通过配置域名的方式。 举个栗子 seeds.mydomain.com discovery.seed_hosts:- 192.168.1.10:9300- 192.168.1.11- seeds.mydomain.com- [0:0:0:0:0:ffff:c0a8:10c]:9301 discovery.seed_providers 这个参数是用来指定读取集群列表的形式。默认情况下我们是把地址放在了elasticsearch.yml下从配置文件中修改。 但是假如我们集群的节点需要动态调整的话不太方便。所以官方给我们提供了其它的形式。比如放在一个单独的文件我们可以动态的去修改它。 下边的案例是我们指定配置的节点列表放在文件里。 discovery.seed_providers: file 然后我们在es的config目录下和elasticsearch.yml同级的目录创建一个名字为 unicast_hosts.txt 的文件然后在文件中放入节点的列表: 10.10.10.5
10.10.10.6:9305
10.10.10.5:10005
# an IPv6 address 注意注释内容用 #开头
[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:9301 discovery.type 该参数指定了es节点是集群模式。默认是 multi-node 。也就是集群模式它允许新的节点进来。 如果按照以下设置则单个节点为一个集群。 discovery.type: single-node cluster.initial_master_nodes 该参数指定哪些节点可以作为master节点。注意这里指定的是节点的名称。 cluster.initial_master_nodes: - master-node-a- master-node-b- master-node-c
专家设置编辑
以下配置都是集群相关的配置官方不建议修改。如果你熟悉它们也可以修改 discovery.cluster_formation_warning_timeout 默认值 10s 假如 经过了 10s节点还没有形成集群会记录一条warn级别的日志 discovery.cluster_formation_warning_timeout短语开头。master not discovered discovery.find_peers_interval 默认为1s. 设置经过多长时间进行一次集群发现。 discovery.probe.connect_timeout 默认为 30s. 设置尝试连接到每个地址时的等待时间。 discovery.probe.handshake_timeout 默认为30s. 设置尝试通过握手识别远程节点时等待多长时间。 discovery.request_peers_timeout 默认为3s. 设置节点在再次询问其对等方之后将等待多长时间然后才认为请求失败。 discovery.find_peers_warning_timeout 默认为3m. 设置节点在开始记录描述连接尝试失败原因的详细消息之前尝试发现其对等点的时间。 discovery.seed_resolver.max_concurrent_resolvers 默认为10. 在节点发现时节点列表中假如配置了域名的方式进行DNS查询的并发数。 discovery.seed_resolver.timeout 默认为5s. 在节点发现时节点列表中假如配置了域名的方式每次DNS获取地址的超时时间。 cluster.auto_shrink_voting_configuration 该参数指定是否在投票中排除离开的节点。假如一共四个节点一个节点的机器坏了我们认为该节点离开了。 该参数默认为 true代表会自动踢出离开的节点。前提是总的节点数大于等于3. 假如设置为false则不会踢出离开的节点需要我们通过api来手动踢出。 voting configuration exclusions API. cluster.election.back_off_time 默认为 100ms. 选举失败时等待的时间。 从默认值更改此设置可能会导致您的集群无法选择主节点。 cluster.election.duration 默认为500ms. 设置在选举失败以后每次选举花费多长时间。 从默认值更改此设置可能会导致您的集群无法选择主节点。 cluster.election.initial_timeout 这默认为 100ms. 该参数指定在第一选举之前或者选举失败以后允许多长时间用来做节点的初始化工作。 从默认值更改此设置可能会导致您的集群无法选择主节点。 cluster.election.max_timeout 设置节点在尝试第一次选举之前等待多长时间的最大上限防止因为网络不稳定有太多的节点没有加入进来。这默认为10s. 从默认值更改此设置可能会导致您的集群无法选择主节点。 cluster.fault_detection.follower_check.interval 设置主节点检查从节点的等待时间。默认为1s. 从默认值更改此设置可能会导致您的集群变得不稳定。 cluster.fault_detection.follower_check.timeout 设置主节点多长时间可以认为从节点不在了。 默认为10s. 从默认值更改此设置可能会导致您的集群变得不稳定。 cluster.fault_detection.follower_check.retry_count 主节点检查从节点的次数在失败多少次以后可以认为该节点不在了。 默认为3. 从默认值更改此设置可能会导致您的集群变得不稳定。 cluster.fault_detection.leader_check.interval 设置每个节点在选举前等待的时间。 默认为 1s. 从默认值更改此设置可能会导致您的集群变得不稳定。 cluster.fault_detection.leader_check.timeout 设置从节点判定主节点不在的时间. 默认为10s. 从默认值更改此设置可能会导致您的集群变得不稳定。 cluster.fault_detection.leader_check.retry_count 设置从节点检查主节点是否存在的失败次数。 默认为3. 超过三次以后则从节点可以认为主节点不在了。 从默认值更改此设置可能会导致您的集群变得不稳定。 cluster.follower_lag.timeout 集群状态在从节点更新的时间默认是90s如果集群状态在90s以后没有在从节点应用成功则将该从节点从集群中移除。请参阅 发布集群状态。 cluster.max_voting_config_exclusions 这个参数我暂时没明白是什么意思。 (Dynamic) Sets a limit on the number of voting configuration exclusions at any one time. The default value is 10. See Adding and removing nodes. cluster.publish.info_timeout 默认值为10s。 主节点将集群状态应用在所有节点的时间。假如超过了默认值10s则会记录一条日志。 cluster.publish.timeout 设置主节点等待集群状态完全发布到所有节点的超时时间除非discovery.type设置为 single-node。默认值为30s。请参阅发布集群状态。 cluster.no_master_block 设置在没有master节点的时候不可以做的操作 此设置具有三个有效值 all节点上的所有操作读取和写入操作都被拒绝。这也适用于 API 集群状态读取或写入操作例如获取索引设置、更新映射和集群状态 API。 write拒绝写操作。 metadata_write只有元数据写入操作例如映射更新、路由表更改被拒绝但常规索引操作继续工作。根据最后一个已知的集群配置读取和写入操作成功。这种情况可能会导致部分读取过时数据因为该节点可能与集群的其余部分隔离。该cluster.no_master_block设置不适用于基于节点的 API例如集群统计、节点信息和节点统计 API。对这些 API 的请求不会被阻止并且可以在任何可用节点上运行。要使集群完全运行它必须有一个活动的主节点。 monitor.fs.health.enabled 如果true节点运行定期 文件系统健康检查。默认为true. monitor.fs.health.refresh_interval 每次文件系统检查的时间间隔 。默认为2m. monitor.fs.health.slow_path_logging_threshold 检查问阿金系统的时间超过该值则 Elasticsearch 会记录警告日志。默认为5s. 索引生命周期相关的配置
集群方面配置 indices.lifecycle.history_index_enabled 默认为 true 是否将 生命周期相关的操作记录到ilm-history-* indices. indices.lifecycle.poll_interval 默认10m 多久检查一次索引生命周期的策略。我们是可以修改索引的生命周期相关的配置的。
索引层面的配置 index.lifecycle.indexing_complete 是否滚动创建索引。 默认为false. index.lifecycle.name 用于管理索引的策略名称。有关 Elasticsearch 如何应用策略更改的信息请参阅策略更新。 index.lifecyle.origination_date 单位是long类型的时间戳 记录首次创建索引的间。该时间会被用来计算索引的年龄。可以不指定如果不指定则需要用下边的参数并且创建的索引名称为指定格式。 index.lifecycle.parse_origination_date 是否自动识别首次创建索引的时间。这个时间用来计算索引的年龄。 默认为true当设置为true的时候会自动从索引中通过名字识别首次创建索引的时间。前提是索引的名字为指定格式。索引名称必须与模式匹配^.*-{date_format}-\\d其中date_formatisyyyy.MM.dd和尾随数字是可选的。翻转的索引通常会匹配完整格式例如logs-2016.10.31-000002)。如果索引名称与模式不匹配则索引创建失败。 index.lifecycle.step.wait_time_threshold 在 ILM操作期间等待集群解决分配问题的时间 。必须大于1h1 小时。默认为 12h12 小时。请参阅分片分配 收缩。 index.lifecycle.rollover_alias 使用生命周期滚动创建索引要更新的索引别名。