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

Отправляет ли rsyslogd новую информацию или весь файл журнала при перезапуске

Я пытаюсь использовать rsyslog на машине Debian для отправки данных журнала на внешний сервер.

Интересующие меня файлы журналов содержат около 10 ГБ исторических данных.

Когда я начал настраивать rsyslog, у меня создалось впечатление, что он начнет отправлять все новые записи журнала на сервер, но специалист по обслуживанию целевого сервера сказал мне, что я отправил более 10 ГБ данных. Я перезапускал rsyslogd несколько раз.

Мне интересно, если по умолчанию он отправляет все журналы с начала времени, а не только новые?

Вот как выглядит мой файл конфигурации

$ModLoad imfile
$InputFilePollInterval 10
$PrivDropToGroup adm
$WorkDirectory /var/spool/rsyslog

####################
# Nginx Access Log #
####################
# Input for Nginx Access Log
$InputFileName /var/log/nginx/myapp.access.log
$InputFileTag nginx-access
$InputFileStateFile stat-nginx-access #this must be unique for each file being polled
$InputFileSeverity info
$InputFilePersistStateInterval 20000
$InputRunFileMonitor

# Add a tag for file events
$template NginxAccessFormat,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %hostname% %app-name% %procid% %msgid% [SecretKey@41058 tag=\"myapp-nginx-access\"] %msg%\n"

# Send to Loggly then discard
if $programname == 'nginx-access' then @@server.loggly.com:514;NginxAccessFormat
if $programname == 'nginx-access' then ~

######################
# Nginx Access Error #
######################
# Input for Nginx Error Log
#$InputFileName /var/log/nginx/myapp.error.log
#$InputFileTag nginx-error
#$InputFileStateFile stat-nginx-error #this must be unique for each file being polled
#$InputFileSeverity info
#$InputFilePersistStateInterval 20000
#$InputRunFileMonitor

# Add a tag for file events
#$template NginxErrorFormat,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %hostname% %app-name% %procid% %msgid% [SecretKey@41058 tag=\"myapp-nginx-error\"] %msg%\n"

# Send to Loggly then discard
#if $programname == 'nginx-error' then @@server.loggly.com:514;NginxErrorFormat
#if $programname == 'nginx-error' then ~

#############
# PHP Error #
#############
# Input for PHP Error Log
#$InputFileName /var/log/hhvm/error.log
#$InputFileTag php-error
#$InputFileStateFile stat-php-error #this must be unique for each file being polled
#$InputFileSeverity info
#$InputFilePersistStateInterval 20000
#$InputRunFileMonitor

# Add a tag for file events
#$template PhpErrorFormat,"<%pri%>%protocol-version% %timestamp:::date-rfc3339% %hostname% %app-name% %procid% %msgid% [SecretKey@41058 tag=\"myapp-hhvm-error\"] %msg%\n"

# Send to Loggly then discard
#if $programname == 'php-error' then @@server.loggly.com:514;PhpErrorFormat
#if $programname == 'php-error' then ~

Вот информация о версии rsyslogd

rsyslogd -v
rsyslogd 8.4.2, compiled with:
    FEATURE_REGEXP:             Yes
    GSSAPI Kerberos 5 support:      Yes
    FEATURE_DEBUG (debug build, slow code): No
    32bit Atomic operations supported:  Yes
    64bit Atomic operations supported:  Yes
    memory allocator:           system default
    Runtime Instrumentation (slow code):    No
    uuid support:               Yes
    Number of Bits in RainerScript integers: 64

See http://www.rsyslog.com for more information.

Да, по умолчанию он начнет получать журналы с самого начала, хотя он будет записывать файл состояния, чтобы запомнить, где он остановился. Я предполагаю, что вы можете удалить файл состояния, повернуть файл, о котором идет речь, и начать заново, если вам нужны только новые журналы.

Кроме того, я бы предложил обновить rsyslog до последней стабильной версии (теперь 8.14.0), поскольку с 8.4.2 было добавлено много исправлений, связанных с imfile (см. журнал изменений Больше подробностей).