问:Curator 能否处理包含特殊字符的索引名称?
编辑问:Curator 能否处理包含特殊字符的索引名称?
编辑答:可以!
编辑这个问题可以通过使用 pattern 过滤器类型,并将 kind 设置为 regex
,以及将 value 设置为所需的正则表达式来解决。
问题
编辑非法字符使得删除索引变得困难。
% curl logs.example.com:9200/_cat/indices red }?ebc-2015.04.08.03 sip-request{ 5 1 0 0 632b 316b red }?ebc-2015.04.08.03 sip-response 5 1 0 0 474b 237b red ?ebc-2015.04.08.02 sip-request{ 5 1 0 0 474b 316b red eb 5 1 0 0 632b 316b red ?e 5 1 0 0 632b 316b
您可以看到,似乎有一些制表符和换行符。这使得使用 HTTP API 删除索引变得困难。
转储所有索引设置
curl -XGET localhost:9200/*/_settings?pretty
…显示索引名称为结果 JSON 中的第一个键。在这种情况下,名称非常不典型。
}\b?\u0011ebc-2015.04.08.02\u000Bsip-request{ }\u0006?\u0011ebc-2015.04.08.03\u000Bsip-request{ }\u0003?\u0011ebc-2015.04.08.03\fsip-response ...
Curator 允许您使用正则表达式来选择要对其执行操作的索引。
在尝试执行操作之前,请首先使用 --dry-run
标志查看将受影响的内容。
要删除上述示例中的前三个,请使用 '.*sip.*'
作为您的正则表达式。
在 操作文件中,正则表达式和 strftime 日期字符串**必须**用单引号括起来。
下一个更棘手。索引的真实名称是 \n\u0011eb
。正则表达式 .*b$
不起作用,但 '\n.*'
起作用。
最后一个索引可以用正则表达式 '.*e$'
删除。
生成的 操作文件 可能如下所示
actions: 1: description: Delete indices with strange characters that match regex '.*sip.*' action: delete_indices options: continue_if_exception: False disable_action: False filters: - filtertype: pattern kind: regex value: '.*sip.*' 2: description: Delete indices with strange characters that match regex '\n.*' action: delete_indices options: continue_if_exception: False disable_action: False filters: - filtertype: pattern kind: regex value: '\n.*' 3: description: Delete indices with strange characters that match regex '.*e$' action: delete_indices options: continue_if_exception: False disable_action: False filters: - filtertype: pattern kind: regex value: '.*e$'