Wie kann ich eine Nachricht von einer bestimmten Protokolldatei wie /www/myapp/log/test.log
mit einem rsyslog
Client an einen Remote- rsyslog
Server weiterleiten? Diese Protokolldatei befindet sich außerhalb des Verzeichnisses /var/log
.
Wie kann ich eine Nachricht von einer bestimmten Protokolldatei wie /www/myapp/log/test.log
mit einem rsyslog
Client an einen Remote- rsyslog
Server weiterleiten? Diese Protokolldatei befindet sich außerhalb des Verzeichnisses /var/log
.
Antworten:
Richten Sie einfach eine imfile-Regel in Ihrer /etc/rsyslog.conf ein
#/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>
Dadurch wird eine Datei überwacht und in der local3-Einrichtung in Syslog gespeichert. Anschließend können Sie alle Daten von der local3-Einrichtung an Ihren Remote-Server senden. Möglicherweise möchten Sie auch Folgendes zu Ihrer rsyslog conf hinzufügen (normalerweise /etc/rsyslog.d/50-default.conf unter Ubuntu), um die local3-Funktion nicht in / var / log / syslog zu speichern:
#/etc/rsyslog.d/50-default.conf
*.*;auth,authpriv.none,local1.none,local2.none,local3.none,local4.none,local5.none,local6.none -/var/log/syslog
Darüber hinaus empfehle ich das Lesen der folgenden rsyslog-Dokumente für eine erweiterte Filterung:
Unter Ubuntu musste ich auch die Drop-Privilegien-Zeilen auskommentieren, damit rsyslog die Protokolldatei tatsächlich außerhalb von / var / logs liest.
#/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