类型
编辑类型编辑
此设置仅与 模式
筛选器类型一起使用,并且是必需的设置。
此设置告知 模式 要匹配的模式类型。此设置的可接受值为 前缀
、后缀
、时间字符串
和 正则表达式
。
没有默认值。此设置必须由用户设置,否则将引发异常并停止执行。
不同的 类型
描述如下
前缀编辑
要匹配以 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
用作简单的模式匹配还是日期计算的一部分,这都适用。