Bagaimana saya bisa meneruskan pesan dari file log tertentu seperti /www/myapp/log/test.log
dengan rsyslog
klien ke rsyslog
server jauh ? File log ini berada di luar direktori /var/log
.
Bagaimana saya bisa meneruskan pesan dari file log tertentu seperti /www/myapp/log/test.log
dengan rsyslog
klien ke rsyslog
server jauh ? File log ini berada di luar direktori /var/log
.
Jawaban:
Cukup atur aturan imfile di /etc/rsyslog.conf Anda
#/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>
Ini menonton file dan menyimpan ke fasilitas local3 di syslog. Kemudian Anda dapat mengirim semua data dari fasilitas local3 ke server jauh Anda. Anda mungkin juga ingin menambahkan yang berikut ini ke conf rsyslog Anda (biasanya /etc/rsyslog.d/50-default.conf di Ubuntu) untuk tidak menyimpan fasilitas local3 ke / 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
Selain itu, saya akan mendorong beberapa bacaan dari rsyslog docs berikut untuk pemfilteran lebih lanjut:
Di ubuntu, saya juga harus mengomentari drop drop privilege untuk mendapatkan rsyslog agar benar-benar membaca file log di luar / var / log.
#/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