使用 logstash grok 过滤器屏蔽部分信用卡号

Mask a part of creditcard number using logstash grok filter

正在尝试屏蔽 16 位信用卡的一部分(第 6-10 位)。

1234567898763456123456######3456

我可以考虑使用 gsub 过滤器,但我找不到匹配数字的确切部分的方法。

选项是拆分成不同的部分,然后将整个字段 gsub 到“#”,然后重新加入,这似乎工作量太大。欢迎任何建议。

下面的示例将屏蔽所有字符,我如何屏蔽从第 6 位到第 10 位的选择性模式,以获得类似于 123456######3456.

的结果
filter
{
  mutate {
    gsub => [
      "message","[0-9]{16}","################"   
    ]
  }
}
filter {
    mutate {
    gsub => [
      "message","([0-9]{6})([0-9]{6})([0-9]{4})", "######"
    ]
  }
}