当前位置: 首页 > wzjs >正文

赣州网站建设jxgzg3无锡网站建设哪家做的比较好

赣州网站建设jxgzg3,无锡网站建设哪家做的比较好,韩城市网站建设局电话,网站建设需求调查文章目录 背景介绍环境限制索引大小创建 ILM(索引生命周期管理)策略创建 ILM 策略 创建索引模板并关联 ILM 策略使用索引模板应用 ILM 策略 解决索引模板匹配冲突✅ 解决方案🔹 方案 1:修改 index_patterns(推荐&#…

文章目录

  • 背景
  • 介绍
  • 环境
  • 限制索引大小
    • 创建 ILM(索引生命周期管理)策略
      • 创建 ILM 策略
    • 创建索引模板并关联 ILM 策略
      • 使用索引模板应用 ILM 策略
  • 解决索引模板匹配冲突
    • ✅ 解决方案
      • 🔹 方案 1:修改 `index_patterns`(推荐)
      • 🔹 方案 2:提高 `priority`(这个更符合我的方案,但不推荐)
      • 🔹 方案 3:删除已有冲突模板
        • 1️⃣ 查看所有索引模板
        • 2️⃣ 删除不需要的 `metrics` 和 `logs` 模板
  • 结论


背景

ES 集群每天都会 触发磁盘报警,让人 非常头疼

为了控制磁盘使用量,我 编写了一个 Shell 脚本,当磁盘 使用率超过 75% 时,就会 自动删除前一天的索引

然而,问题出现了

  • 这些索引 都是当天新产生的,导致 脚本无法提前清理,磁盘空间依然告急。

于是,我开始思考:
🔍 Elasticsearch 是否有参数可以直接限制索引大小? 🤔


介绍

在使用 Elasticsearch 时,我们可能需要 限制索引大小,以防止磁盘占用过多。通常,我们会使用 索引生命周期管理(ILM)策略 来控制索引的大小,同时需要通过 索引模板(Index Template) 来确保新创建的索引符合规则。

然而,在设置索引模板时,可能会遇到 索引匹配冲突 的问题,导致模板无法生效。本文将介绍 如何限制索引大小,并提供 索引模板冲突的解决方案


环境

es集群三台机器
192.168.1.1
192.168.1.2
192.168.1.3


限制索引大小

创建 ILM(索引生命周期管理)策略

ILM 策略允许我们设置 索引的最大大小,并在超出限制时自动滚动到新的索引。

创建 ILM 策略

curl -X PUT "192.168.1.1:9200/_ilm/policy/my_policy" -H "Content-Type: application/json" -d '
{"policy": {"phases": {"hot": {"actions": {"rollover": {"max_size": "50gb",  # 单个索引最大 50GB"max_age": "7d"      # 或者 7 天后滚动}}}}}
}'

这个策略的作用:

  • 当索引达到 50GB存活超过 7 天,会自动 滚动(rollover) 到新索引。

创建索引模板并关联 ILM 策略

使用索引模板应用 ILM 策略

curl -X PUT "192.168.1.1:9200/_index_template/my_template" -H "Content-Type: application/json" -d '
{"index_patterns": ["my_index-*"],  # 只匹配 "my_index-" 开头的索引"priority": 100,"template": {"settings": {"index.lifecycle.name": "my_policy"}}
}'

✅ 这样,所有匹配 my_index-* 的索引都会自动遵循 my_policy 策略!


解决索引模板匹配冲突

在上面的操作中,你可能会遇到以下错误:

index template [my_template] has index patterns [*] matching patterns from existing templates [metrics,logs]

这个错误的意思是:

  • 你的 index_patterns: ["*"] 匹配了所有索引,而你的集群里已经有 metricslogs 模板,并且它们的 priority: 100,导致冲突。

✅ 解决方案

我们可以通过 以下三种方式 解决冲突:

🔹 方案 1:修改 index_patterns(推荐)

最好的做法是 让模板只作用于你需要的索引,而不是所有索引:

curl -X PUT "192.168.1.1:9200/_index_template/my_template" -H "Content-Type: application/json" -d '
{"index_patterns": ["my_index-*"],  # 只匹配 "my_index-" 开头的索引"priority": 100,"template": {"settings": {"index.lifecycle.name": "my_policy"}}
}'

这样不会影响 metricslogs 索引,避免冲突!


🔹 方案 2:提高 priority(这个更符合我的方案,但不推荐)

如果你仍想让你的模板覆盖所有索引(index_patterns: ["*"]),可以 提高 priority,比如改成 200

curl -X PUT "192.168.1.1:9200/_index_template/my_template" -H "Content-Type: application/json" -d '
{"index_patterns": ["*"],"priority": 200,  # 提高优先级,覆盖已有模板"template": {"settings": {"index.lifecycle.name": "my_policy"}}
}'

⚠️ 注意

  • 如果 metricslogs 需要保留原配置,慎用此方法!
  • 推荐方案 1,限制 index_patterns,只作用于部分索引。

🔹 方案 3:删除已有冲突模板

如果 metricslogs 模板不是必须的,可以 先查看模板列表,然后删除:

1️⃣ 查看所有索引模板
curl -X GET "192.168.1.1:9200/_index_template?pretty"
2️⃣ 删除不需要的 metricslogs 模板
curl -X DELETE "192.168.1.1:9200/_index_template/metrics"
curl -X DELETE "192.168.1.1:9200/_index_template/logs"

然后再创建 my_template 模板。

⚠️ 仅适用于 metricslogs 不是你需要的情况下!


结论

方案适用场景风险
修改 index_patterns(推荐)只影响特定索引最安全
提高 priority需要全局覆盖⚠️ 可能影响现有模板
删除冲突模板旧模板不再需要⚠️ 需确保不会影响系统索引

推荐方案 1:修改 index_patterns,确保只影响特定索引,避免影响 metricslogs 这些已有模板。

你可以根据自己的需求选择最合适的方案,确保 Elasticsearch 集群稳定运行! 🚀

http://www.dtcms.com/wzjs/578596.html

相关文章:

  • 自己做的网站网站搜索wordpress多重筛选机制
  • 网站访客记录 是后台做吗网络营销推广的方式包括
  • 重庆网站推广专家企业网站建设流程第一步是什么
  • 百度生成手机网站济南小程序网站开发
  • 网站建设常用软件jas网络推广速成班
  • 做跨境电商网站有哪些php印刷网站源码
  • 厦门建设工程信息造价网站上海公司建立网站吗
  • 一家企业如何做网站推广网站建设漳州
  • 猪八戒做网站山东省济宁市最新消息
  • 常熟住房和城乡建设局网站西安建设工程交易中心
  • 中国禹路由网站建设中莱芜信息平台
  • 做网站还需要搜狗吗百度搜索入口官网
  • 十大黑心装修公司天河网站 建设seo信科分公司
  • 为什么很少人敢娶外贸女深圳网站优化排名
  • 如何查询网站的主机京东联盟如何做查优惠卷的网站
  • 大连建设网站的公司邯郸网站设计联系电话
  • 网站可以给pdf做笔记开发公司工程部经理竞聘演讲稿
  • 浏阳网站开发公司百度售后服务电话
  • 设计好的单位网站开发公众号开发者是什么意思
  • 上海配资网站开发衡阳企业seo优化费用
  • 有没有什么免费网站国产软件开发平台
  • 礼品工艺品网站建设唐山石家庄做网站哪家好
  • 020网站开发多少钱免费域名
  • 旅游网站内容东川网站建设
  • 物流门户网站开发 报价手机靓号网站制作
  • 上市公司网站建设方案旅游网页
  • 二级域名网站怎么在百度创建网页
  • 淘宝网站开发框架嘉兴住房和城乡建设厅网站
  • 设计公司网站套餐定制开发游戏
  • wordpress文章列表高度seo网站排名优化服务