Jak mogę przekazać wiadomość z określonego pliku dziennika jak /www/myapp/log/test.log
z rsyslog
klienta do zdalnego rsyslog
serwera? Ten plik dziennika znajduje się poza katalogiem /var/log
.
24
Wystarczy ustawić regułę imfile w swoim /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>
Spowoduje to obejrzenie pliku i zapisanie w obiekcie local3 w syslog. Następnie możesz wysłać wszystkie dane z obiektu local3 na zdalny serwer. Możesz także dodać następujące elementy do swojego rsyslog conf (zwykle /etc/rsyslog.d/50-default.conf na Ubuntu), aby nie zapisywać narzędzia local3 w / 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
Dodatkowo zachęcam do lektury następujących dokumentów rsyslog w celu bardziej zaawansowanego filtrowania:
Na Ubuntu musiałem również skomentować linie upuszczania uprawnień, aby rsyslog rzeczywiście odczytał plik dziennika poza / var / logs.
źródło