Я хочу настроить простой сервер журналов для приема журналов от всех клиентов. Я не говорю о стандартных системных журналах, таких как / var / log / mail, message, boot и т. Д. Я хочу перенаправить или отправить журналы приложений, и они могут вообще не использовать демон syslog для записи своих сообщений.
Например, /appdir/log/error.log.
Я наткнулся на много сообщений в Интернете; большинство советует использовать rsyslog или syslog-ng. До сих пор мне удавалось перенаправлять стандартные системные журналы, а не журналы приложений. Я использую среду centos 5/6.
Я видел два основных подхода к этому.
Во-первых, многие приложения будут иметь возможность писать на хост системного журнала изначально. Это лучший путь. В других случаях я буду использовать базовый сценарий - работает что-то вроде показанного ниже.
sudo tail /my/app/log | nc -w0 -u 192.168.1.1 514
EDIT - действительно есть способ справиться с этим в syslog-ng, если вы запускаете его в системе, генерирующей журналы. При необходимости замените соглашение об именах и место назначения. Что-то похожее также доступно для rsyslog, но оно более громоздкое (imho).
source s_trbdk3 {
file("/var/log/trbdk3.log" flags(no-parse) program_override("trbdk3") );
};
log{
source(s_trbdk3);
destination( d_mesg );
};
rsyslog's imfile
Модуль ввода может:
Предоставляет возможность конвертировать любой стандартный текстовый файл в сообщение системного журнала. Стандартный текстовый файл - это файл, состоящий из печатаемых символов со строками, разделенными LF.
Ты можешь читать официальная документация для большего.
Я никогда не пробовал его, и он может быть не очень эффективным, но похоже, что он может работать.
syslog-ng, похоже, может сделать что-то подобное со своим file()
исходный драйвер. Этот пример предлагает такое объявление источника:
source s_all {
file("/path/to/your/file" follow_freq(1) flags(no-parse));
};