类型编辑

此设置仅与 模式
筛选器类型一起使用,并且是必需的设置。

此设置告知 模式 要匹配的模式类型。此设置的可接受值为 前缀后缀时间字符串正则表达式

筛选器链

重要的是要注意,虽然筛选器可以链接,但每个筛选器都通过隐含的逻辑 运算符链接。如果您想从多个不同模式中的一个进行匹配,如逻辑 运算,则可以使用 模式 筛选器类型,并将 正则表达式 用作 类型

此示例显示如何根据索引以 alpha-bravo-charlie- 开头来选择多个索引

  filters:
  - filtertype: pattern
    kind: regex
    value: '^(alpha-|bravo-|charlie-).*$'

解释正则表达式的所有不同用法超出了本文档的范围,但希望这可以让您了解如何在需要逻辑 时使用正则表达式模式。

没有默认值。此设置必须由用户设置,否则将引发异常并停止执行。

不同的 类型 描述如下

前缀编辑

要匹配以 logstash- 开头的所有索引

- filtertype: pattern
 kind: prefix
 value: logstash-

要匹配logstash- 开头的索引以外的所有索引

- filtertype: pattern
 kind: prefix
 value: logstash-
 exclude: True

在内部,前缀 值用于创建 正则表达式 模式:^{0}.*$。任何特殊字符都应使用反斜杠进行转义,以便进行字面匹配。

后缀编辑

要匹配以 -prod 结尾的所有索引

- filtertype: pattern
 kind: suffix
 value: -prod

要匹配-prod 结尾的索引以外的所有索引

- filtertype: pattern
 kind: suffix
 value: -prod
 exclude: True

在内部,后缀 值用于创建 正则表达式 模式:^.*{0}$。任何特殊字符都应使用反斜杠进行转义,以便进行字面匹配。

时间字符串编辑

此处不进行年龄计算。它严格来说是模式匹配。

要匹配具有 Year.month.day 模式的所有索引,例如 index-2017.04.01

- filtertype: pattern
 kind: timestring
 value: '%Y.%m.%d'

要匹配具有 Year.month.day 模式的索引以外的所有索引,例如 index-2017.04.01

- filtertype: pattern
 kind: timestring
 value: '%Y.%m.%d'
 exclude: True

关于使用时间字符串进行正则表达式匹配的说明

时间字符串从 strftime 模式(例如 %Y.%m.%d)解析为正则表达式。例如,%Y 是 4 位数字,因此其正则表达式如下所示:\d{4},而 %m 是 2 位数字,因此其正则表达式为 \d{2}

这意味着一个用于匹配年份和月份的简单时间字符串 %Y.%m 将生成如下正则表达式:^.*\d{4}\.\d{2}.*$。此模式将匹配任何 4 位数字,后跟句点 .,再后跟 2 位数字,出现在索引名称中的任何位置。这意味着它匹配每月索引(例如 index-2016.12)以及每日索引(例如 index-2017.04.01),这可能不是预期的行为。

为了弥补这一点,在选择与另一个模式的子集匹配的索引时,请使用将 exclude 设置为 True 的第二个筛选器

- filtertype: pattern
 kind: timestring
 value: '%Y.%m'
- filtertype: pattern
 kind: timestring
 value: '%Y.%m.%d'
 exclude: True

这将阻止 %Y.%m 模式匹配每日索引的 %Y.%m 部分。

无论将 timestring 用作简单的模式匹配还是日期计算的一部分,这都适用。

正则表达式编辑

类型 允许您设计一个正则表达式来匹配索引或快照

要匹配以 a-b-c- 开头的所有索引

- filtertype: pattern
 kind: regex
 value: '^a-|^b-|^c-'

要匹配a-b-c- 开头的索引以外的所有索引

- filtertype: pattern
 kind: regex
 value: '^a-|^b-|^c-'
 exclude: True