【问题标题】:How to get the tags of the rule matched by mmnormalize如何获取mmnormalize匹配的规则的标签
【发布时间】:2016-02-29 00:19:03
【问题描述】:

我写了一些 liblognormalize 规则来解析 postgresql 日志。 我的规则文件包含两个规则,每个规则都有一些标签,例如:

rule=POSTGRESQL,CHECKPOINT: ....
rule=POSTGRESQL,SLOWQUERY: ....

在我的 rsyslog 配置中运行 mmnormalize 后,我想知道哪个规则实际上与正在处理的日志行匹配。最简单的解决方案是获取标签。我知道 mmnormalize 会导出一些变量,例如 $parsesuccess。是否有包含所用规则标签的变量?

【问题讨论】:

    标签: rsyslog


    【解决方案1】:

    我不知道我在文档中的哪里找到它,但在我前段时间编写的 rsyslog 配置文件中,我发现我可以通过 rsyslog 中的event.tags 访问 liblognorm 分配给消息的标签列表。

    我有例子

    template( # ...
      property(name="$!event.tags")
    )
    

    if $!event.tags != "" then { # ...
    

    【讨论】:

      【解决方案2】:

      解决方案似乎是annotate 功能:

      rule=POSTGRESQL,CHECKPOINT: ....
      annotate=CHECKPOINT:+checkpoint="complete"
      

      基本上,annotate 行会将包含值complete 的字段checkpoint 添加到与带有标签CHECKPOINT 的规则匹配的所有日志行中

      找到它here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-14
        • 2013-02-10
        • 2023-02-05
        • 2011-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多