我可以使用 netcat 进行集中日志记录吗?

我可以使用 netcat 进行集中日志记录吗?

我有多个 Apache 服务器,我想集中管理它们的访问日志。我想知道是否可以使用命名管道和 netcat 来实现这一点,但我担心可能会发生以下两种情况:

  1. 中央日志将无法读取,因为如果 2 个服务器恰好同时写入日志,netcat 只会合并 2 个日志行。例如,第一个日志行将写入一半,然后另一个开始。所以问题是 netcat 是否有某种针对这种竞争条件的保护措施?

  2. 如果 netcat 崩溃,Apache 进程将被阻止,因为它将无法再写入命名管道,因为没有进程会从此管道读取数据。这是一个合理的担忧吗?

我计划的设置如下:

  • 在共享存储服务器上,我将运行类似nc -l [port_number] > shared_access_log

  • 在每台装有 Apache 的机器上,我都会运行类似nc [ip_of_shared_server] [port_number] < [path_to_named_pipe]

  • 然后我将把每个 Apache 服务器访问日志指向命名管道。

关于我对混合日志条目的第一个担忧,我当时正在考虑在共享服务器上编写一个简单的服务器,它将确保按照从其他每个服务器接受日志条目的顺序写入日志条目。但我不确定这是否真的有必要。

谢谢!

相关内容