我对 syslog-ng 相当陌生,并且遇到以下问题。
我有一个 Checkpoint 防火墙,它将日志发送到 Splunk 服务器。由于防火墙发送的数据量很大,我尝试过滤掉不需要的日志。由于这在防火墙或 Splunk 上都是不可能的,因此我现在将防火墙日志发送到 syslog-ng 服务器,该服务器会过滤掉不需要的消息,并通过 Splunk 转发器将其余日志转发到 Splunk。Syslog-ng 服务器上的日志定义如下所示:
log { source { network(transport(tcp) port(12001) flags(no-parse)); };
解析器 { 检查点解析器(); };
过滤器 { 不匹配(“Application_Allow_all”,值(“MESSAGE”)); };
目的地{ 文件(“/var/log/syslog-ng/checkpoint.txt”); };
};
80% 的防火墙日志包含“Application_Allow_all”,我们在 Splunk 服务器上不需要它。到目前为止一切顺利,过滤器工作正常。
现在来说说问题。我需要在 Splunk 服务器上保留包含“Web 服务器访问”的防火墙日志。但包含“Webserver access”的防火墙日志条目也包含“Application_Allow_all”。
我不知道如何组合两个过滤器,而且到目前为止我在互联网上找到的方法都不起作用。我已尝试以下操作:
filter { match("Webserver access", value("MESSAGE")); };
过滤器 { 不匹配(“Application_Allow_all”,值(“MESSAGE”)); };
通过这些过滤器,我现在只获取包含“Webserver 访问”的日志,而没有其他内容。第二个过滤器似乎被忽略了。这是日志条目在 Splunk 服务器上的外观:
“rule_action=Accept |rule_name=Webserver access |rule_name=Application_Allow_all”
我想要实现的是将包含“Webserver Access”的日志由 syslog-ng 转发到 Splunk 服务器,而包含“Application_Allow_all”的所有其他日志都将被丢弃。
欢迎任何想法。
主页
/
user-517218