Como encaminhar arquivo de log específico fora de / var / log com o rsyslog para o servidor remoto?

22

Como posso encaminhar mensagens de um arquivo de log específico, como /www/myapp/log/test.log com rsyslog client para o remoto rsyslog server? Este arquivo de log está fora do diretório /var/log .

    
por Kevin Campion 06.06.2012 / 17:36

2 respostas

37

Basta configurar uma regra imfile no seu /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>

Isso assiste a um arquivo e salva no recurso local3 no syslog. Então você pode enviar todos os dados da instalação local3 para o seu servidor remoto. Você também pode adicionar o seguinte ao seu rsyslog conf (geralmente /etc/rsyslog.d/50-default.conf no Ubuntu) para não salvar o recurso local3 em / 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

Além disso, gostaria de incentivar algumas leituras dos seguintes documentos do rsyslog para uma filtragem mais avançada:

  1. O substituto de propriedade
  2. Condições de filtro
por 06.06.2012 / 20:19
1

No Ubuntu, eu também tive que comentar as linhas de privilégios de drop a fim de fazer com que o rsyslog realmente lesse o arquivo de log fora de / 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
    
por 18.03.2015 / 15:46