Могу ли я использовать netcat для централизованного ведения журнала?

У меня есть несколько серверов Apache, и я хочу централизовать их журналы доступа. Интересно, могу ли я использовать именованные каналы и netcat для этого, однако я боюсь, что могут произойти 2 вещи:

  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 к указанному каналу.

Что касается моей первой проблемы со смешанными записями журнала, я думал о том, чтобы написать простой сервер на общем сервере, который обязательно запишет записи журнала в порядке принятия их от каждого из других серверов. Но я не уверен, действительно ли это необходимо.

Спасибо!

0 ответов

Другие вопросы по тегам