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 中删除。
先决条件
- 必须安装集群日志记录。
流程
删除索引:
编辑 OpenShift Container Platform 自定义 Curator 配置文件:
$ oc edit configmap/curator
根据需要设置以下参数:
config.yaml: | project_name: action unit:value
可用的参数如下:
表 3.2. 项目选项 变量名称 描述 project_name
项目的实际名称,例如 myapp-devel。对于 OpenShift Container Platform operations 日志,请使用
.operations
作为项目名称。action
当前只支持
delete
。unit
用于删除的期限,可以是
days
、weeks
或months
。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
)。