微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

日志不符合我的任何条件,但它应该

如何解决日志不符合我的任何条件,但它应该

首先这是关于我的架构的信息:

  • 软件:Rsyslog v8.24
  • 操作系统:Debian 9.13
  • 文件:/etc/rsyslog.d/splunk.conf
  • 文件语言:高级或 RainerScript

我的文件中有这 3 行:

# Aruba Networks logs filtering
ruleset(name="ArubaNetworksPort") {
    if (re_match($msg,"AP:aaa-bbb01-ccc-ap")) then {
        action(type="omfile" dynaFile="ArubaNetworksPath")
}
# VMware ESX logs filtering
ruleset(name="EsxPort") {
    if (re_match($hostname,"tree-[a-zA-Z]{3}to[0-9]{3}")) then {
        action(type="omfile" dynaFile="EsxPath")
    }
}
# Unclassified logs filtering
ruleset(name="RemoteLogPort") {
    *.* action(type="omfile" dynaFile="RemoteLogPath")
}
template (name="ArubaNetworksPath" type="string" string="/var/log/rsyslog/aruba-networks/%FROMHOST%/aruba-networks.log") 
template (name="EsxPath" type="string" string="/var/log/rsyslog/esxvmware/%FROMHOST%/esxvmware.log")
template (name="RemoteLogPath" type="string" string="/var/log/remote/unclassified/%FROMHOST%/unclassified.log") 

input(type="imudp" port="514" ruleset="ArubaNetworksPort") 
input(type="imudp" port="514" ruleset="EsxPort")
input(type="imudp" port="514" ruleset="RemoteLogPort")

当我直接检查日志时,我在消息或侦听器的主机名中看到它与我的过滤器匹配,同时日志转到“RemoteLogPath”而不是“ArubaNetworksPath”或“EsxPath”。

知道发生了什么吗?如果你需要一些信息,我可以提供一些东西,尽管问我。

解决方法

您不能将相同的输入绑定到多个规则集。例如,参见此 issue。 你可能只想要这样的东西:

ruleset(name="RemoteLogPort") {
 if (re_match($msg,"AP:aaa-bbb01-ccc-ap")) then {
    action(type="omfile" dynaFile="ArubaNetworksPath")
 } else if (re_match($hostname,"tree-[a-zA-Z]{3}to[0-9]{3}")) then {
    action(type="omfile" dynaFile="EsxPath")
 } else {
    action(type="omfile" dynaFile="RemoteLogPath")
 }
}
input(type="imudp" port="514" ruleset="RemoteLogPort")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。