Como posso encaminhar mensagem de um arquivo de log específico, como /www/myapp/log/test.log
com rsyslog
o cliente para remoto rsyslog
servidor? Este arquivo de log está fora do diretório /var/log
.
Como posso encaminhar mensagem de um arquivo de log específico, como /www/myapp/log/test.log
com rsyslog
o cliente para remoto rsyslog
servidor? Este arquivo de log está fora do diretório /var/log
.
Respostas:
Basta configurar uma regra de arquivo no seu arquivo /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 observa um arquivo e salva no recurso local3 no syslog. Em seguida, você pode enviar todos os dados da instalação local3 para o 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, eu recomendaria algumas leituras dos seguintes documentos rsyslog para uma filtragem mais avançada:
No ubuntu, eu também tive que comentar as linhas de privilégios para remover o rsyslog para realmente ler 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