Могу ли я использовать netcat для централизованного ведения журнала?
У меня есть несколько серверов Apache, и я хочу централизовать их журналы доступа. Интересно, могу ли я использовать именованные каналы и netcat для этого, однако я боюсь, что могут произойти 2 вещи:
Центральный журнал будет нечитаемым, потому что, если в журнал одновременно будут записываться 2 сервера, netcat просто объединит 2 строки журнала. Например, первая строка журнала будет записана пополам, а затем начинается вторая. Итак, вопрос в том, имеет ли netcat какую-то защиту от этого состояния гонки?
В случае сбоя netcat процесс Apache будет заблокирован, поскольку он больше не сможет выполнять запись в именованный канал, поскольку ни один процесс не будет читать из этого канала. Это действительная проблема?
Планирование, которое я планирую, выглядит следующим образом:
На сервере общего хранилища я буду запускать что-то вроде
nc -l [port_number] > shared_access_log
На каждой машине с Apache я буду запускать что-то вроде
nc [ip_of_shared_server] [port_number] < [path_to_named_pipe]
Затем я укажу каждому журналу доступа к серверу Apache к указанному каналу.
Что касается моей первой проблемы со смешанными записями журнала, я думал о том, чтобы написать простой сервер на общем сервере, который обязательно запишет записи журнала в порядке принятия их от каждого из других серверов. Но я не уверен, действительно ли это необходимо.
Спасибо!