я использую rsyslog
пересылать записи системного журнала с кучи серверов на Loggly
Конфигурация выглядит примерно так:
# Config for loggly upload
*.* @@logs.loggly.com:12345
Это работает, но поскольку это пересылка, любые записи журнала, которые происходят при отсутствии подключения к Интернету, никогда не попадают в журнал.
Можно ли каким-либо образом настроить rsyslog для «хранения» записей журнала, пока не будет установлено подключение к Интернету, а затем их отправки? Или есть другой инструмент, который я должен использовать для этого?
Rsyslog может буферизовать сообщения на диск, если он не может связаться с удаленным сервером. По умолчанию rsyslog.conf
в моей системе Fedora есть следующий пример:
# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
#$WorkDirectory /var/lib/rsyslog # where to place spool files
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
#$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
#$ActionQueueType LinkedList # run asynchronously
#$ActionResumeRetryCount -1 # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
#
### end of the forwarding rule ###
Конфигурация подробно объясняется в этот документ.
syslog-ng может буферизовать журналы на диск, если не может отправить их на сервер.
destination d_tcp { tcp(“logserver” log_disk_fifo_size(100000000)); };