【问题标题】:syslog messages coming from HP switches cannot be filtered correctly in syslog-NG?来自 HP 交换机的 syslog 消息无法在 syslog-NG 中正确过滤?
【发布时间】:2017-07-26 21:06:54
【问题描述】:

我在过滤来自几个来源(HP 交换机)的消息时遇到了一些问题,我希望得到一些建议。

我有一个巨大的 syslog-NG 配置文件,用于过滤来自许多不同来源(Unix 服务器、NAS 文件管理器、设备等)的消息

我通常使用 host() 函数,或者 filter(),甚至 program() 来过滤消息。

但是,我在过滤来自某些 HP 交换机(网络和 san 交换机)的消息时遇到问题,而消息格式似乎是正确的。

例如,我正在接收如下消息:

Mar 14 10:40:48 switchname program: message contents here

我创建了一个这样的过滤器(稍后在日志函数中使用):

filter f_network {
    host("switch*");
};

但它不起作用(当所有其他人都在工作时,对于其他类型的设备) 我也尝试过滤程序名称,同样的问题。

有没有办法对此进行调查并了解它为什么不起作用? 也许消息的格式不同,主机字段不是这个(我尝试了所有其他字段,但没有成功)

当使用 tcpdump 嗅探网络接口时,我可以看到一条正常消息(显然没有隐藏特殊字符或其他字符,但也许我没有使用正确的标志)

有什么方法可以检查吗?

谢谢 问候

【问题讨论】:

  • 您好,消息开头似乎缺少优先级 (PRI) 值。 AFAIK,它应该看起来像这样:
  • 您好,消息开头似乎缺少优先级 (PRI) 值。 AFAIK,它应该看起来像这样:Feb 25 14:09:07 webserver syslogd: restart。阅读此类消息时,您可以使用虚拟目标来检查 syslog-ng 宏的值吗?类似于:destination d_file { file ("/var/log/messages" template("pri=${priority} date=${ISODATE} host=${HOST} program=${PROGRAM} message=${MSG}\ n")); };如果问题是宏值不匹配,那么您的开关没有正确格式化消息。
  • 谢谢你,罗伯特,我会试试,让你知道它显示了什么!这就是我一直在寻找的东西(即模板)。如果消息没有良好的格式会发生什么?它会用移位的字段进行处理吗?还是根本不处理?
  • 您好,这取决于消息被破坏的严重程度。如果仅缺少 PRI 字段,我猜这些字段将被移动,并且可能其中一些包含无效值(垃圾)。如果您可以验证这是问题所在,我们将找出解决方法(作为第一次尝试,可能使用 flags(no-parse) 选项)。
  • 嗨罗伯特,我刚刚做了其他检查,有点明白为什么它不起作用,这取决于我有多种消息的开关。我试过你的命令,它没有记录任何东西,所以我想 syslog-ng 甚至没有解析消息!我嗅探了 agan 接口,例如,我可以看到此日志,其中字段混乱:raslogd: 2017/03/08-16:03:20, [SEC-1203], 53642, WWN 10:00: 50:eb:1a:6c:21:38 | FID 128,INFO,cswc-mo8x-SAN01,登录信息:TELNET/SSH/RSH登录成功。 IP 地址:1.2.3.4 有没有办法过滤这个日志?

标签: filter syslog syslog-ng


【解决方案1】:

这个问题以某种方式解决了(因为优先级)。

我在这里为另一个错误创建了一个新主题,其中包含更复杂的系统日志消息:unable to filter badly-formatted messages in syslog-ng

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多