У меня есть вариант использования, когда мое приложение для ежедневной пакетной обработки (весеннее пакетное 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?