背景
最近线上的虚机资源纳入了监管,机器的性能数据会被监控,cpu、内存、磁盘的使用情况都被会监控,达到阈值会触发告警。
监控是把双刃剑,好在有问题能及时预警发现处理。不方便是操作受到监管,操作不便,徒增工作量。
进入正题:es数据盘索引数据不做定期清理导致磁盘利用率达到90%,会触发告警。磁盘利用达到90%后es也不给索引分片了,磁盘利用率维持在90%不变。那么怎样可以将es磁盘高水位线调低,不触发90%的告警呢?
配置
es官方配置:
// 达到低水位线节点不再分配新的副本,默认85%
cluster.routing.allocation.disk.watermark.low: 84%
// 达到高水位先节点将自平衡数据到其他节点,默认90%
cluster.routing.allocation.disk.watermark.high: 86%
// 达到洪水水位索引将只变成可读,默认95%
cluster.routing.allocation.disk.watermark.flood_stage: 88%
以上配置也可以配置具体存储容量,即:500mb。
如上是集群配置,那么如果是单节点想配置呢,官方文档给出了说明:
cluster.routing.allocation.disk.watermark.enable_for_single_data_node: true
如果是单一数据节点,以上配置设置为true后水位线配置也会生效!
当然究极解决办法是做索引管理。es官方有个索引管理工具elasticsearch-curator
,可配置规则删除符合规则的索引,配合定时任务可做索引的定时清理!
官方文档
- 磁盘水位线配置:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/modules-cluster.html#disk-based-shard-allocation