【问题标题】:Can someone explain the =~ operator in logstash?有人可以解释 logstash 中的 =~ 运算符吗?
【发布时间】:2017-12-01 07:29:27
【问题描述】:

以下过滤器失败给定的配置无效。原因:在第 23 行第 1 列(字节 308)中应为 /、/ 中的任何一个字符(字节 308),因为末尾缺少“/”。它必须是 /path/。如果不以“/”终止,logstash 似乎会将 /path 之后的所有内容解释为正则表达式的一部分。

filter {
    if [message] =~ /path {
        drop { }
    }
}
  1. 我知道 /path/ 是一个正则表达式,但在这种情况下,正斜杠是什么意思?
  2. 我的模式会匹配任何包含 /path 的日志行吗?

很遗憾,在 official docs 中找不到任何内容。

【问题讨论】:

    标签: logstash logstash-configuration


    【解决方案1】:

    两个/ 之间是模式,/ 只是分隔符,将模式与配置的其余部分分开。

    因此,如果您有[message] =~ /path/,它将检查字段消息是否包含字符串path。要匹配/path,您需要使用/\/path/

    【讨论】:

    • 谢谢。有没有写在哪里?
    • @kev 不明确。但是我可能已经看过一些logstash配置的例子,所以我想我在那里理解了。在 / 之间编写正则表达式模式的方式也存在于其他地方(参见 en.wikipedia.org/wiki/Regular_expression#Delimiters,它与 sed 或其他人一起使用)。
    猜你喜欢
    • 2011-04-05
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2012-05-29
    • 2010-12-13
    相关资源
    最近更新 更多