0
点赞
收藏
分享

微信扫一扫

elk笔记12--常见api和设置区别


elk笔记12--常见api和设置区别

  • ​​1. freeze 和 close 区别​​
  • ​​1.1 freeze介绍​​
  • ​​1.2 close介绍​​
  • ​​2 persistent 和transient区别​​
  • ​​3 两个allocation​​
  • ​​说明​​

本文主要记录 es 中常见容易混淆的概念、配置和api等内容,后续会在此处续更相关内容!

1. freeze 和 close 区别

1.1 freeze介绍

POST /<index>/_freeze
POST /<index>/_unfreeze

冻结的索引几乎在集群上没有开销,它只在内存中保留元数据,并且处于只读状态,像文档索引(写入)或者段合并等写操作都无法执行。
frozen索引正常情况无法在Discover查询到,但是可以通过添加 ignore_throttled=false 设置来读取。

注意:冻结索引会先close该索引,然后再打开它;该操作会导致短时间内主分片为未分配状态,从而出现一个短暂的集群red过程(主分片分配后集群恢复),这种限制会在后续版本中移除掉。

POST /my-index-000001/_freeze
POST /my-index-000001/_unfreeze

GET syslog001-2020.07.12-000002/_search?q=message:*&ignore_throttled=false
是否可以设置索引属性,待确认

1.2 close介绍

POST /<index>/_close
POST /<index>/_open

close掉的索引被禁止读写,并且不能执行opened 索引所有能执行的任何操作。由于closed索引不需要维护内部读写的数据结构,它将占用更少的资源(相对frozen索引)。

2 persistent 和transient区别

_cluster/settings 中有2个属性,分别为 persistent 和transient:
persistent:持久化,即字段对应的属性都会持久化到文档中,节点重启后仍然会加载生效;
transient:短暂性,即字段对应的属性最暂时保存,当节点全部重启后该设置就不生效了;
es 中配置加载的优先级为:transient > persistent > elasticsearch.yml, 因此线上可以直接更新 transient 的属性,涉及集群重启后要保留属性需要更新到persistent;

以节点关机维护为例子:
es 节点机器关机维护时候,需要同步锁分片,此时优先使用transient,若使用persistent 而transient有默认值all,可能导致设置没有生效;

关机同步锁分片:
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "none"
}
}
关机后解除锁分片:
PUT _cluster/settings
{
"transient": {
"cluster.routing.allocation.enable": "all"
}
}

​​cluster-update-settings​​

3 两个allocation

GET _cat/allocation?v 主要用于查看各个节点资源分配使用情况,可以用于磁盘资源监控;
GET _cluster/allocation/explain 主要用于分析集群中shard分配异常的原因,多用于集群异常诊断;

GET _cat/allocation?v
shards disk.indices disk.used disk.avail disk.total disk.percent host ip node
15 650.4mb 3.6gb 45.3gb 48.9gb 7 10.120.75.107 10.120.75.107 node-3
14 472.4mb 3gb 45.9gb 48.9gb 6 10.120.75.103 10.120.75.103 node-2
15 425.4mb 3.3gb 44.6gb 47.9gb 6 10.120.75.102 10.120.75.102 node-1
GET _cluster/allocation/explain
{
# explain 可以指定索引、是否为主分片等参数
}

说明

​​searching_a_frozen_index​​​​indices-close​​


举报

相关推荐

0 条评论