使用 syslog-ng 对多个 Apache 虚拟主机进行远程日志记录

使用 syslog-ng 对多个 Apache 虚拟主机进行远程日志记录

我正在运行几个 Apache Web 服务器,每个服务器都有 4-8 个独立的虚拟主机。我正在尝试设置一个专用日志服务器,将每个虚拟主机的访问和错误日​​志存储在该虚拟主机的单独目录中。

例如在日志服务器上,
/var/log/remove/10.0.0.2/virtualhost1 包含 access_log 和 error_log
/var/log/remove/10.0.0.2/virtualhost2 包含 access_log 和 error_log /var/log/remove/10.0.0.3/virtualhost3 包含 access_log 和 error_log
等等...

现在我已经按主机进行了拆分,但我不知道如何通过虚拟主机进行拆分。以下是日志服务器的 syslog-ng.conf 中的相关行

源 r_src { tcp(ip("0.0.0.0") 端口(5140)); };
目标 r_all { 文件("/opt/splunk/logs/$HOST"); };
日志 { 源(r_src); 目标(r_all); };

任何帮助都将不胜感激。谢谢!

答案1

我认为这应该可以回答你的问题:

摘要:syslog-ng 可以从日志消息中提取字段,然后您可以在模板替换中使用这些字段。只要您在 Apache 日志中记录虚拟主机名 (%v),您就应该拥有所需的所有信息。

相关内容