Як переслати певний файл журналу поза / var / log з rsyslog на віддалений сервер?


25

Як я можу переслати повідомлення з певного файлу журналу, наприклад /www/myapp/log/test.logз rsyslogклієнтом, на віддалений rsyslogсервер? Цей файл журналу знаходиться поза каталогом /var/log.

Відповіді:


43

Просто встановіть правило imfile у своєму /etc/rsyslog.conf

#/etc/rsyslog.conf
$ModLoad imfile
$InputFileName /data/mysql/error.log
$InputFileTag mysql-error
$InputFileStateFile stat-mysql-error
$InputFileSeverity error
$InputFileFacility local3
$InputRunFileMonitor
local3.* @@hostname:<portnumber>

Це переглядає файл і зберігається в локальному закладі3 в syslog. Тоді ви можете надіслати всі дані з локального об'єкта3 на віддалений сервер. Ви також можете додати наступне до свого rsyslog conf (зазвичай /etc/rsyslog.d/50-default.conf в Ubuntu), щоб не зберігати локальний об'єкт3 в / var / log / syslog:

#/etc/rsyslog.d/50-default.conf
*.*;auth,authpriv.none,local1.none,local2.none,local3.none,local4.none,local5.none,local6.none          -/var/log/syslog

Крім того, я б закликав прочитати наступні документи rsyslog для більш вдосконаленої фільтрації:

  1. Замінник майна
  2. Умови фільтра

Це дуже корисно, дякую Брайан. Моя єдина проблема тут - це позбавити зайвих журналів з боку клієнта / var / log / syslog не працює для мене на Ubuntu 12.04. Можливо, PEBKAC, але мені цікаво, чи це відомий виклик?
Джеймс Т Снелл

1
Зрозумів це. Моя проблема полягала в тому, що /etc/rsyslog.d/50-default.conf вже мав заяву, починаючи з . ; auth; authpriv.none .. Цей рядок, здається, має перевагу. Отже, додавши останній рядок, який ви надали, це не має ефекту. Натомість попередньо подібний повинен бути модифікований. Дуже корисний. Спасибі!
Джеймс Т Снелл

1

У ubuntu мені довелося також прокоментувати рядки привілеїв для скидання, щоб заставити rsyslog фактично читати файл журналу поза / var / logs.

#/etc/rsyslog.conf
$ModLoad imfile
$InputFileName /data/mysql/error.log
$InputFileTag mysql-error
$InputFileStateFile stat-mysql-error
$InputFileSeverity error
$InputFileFacility local3
$InputRunFileMonitor
local3.* @@hostname:<portnumber>

# Set the default permissions for all log files.
#
#$FileOwner syslog
#$FileGroup adm
#$FileCreateMode 0640
#$DirCreateMode 0755
#$Umask 0022
#$PrivDropToUser syslog
#$PrivDropToGroup syslog
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.