it-swarm.com.de

Wie leite ich eine bestimmte Protokolldatei außerhalb von / var / log mit rsyslog an den Remote-Server weiter?

Wie kann ich eine Nachricht aus einer bestimmten Protokolldatei wie /www/myapp/log/test.log Mit dem Client rsyslog an den Remote-Server rsyslog weiterleiten? Diese Protokolldatei befindet sich außerhalb des Verzeichnisses /var/log.

25
Kevin Campion

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>

Dies überwacht eine Datei und speichert sie in der local3-Einrichtung in syslog. Anschließend können Sie alle Daten von der local3-Einrichtung an Ihren Remote-Server senden. Möglicherweise möchten Sie auch Folgendes zu Ihrem 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 möchte ich Sie dazu ermutigen, die folgenden rsyslog-Dokumente zu lesen, um die Filterung zu erweitern:

  1. Der Property Replacer
  2. Filterbedingungen
43
Bryan York

Unter Ubuntu musste ich auch die Zeilen mit den Drop-Berechtigungen auskommentieren, damit das 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
1
jozwikjp