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