Назад | Перейти на главную страницу

Как перенаправить сторонние журналы на сервер журналов в Centos

Я хочу настроить простой сервер журналов для приема журналов от всех клиентов. Я не говорю о стандартных системных журналах, таких как / 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)); 
};