【问题标题】:Syslog format and syslog-ng filtersSyslog 格式和 syslog-ng 过滤器
【发布时间】:2016-02-03 08:52:46
【问题描述】:

我无法理解我在这个 syslog-ng 过滤器中缺少什么。 首先这是日志消息:

<22>Nov 3 09:57:44 logon avaya: 2015/11/03 09:57:44,00:00:01,1,0,103456456156,I,#AA:Poa,1231231123231,,0,1017121,0,T9002,Line 2.1,V9542,VM Channel 42,0,0,,,,,,,,,,,,,

这是 syslog-ng 配置的过滤器:

filter f_avaya{
        program("avaya");
};

在调试模式下运行 syslog-ng 我看到该消息与过滤器不匹配,为什么?

【问题讨论】:

  • 您好,可能由于某种原因,邮件头没有正确解析。
  • 当然,但在我看来这是一种有效的格式...
  • 如果您有最新的 syslog-ng 版本,您可以尝试以 JSON 格式输出消息以查看每个宏,或者仅使用消息头的宏创建模板以查看问题所在。或者源是否有可能设置了标志(无解析)?
  • 我想使用未经解析的原始消息,我也尝试删除消息的第一个字段(日期)的空格,但问题仍然发生。

标签: syslog syslog-ng


【解决方案1】:

您的消息无效,因为标头中缺少进程 ID:

<22>Nov 3 09:57:44 logon avaya: 

如果你没有身份证,应该是这样的

<22>Nov 3 09:57:44 logon avaya[0]: 

【讨论】:

    【解决方案2】:

    悲哀的答案是:日期格式当天小于 10 时填 0。

    <22>Nov 3 09:57:44...
    

    应该是:

    <22>Nov 03 09:57:44...
    

    【讨论】:

    • 好吧,您可以在github.com/balabit/syslog-ng/issues 提交有关此问题的问题,或者,在 syslog-ng OSE 3.7 中,您可以用 Python 编写自定义解析器,但它还没有真正记录在案(我希望这样做一两周内完成)。在那之前,这篇博文可以给你一些指点:guest.blogs.balabit.com/2015/09/…
    • 还好可以从日志源改,不知道是不是syslog-ng的问题,可能日期格式应该在day date部分填0。 ..我不知道。
    • RFC 指定了日期格式,因此如果天数小于 10,则需要在天数前面留一个空格。这是为了确保时间戳具有相同的长度,无论我们是否在前 10 天月与否。这不是 syslog-ng 本身的错误,仍然令人困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    相关资源
    最近更新 更多