3.10.2. 配置 Curator 索引删除

您可以配置 Elasticsearch Curator 以删除在 OpenShift Container Platform 版本 4.5 之前使用数据模型的 Elasticsearch 数据。您可以配置在特定项目范围内的设置,也可以配置全局范围的设置。全局设置应用到任何未指定的项目。特定项目范围内的设置会覆盖全局设置。

重要

Elasticsearch Curator 在 OpenShift Container Platform 4.7(OpenShift Logging 5.0)中已弃用,并将在 OpenShift Logging 5.1 中删除。

先决条件

  • 必须安装集群日志记录。

流程

删除索引:

  1. 编辑 OpenShift Container Platform 自定义 Curator 配置文件:

    $ oc edit configmap/curator
  2. 根据需要设置以下参数:

    config.yaml: |
      project_name:
        action
          unit:value

    可用的参数如下:

    表 3.2. 项目选项

    变量名称描述

    project_name

    项目的实际名称,例如 myapp-devel。对于 OpenShift Container Platform operations 日志,请使用 .operations 作为项目名称。

    action

    当前只支持 delete

    unit

    用于删除的期限,可以是 daysweeksmonths

    value

    单位数。

    表 3.3. 过滤选项

    变量名称描述

    .defaults

    使用 .defaults 作为 project_name,可为尚未指定的项目设置默认值。

    .regex

    与项目名称匹配的正则表达式列表。

    pattern

    有效且正确转义的正则表达式,用单引号括起。

例如,要将 Curator 配置为:

  • 删除 myapp-dev 项目中存在时间超过 1 天的索引
  • 删除 myapp-qe 项目中存在时间超过 1 个星期的索引
  • 删除存在时间超过 8 个星期operations日志
  • 删除所有其他项目中存在时间超过 31 天的索引
  • 删除与 ^project\..+\-dev.*$ 正则表达式匹配且存在时间超过 1 天的索引
  • 删除与 ^project\..+\-test.*$ 正则表达式匹配且存在时间超过 2 天的索引

使用:

  config.yaml: |
    .defaults:
      delete:
        days: 31

    .operations:
      delete:
        weeks: 8

    myapp-dev:
      delete:
        days: 1

    myapp-qe:
      delete:
        weeks: 1

    .regex:
      - pattern: '^project\..+\-dev\..*$'
        delete:
          days: 1
      - pattern: '^project\..+\-test\..*$'
        delete:
          days: 2
重要

当您将 months 用作操作的 $UNIT 时,Curator 会从当月的第一天开始计算,而不是当月的当天。例如,如果今天是 4 月 15 日,并且您想要删除目前存在时间已达 2 个月的索引 (delete: months: 2),Curator 不会删除日期在 2 月 15 日前的索引,而是会删除日期在 2 月 1 日前的索引。也就是说,它会退回到当前月份的第一天,然后从该日期起返回两个整月。如果您想使 Curator 准确一些,则最好使用 days(例如 delete: days: 30)。