远程 Apache 日志记录

远程 Apache 日志记录

我一直在研究 apache 日志的远程日志记录,我发现的所有内容都涉及管道传输到记录器。

两个问题:

  1. 还有其他方法可以远程记录 apache 日志吗?
  2. 通向记录器的管道是否稳定?

谢谢你!

杰夫

答案1

1)如标签所示,rsyslog 可以做到这一点。将日志写入文件并使用http://www.rsyslog.com/doc/imfile.html

2)是的。logger是一个稳定的程序 apache 的管道机制是稳定的(例如,管道rotatelogs已经使用了很长一段时间)。

答案2

我们用日志存储,一个开源日志聚合工具。它可以从多台机器中提取 Apache 日志,也可以从许多其他应用程序中提取日志。最好的方法是将 apache httpd 日志的输出格​​式化为 json 格式,如下所示:

LogFormat "{ \"@timestamp\": \"%{%Y-%m-%dT%H:%M:%S%z}t\", \"@fields\": { \"client\": \"%{X-Forwarded-For}i\", \"virtualhost\": \"%{Host}i\", \"duration_usec\": %D, \"status\": %s, \"request\": \"%U%q\", \"method\": \"%m\", \"referrer\": \"%{Referer}i\" } }" logstash_json

然后安装 logstash 并让其将所有日志收集到中央服务器中。它非常可靠,能够经受住网络中断(logstash 会记住它所处的位置),并且具有非常漂亮的用户界面和搜索功能。

答案3

  1. 通向记录器的管道是否稳定?

许多程序将其输出通过管道传输到logger。它与任何其他软件一样稳定。

logger简单易用。logger利用您现有的 syslog 配置。它不需要对 syslog 或 rsyslog 进行任何调整,也不需要向需要日志的用户授予超级用户权限。记录器将日志发送到本地系统上的 syslog,然后 syslog 处理其余部分。

请注意,syslog 过去一直使用 UDP,UDP 旨在成为一种低开销、“不可靠”的协议。请参阅RFC5426 - “通过 UDP 传输 Syslog 消息”,第 4. 可靠性注意事项部分。如果您想要可靠的系统日志,请使用 TLS,请参阅RFC5425,Syslog 的传输层安全性 (TLS) 传输映射

相关内容