Jeffrey L. Roberts Asked: 2013-04-06 14:28:17 +0800 CST2013-04-06 14:28:17 +0800 CST 2013-04-06 14:28:17 +0800 CST 远程 Apache 日志记录 772 我一直在研究 apache 日志的远程记录,我发现的所有内容都涉及到记录器的管道。 两个问题: 还有其他方法可以远程记录 apache 日志吗? 到记录器的管道是否稳定? 谢谢! 杰夫 apache-2.2 3 个回答 Voted Ari Maniatis 2013-04-06T16:05:19+08:002013-04-06T16:05:19+08:00 我们使用logstash,一种开源日志聚合工具。它可以从多台机器中提取 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 会记住它到达的位置)并且具有非常漂亮的 UI 和搜索功能。 Best Answer Mark Wagner 2013-04-06T15:15:12+08:002013-04-06T15:15:12+08:00 1) 如标记所示,rsyslog 可以执行此操作。将日志写入文件并使用http://www.rsyslog.com/doc/imfile.html。 2)是的。logger是一个稳定的程序 apache 的管道机制是稳定的(例如,管道rotatelogs已经使用了很长一段时间)。 Stefan Lasiewski 2013-04-06T15:23:31+08:002013-04-06T15:23:31+08:00 到记录器的管道是否稳定? 许多程序将它们的输出通过管道传输到logger. 它与任何其他软件一样稳定。 logger很简单,只是工作。logger利用您现有的系统日志配置。它不需要对 syslog 或 rsyslog 进行任何调整,也不需要向需要日志的用户授予超级用户。Logger 将日志发送到本地系统上的 syslog,而 syslog 会处理其余部分。 请注意,系统日志历来使用 UDP,而 UDP 旨在成为一种低开销、“不可靠”的协议。请参阅RFC5426 -“通过 UDP 传输 Syslog 消息”,“4. 可靠性考虑”部分。如果您想要可靠的系统日志,请使用 TLS,请参阅RFC5425,系统日志的传输层安全性 (TLS) 传输映射。
我们使用logstash,一种开源日志聚合工具。它可以从多台机器中提取 Apache 日志,也可以从许多其他应用程序中提取日志。最好的方法是将 apache httpd 日志的输出格式化为 json 格式,如下所示:
然后安装 logstash 并将所有日志收集到中央服务器中。它是可靠的,在网络中断后仍然存在(logstash 会记住它到达的位置)并且具有非常漂亮的 UI 和搜索功能。
1) 如标记所示,rsyslog 可以执行此操作。将日志写入文件并使用http://www.rsyslog.com/doc/imfile.html。
2)是的。
logger
是一个稳定的程序 apache 的管道机制是稳定的(例如,管道rotatelogs
已经使用了很长一段时间)。许多程序将它们的输出通过管道传输到
logger
. 它与任何其他软件一样稳定。logger
很简单,只是工作。logger
利用您现有的系统日志配置。它不需要对 syslog 或 rsyslog 进行任何调整,也不需要向需要日志的用户授予超级用户。Logger 将日志发送到本地系统上的 syslog,而 syslog 会处理其余部分。请注意,系统日志历来使用 UDP,而 UDP 旨在成为一种低开销、“不可靠”的协议。请参阅RFC5426 -“通过 UDP 传输 Syslog 消息”,“4. 可靠性考虑”部分。如果您想要可靠的系统日志,请使用 TLS,请参阅RFC5425,系统日志的传输层安全性 (TLS) 传输映射。