网站运营需要什么条件,北京网站建设是什么意思,杭州网站维护公司,移动互联网开发技术有哪些作者#xff1a;来自 Elastic Stef Nestor 大家好#xff01;我们的 Elasticsearch 团队正在不断改进我们的索引生命周期管理 (index Lifecycle Management - ILM) 功能。当我第一次加入 Elastic Support 时#xff0c;我通过我们的使用 ILM 实现自动滚动教程快速上手。在帮…作者来自 Elastic Stef Nestor 大家好我们的 Elasticsearch 团队正在不断改进我们的索引生命周期管理 (index Lifecycle Management - ILM) 功能。当我第一次加入 Elastic Support 时我通过我们的使用 ILM 实现自动滚动教程快速上手。在帮助多个用户设置 ILM 后我注意到升级主要来自少数配置问题。
在以下部分中我想介绍常见的工单、诊断流程和常见错误恢复。显示的所有命令都可以通过 Kibana 的 Dev Tools 运行。 配置
ILM 后端进程默认运行但需要用户配置才能影响索引。你可以通过 ILM 状态返回 operation_mode:RUNNING 来验证 ILM 是否正在运行。 常见问题 1ILM 未运行
ILM 默认运行。如果你之前已停止 ILM则需要重新启动 ILM。
ILM 设置为在六个连续阶段中保存数据。阶段 “new” 在索引创建时是隐含的后面是五个可配置阶段。 常见问题 2数据未删除
人们普遍误以为配置热阶段的滚动会自动删除数据。必须明确配置删除数据阶段才能删除数据。必须明确指定每个可配置阶段。
每个可配置阶段都有一组允许的连续操作。这些操作由你自行配置但大多数用户至少启用设置优先级、滚动和删除操作。可以通过 Kibana UI 或 Elasticsearch API 配置策略和操作。我经常看到并使用以下策略可从 “Get ILM Policy” 访问
GET _ilm/policy/INDEX_POLICY_NAME
{policy: {phases: {hot: {actions: {rollover: {max_age: 30d,max_size: 50gb},set_priority: {priority: 100}},min_age: 0ms},warm: {min_age: 7d,actions: {set_priority: {priority: 50},shrink: {number_of_shards: 1},forcemerge: {max_num_segments: 1}}},delete: {min_age: 365d,actions: {delete: {}}}}}
}
此策略policy指示系统立即将数据发送至 hot 阶段创建新索引并每 30 天或 50 GB以先到者为准滚动更新以前的数据。滚动更新七天后索引将不再需要文档更新从而进入 warm 阶段。此时该策略附加了以下两个操作shrink减少分片数量和 force merge压缩数据并擦除已删除的记录。数据将一直处于 warm 阶段直到滚动更新 365 天后被删除。 常见问题 3min_age 计算说明
在与客户合作时我发现关于 min_age 的工作方式常常存在困惑。min_age 必须在后续阶段之间递增。如果使用了 rollover滚动min_age 是根据滚动日期计算的。这是因为滚动操作会生成一个新索引并使用新索引的创建日期进行计算。否则min_age 将基于原始索引的创建日期进行计算。
一旦创建策略就需要明确附加到索引才能生效。 常见问题 4明确将策略连接到索引
为策略和索引赋予相同的名称并不会将两者联系在一起。例如将你的策略命名为 filebeat-* 并不会将其连接到你的 filebeat-* 索引你仍然需要明确将索引附加到策略。
你可以手动将策略附加到现有索引但通常你会设置模板以在索引通过 Beat YAML 配置文件例如Filebeat 和 Metricbeat或通过索引模板index template配置创建时自动附加策略
PUT _index_template/TEMPLATE_NAME
{index_patterns: [INDEX_NAME-*],template: {settings: {number_of_shards: 1,number_of_replicas: 1,index.lifecycle.name: POLICY_NAME,index.lifecycle.rollover_alias: INDEX_ALIAS}}
}
你还可以通过 Kibana UI 配置索引模板。越来越多的用户正在转向数据流它可以自动为你处理这些配置。 常见问题 5手动管理现有索引
新策略不会自动应用于任何现有索引。索引模板Index templates可以附加策略但模板仅在创建索引时应用。如果你已更新索引模板以自动附加策略和别名它将在未来应用但你需要手动将策略附加到任何现有索引。
你可以通过检索索引设置index settings来检查当前附加到索引的策略
GET INDEX_NAME-000001/_settings?filter_path*.settings.index.lifecycle
{INDEX_NAME-000001 : {settings : {index : {lifecycle : {name : INDEX_POLICY_NAME,rollover_alias : INDEX_ALIAS}}}}
} 常见问题 6配置错误导致错误
如果这些为 NULL 或配置错误你将遇到滚动操作错误。这些是我见过的最常见的 ILM 错误我们将在下面介绍因为它们取决于用户配置先决条件而不仅仅是后端系统处理。你可以考虑使用不需要配置滚动别名的数据流Data Streams。
策略更新仅存储最新版本。 常见问题 7仅存储最新的策略版本
用户无法恢复到之前的策略版本一旦策略被覆盖就无法找回。每次发送的策略 PUT 请求都会创建或完全覆盖之前的版本而不会部分更新策略的 JSON。
为了在操作切换时保持一致性索引会将当前正在执行的策略阶段缓存到索引的元数据 phase_execution 中。通过检查 ILM 的 explain 输出可以查看缓存的策略版本以及它正在应用于哪个索引、处于哪个阶段、执行哪个操作或步骤。
GET INDEX_NAME-000001/_ilm/explain
{indices: {INDEX_NAME-000001: {index: INDEX_NAME-000001,managed: true,policy: INDEX_POLICY_NAME,lifecycle_date_millis: 1538475653281,lifecycle_date: 2021-06-01T13:45:21.981Z,age: 25.14s,phase: hot,phase_time_millis: 1538475653317,phase_time: 2021-06-01T13:45:22.577Z,action: rollover,action_time_millis: 1538475653317,action_time: 2021-06-01T13:45:22.577Z,step: attempt-rollover,step_time_millis: 1538475653317,step_time: 2021-06-01T13:45:22.577Z,phase_execution: {policy: my_lifecycle3,phase_definition: {min_age: 0ms,actions: {rollover: {max_age: 30m}}},version: 2,modified_date: 2021-06-01T11:00:11.576Z,modified_date_in_millis: 1539609701576}}}
}
phase_execution 显示该策略缓存了其 hot 阶段内容以便每 30 分钟滚动到新索引。如果将来更新附加策略则策略缓存将在安全的情况下更新为策略的最新版本。 常见问题 8策略版本安全更新
在索引进入策略的下一阶段之前某些策略版本更新不会反映在索引的 phase_execution 缓存中。这是为了保护你的数据并且一切都按预期运行。
有时用户在继承新系统后会升级工单。通常这是因为
他们需要在业务/网络需求发生变化时启用或禁用数据层。他们新设置的 Elasticsearch 用户在编辑策略时权限不足导致策略开始失败。
默认情况下你需要在集群上拥有 manage_ilm 权限并在相关索引上进行管理例如通过 super_user 角色。 常见问题 9ILM 以上次编辑用户的身份运行
ILM 以上次编辑用户的身份执行操作其权限与上次编辑策略时的用户相同。这些错误将显示为 action [x] is unauthorized for user [y]。以下是 Elastic Discuss 问题的示例。 诊断
如果 ILM explain 报告 ERROR 步骤你可能需要解决问题才能让 ILM 继续运行。以下是最常见的错误及其解决方法 rollover alias [x] can point to multiple indices, found duplicated alias [x] in index template [z] 索引模板定义目标滚动别名。该别名只需要在第一个索引上引导一次因为滚动操作将管理将别名滚动到下一个索引。你可以在索引模板中指定其他别名但不能指定用于滚动的别名。 index.lifecycle.rollover_alias [x] does not point to index [y] 你需要检查索引设置 index.lifecycle.rollover_alias。索引指向错误的别名或者别名不存在。你可以通过运行 Get Aliases 来检查后者。这是一个 Elastic Discuss 问题示例。你可以考虑使用 Data Streams 来处理这个问题。 setting [index.lifecycle.rollover_alias] for index [y] is empty or not defined 你的索引设置 index.lifecycle.rollover_alias 为空无法使滚动生效。请更新索引设置以附加滚动别名来解决。以下是 Elastic Discuss 问题示例。你可以考虑使用 Data Streams 来处理此问题。 alias [x] has more than one write index [y,z] 运行 “Get Aliases” 时你会注意到两个索引被标记为 is_write_index:true但每个别名只能有一个索引。你需要通过 Aliases API 在其中一个索引上切换 is_write_index:false。 index name [x] does not match pattern ^.*-\d 索引名称的正则表达式模式匹配是滚动生效的先决条件。用户最常忽略的问题是没有意识到索引名称需要以尾随数字结尾例如 my-index-000001而是只使用符合模式要求的 my-index。以下是 Elastic Discuss 问题示例。你可以考虑使用 Data Streams 来处理这个问题。 circuitBreakingException: [x] data too large, data for [y] 这表明集群资源已达到极限。请查看 Elasticsearch 管理和故障排除以获得临时的系统缓解以便继续进行 ILM 设置。 high disk watermark [x] exceeded on [y] 作为子集资源警告这表明你的集群数据存储已达到极限。如果你尚未设置 hot 到 warm 节点 ILM 翻转则通常会出现这种情况。你需要通过增加资源或删除不需要的索引或文档数据或通过 delete_by_query为你的集群腾出一些喘息空间。
系统将每十分钟自动重试失败的步骤或者一旦解决你可以通过 Retry Policy Execution 手动触发重试
POST INDEX_NAME-000001/_ilm/retry
如果你想要暂时覆盖此间隔以进行测试则需要更新集群设置以减少 indices.lifecycle.poll_interval。默认 ILM 集群设置如下
GET _cluster/settings?include_defaultstruefilter_path*.indices.lifecycle*,*.xpack.ilm*
{ defaults : {indices.lifecycle.history_index_enabled : true,indices.lifecycle.poll_interval : 10m,indices.lifecycle.step.master_timeout : 30s}
}
如果策略配置正确且没有报告错误但你的操作没有进展你需要调查它是否正在等待先决条件运行。 常见问题 10良好的集群维护有助于 ILM 平稳运行
未分配UNASSIGNED分片可能导致策略执行无法继续因为 ILM 在执行某些操作时会等待索引达到 “绿色” 状态。例如迁移操作migrate action可能因此受阻。
由于我们已经检查了当前状态配置并开始转向时间序列调查因此接下来将查看 ILM 历史记录。ILM 历史记录默认通过 Elasticsearch 集群设置 indices.lifecycle.history_index_enabled:true 启用。根据部署版本的不同可以通过在 Kibana 中创建 .ds-ilm-history-* 或 ilm-history-* 系统索引的索引模式来查看数据。在 Kibana Discover 中我更喜欢通过切换表格列来浏览创建的索引模式如[index, policy, state.phase, state.action, state.step, success]。
如果 ILM 历史记录无法提供足够的详细信息可以通过启用更详细的集群日志记录来获取更多信息。
PUT /_cluster/settings
{transient: {logger.org.elasticsearch.xpack.core.indexlifecycle: TRACE,logger.org.elasticsearch.xpack.indexlifecycle: TRACE}
}
这非常繁重只能暂时启用。对于本地集群你可以在 Elasticsearch 日志中看到更详细的日志记录。对于 Elastic Cloud 部署请参阅我的 Elastic Cloud 设置了解如何启用和查看这些内容。 结论
我们已经介绍了 ILM 的常见问题、诊断流程和常见错误恢复。此时如果你在解决问题时遇到困难请随时联系我们。我们在这里很乐意为你提供帮助你可以通过 Elastic Discuss、Elastic Community Slack、咨询、培训和支持与我们联系。 原文Troubleshooting Elasticsearch ILM: Common issues and fixes | Elastic Blog 文章转载自: http://www.morning.qpqcq.cn.gov.cn.qpqcq.cn http://www.morning.tsxg.cn.gov.cn.tsxg.cn http://www.morning.syqtt.cn.gov.cn.syqtt.cn http://www.morning.ljfjm.cn.gov.cn.ljfjm.cn http://www.morning.qydgk.cn.gov.cn.qydgk.cn http://www.morning.srmpc.cn.gov.cn.srmpc.cn http://www.morning.gcrlb.cn.gov.cn.gcrlb.cn http://www.morning.nzklw.cn.gov.cn.nzklw.cn http://www.morning.ldqrd.cn.gov.cn.ldqrd.cn http://www.morning.gjqwt.cn.gov.cn.gjqwt.cn http://www.morning.blxlf.cn.gov.cn.blxlf.cn http://www.morning.kydrb.cn.gov.cn.kydrb.cn http://www.morning.mhfbp.cn.gov.cn.mhfbp.cn http://www.morning.dbrnl.cn.gov.cn.dbrnl.cn http://www.morning.jtmql.cn.gov.cn.jtmql.cn http://www.morning.nqlx.cn.gov.cn.nqlx.cn http://www.morning.dhyzr.cn.gov.cn.dhyzr.cn http://www.morning.znmwb.cn.gov.cn.znmwb.cn http://www.morning.nytqy.cn.gov.cn.nytqy.cn http://www.morning.fygbq.cn.gov.cn.fygbq.cn http://www.morning.jfwrf.cn.gov.cn.jfwrf.cn http://www.morning.dpwcl.cn.gov.cn.dpwcl.cn http://www.morning.dschz.cn.gov.cn.dschz.cn http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn http://www.morning.nccqs.cn.gov.cn.nccqs.cn http://www.morning.tkyxl.cn.gov.cn.tkyxl.cn http://www.morning.yzzfl.cn.gov.cn.yzzfl.cn http://www.morning.nbsbn.cn.gov.cn.nbsbn.cn http://www.morning.huarma.com.gov.cn.huarma.com http://www.morning.ltzkk.cn.gov.cn.ltzkk.cn http://www.morning.jhwwr.cn.gov.cn.jhwwr.cn http://www.morning.ypfw.cn.gov.cn.ypfw.cn http://www.morning.gjtdp.cn.gov.cn.gjtdp.cn http://www.morning.nxcgp.cn.gov.cn.nxcgp.cn http://www.morning.lxcwh.cn.gov.cn.lxcwh.cn http://www.morning.rmlz.cn.gov.cn.rmlz.cn http://www.morning.daidudu.com.gov.cn.daidudu.com http://www.morning.pymff.cn.gov.cn.pymff.cn http://www.morning.plcyq.cn.gov.cn.plcyq.cn http://www.morning.jqsyp.cn.gov.cn.jqsyp.cn http://www.morning.fnkcg.cn.gov.cn.fnkcg.cn http://www.morning.ywtbk.cn.gov.cn.ywtbk.cn http://www.morning.qlhkx.cn.gov.cn.qlhkx.cn http://www.morning.qrzwj.cn.gov.cn.qrzwj.cn http://www.morning.vvdifactory.com.gov.cn.vvdifactory.com http://www.morning.ckhpg.cn.gov.cn.ckhpg.cn http://www.morning.qyhcm.cn.gov.cn.qyhcm.cn http://www.morning.nnrqg.cn.gov.cn.nnrqg.cn http://www.morning.kdnrp.cn.gov.cn.kdnrp.cn http://www.morning.wjlrw.cn.gov.cn.wjlrw.cn http://www.morning.qmwzz.cn.gov.cn.qmwzz.cn http://www.morning.znqxt.cn.gov.cn.znqxt.cn http://www.morning.rjqtq.cn.gov.cn.rjqtq.cn http://www.morning.bxhch.cn.gov.cn.bxhch.cn http://www.morning.fdfdz.cn.gov.cn.fdfdz.cn http://www.morning.dpsyr.cn.gov.cn.dpsyr.cn http://www.morning.hsflq.cn.gov.cn.hsflq.cn http://www.morning.pdxqk.cn.gov.cn.pdxqk.cn http://www.morning.wjdgx.cn.gov.cn.wjdgx.cn http://www.morning.dskmq.cn.gov.cn.dskmq.cn http://www.morning.zypnt.cn.gov.cn.zypnt.cn http://www.morning.wgtnz.cn.gov.cn.wgtnz.cn http://www.morning.wclxm.cn.gov.cn.wclxm.cn http://www.morning.rqlqd.cn.gov.cn.rqlqd.cn http://www.morning.zkgpg.cn.gov.cn.zkgpg.cn http://www.morning.wglhz.cn.gov.cn.wglhz.cn http://www.morning.ydryk.cn.gov.cn.ydryk.cn http://www.morning.tmxfn.cn.gov.cn.tmxfn.cn http://www.morning.nmwgd.cn.gov.cn.nmwgd.cn http://www.morning.qytpt.cn.gov.cn.qytpt.cn http://www.morning.kryn.cn.gov.cn.kryn.cn http://www.morning.sthp.cn.gov.cn.sthp.cn http://www.morning.ampingdu.com.gov.cn.ampingdu.com http://www.morning.nwynx.cn.gov.cn.nwynx.cn http://www.morning.slqzb.cn.gov.cn.slqzb.cn http://www.morning.addai.cn.gov.cn.addai.cn http://www.morning.psxwc.cn.gov.cn.psxwc.cn http://www.morning.qkdjq.cn.gov.cn.qkdjq.cn http://www.morning.rldph.cn.gov.cn.rldph.cn http://www.morning.nqlkb.cn.gov.cn.nqlkb.cn