【问题标题】:Fluentd match tag wildcard pattern matching patterns below it too?Fluentd match tag 通配符模式匹配下面的模式呢?
【发布时间】:2019-10-01 06:55:39
【问题描述】:

在 Fluentd 配置文件中我有这样的配置

<match a.b.**.stag>

在它下面还有一个匹配标签如下

<match a.b.c.d.**>

现在根据文档** 将匹配零个或多个标签部分。但是,我有点怀疑第二个标签是否会被匹配,或者事件是否会被第一个 <match> 本身吞噬。我要确认的是第一个标签将匹配那些本来会匹配第二个事件的事件? 第二个match 的目标事件中没有stag 但其余的与第一个匹配标签目标事件相同。

【问题讨论】:

    标签: regex fluentd


    【解决方案1】:

    我要确认的是,第一个标签将匹配那些原本会匹配第二个事件的事件?

    这真的取决于输入,所以:不,一般情况下并非如此。

    +--------------+------------------------+-----------------------+
    | Tag          | Matched by a.b.**.stag | Matched by a.b.c.d.** |
    +--------------+------------------------+-----------------------+
    | a.b.c.stag   | X                      |                       |
    | a.b.c.d.stag | X                      | X                     |
    | a.b.c.d.e    |                        | X                     |
    | a.b.c.stag.e |                        |                       |
    +--------------+------------------------+-----------------------+
    

    但作为一般规则,在紧密匹配之后定义广泛匹配。

    如果您需要一个匹配来排除不应被以下更紧密匹配接受的特定标签(例如,如果您不希望您的第二个匹配包含任何带有stag 的标签),请考虑使用模式列表:

    <match a.b.c.stag a.b.d.stag>

    或模式组合:

    <match a.b.{c,d.*}.stag>

    这些只是示例,因为我不知道所有可能的标签的范围。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-19
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多