Как собрать журналы удаленных секционированных приложений весенней партии со всех серверов на один сервер с помощью Rsyslog?

У меня есть вариант использования, когда мое приложение для ежедневной пакетной обработки (весеннее пакетное Java-приложение с использованием удаленного разделения) развертывается на 4 серверах, и приложение создает файл журнала журнала в ежедневной пакетной папке.

например пакет с идентификатором пакета 2014-07-15 сохраняет журнал в /var/log/myapp/2014-07-15/batch.log

Я хочу собирать логи со всех серверов и собирать в один лог-файл на мастере (мастер - один из 4-х серверов).

Я пытаюсь использовать Rsyslog для этой цели. Но если есть другое лучшее решение, пожалуйста, предложите.

1) Как мне прочитать журналы из файла /var/log/myapp/2014-07-15/batch.log, путь которого является динамическим, и отправить его мастеру?

2) Как собирать журналы, поступающие со всех серверов приложения myapp, и сохранять их в файле журнала /var/log/myapp/2014-07-15/batch.log на главном сервере (путь к файлу журнала будет одинаковым на всех серверах для приложения myapp). партия).

Я ссылался на документацию и руководства здесь

http://www.rsyslog.com/guides-for-rsyslog/

но не могу понять, как отправить журнал, прочитанный из файла, на другой сервер? Как использовать динамические пути, хотя я нашел

$template DynFile,"/var/log/%HOSTNAME%/%programname%.log"

Я новичок в rsyslog, поэтому немного сложно собрать всю эту информацию для достижения моего варианта использования. Было бы здорово помочь, если бы кто-то мог помочь мне достичь этого.

Что-то вроде этого ?

#On master server
$ModLoad imtcp
$InputTCPServerRun 10514

$template DynFile,"/var/log/$now/batch.log"

# where $now    The current date stamp in the format YYYY-MM-DD
# referred this - http://ftp.ics.uci.edu/pub/centos0/ics-custom-build/BUILD/rsyslog-3.19.7/doc/property_replacer.html

if syslogtag isequal "myapp" then ?DynFile


#On slaves machins

$template DynFile,"/var/log/$now/batch.log"

module(load="imfile" PollingInterval="10")

input(type="imfile" File=?DynFile Tag="myapp" StateFile="/var/spool/rsyslog/statefile1")

. @@[SERVER_IP]

Кроме того, как должна быть настроена конфигурация StateFile, поскольку для разных партий будут разные файлы журналов пакетов, и поэтому они должны использовать разные файлы StateFile для каждого файла журнала пакетов? Как настроить Dynamic StateFile?


person vishal    schedule 15.07.2014    source источник


Ответы (1)


Возможно, вы захотите взглянуть на проект logstash (также известный как стек ELK). Это делает управление вашими журналами намного более приятным и предоставляет вам некоторые действительно полезные функции поиска.

person HughJ    schedule 18.07.2014