Como envio mensagens de arquivos de log aleatórios (como apf_log) para outro computador?

0

Eu já descobri que posso enviar mensagens de log de um dos arquivos de log padrão para outro servidor adicionando essas linhas a /etc/rsyslog.d/50-default.conf (estou usando o Ubuntu 16.04):

auth, authpriv. * @@ 73.147.200.188: 514
syslog @@ 73.147.200.188: 514

Agora, quero fazer o mesmo para o apf_log, mas o "apf_log @@ 73.147.200.188: 514" não funciona.

Já experimentei dezenas de variações de exemplos para o módulo imfile ( link ) incluindo os antigos & novas versões dos comandos sem efeito.

O mais perto que eu cheguei foi adicionando a linha "apf_log /var/log/auth.log" que inseria as entradas do arquivo de log adequadamente formatadas no auth.log do apf_log, mesmo que eu não tivesse configurado o imfile. Infelizmente, eu não poderia enviar diretamente as entradas auth.log para o meu servidor remoto ("auth.log @@ 73.147.200.188: 514" não tem efeito).

A documentação do módulo imfile do rsyslog diz "Este módulo fornece a capacidade de converter qualquer arquivo de texto padrão em uma mensagem syslog". Usando um "arquivo de estado" ele detecta quando novas linhas aparecem e as passa "para o mecanismo de regras do rsyslog" (que eu assumo refere-se a regras como "syslog @@ 73.147.200.188: 514" e "auth, authpriv. * / Var / log /auth.log ").

No entanto, ele não diz qual é o nome da variável do arquivo nesse mecanismo de regras. Eu tentei usar o nome do arquivo, seu caminho completo e o valor "tag" do imfile. Também tentei corresponder essas configurações no servidor (73.147.200.188, neste exemplo) e verifiquei se / var / log / apf_log tinha permissões completas (em ambas as máquinas).

Dustin

    
por Dustin Soodak 01.11.2017 / 23:44

1 resposta

0

Consegui fazer isso para enviar logs de kodi em um pi de framboesa para um servidor fedora 23. Eu acho que você só precisa especificar o recurso (local0) e gravidade (info) tanto no imfile e as regras de correspondência. No pi eu adicionei o arquivo de configuração /etc/rsyslog.d/00-pi.conf com:

# try send arbitrary file to remote
$WorkDirectory /var/spool/rsyslog
$ModLoad imfile
$ModLoad imtcp
$InputFileName /home/osmc/.kodi/temp/kodi.log
$InputFileTag mytag1:
$InputFileStateFile imfilestatuskodi
$InputFileFacility local0
$InputFileSeverity info
$InputRunFileMonitor

# send all lines to server
local0.info @@server
& stop

Este arquivo é incluído logo no início por /etc/rsyslog.conf . No servidor de recebimento, eu já recebi uma configuração de recebimento /etc/rsyslog.d/00-receive.conf (que você deve simplificar) com:

$ModLoad imtcp
$InputTCPServerRun 514
$template nomatch,"/var/log/nomatch-%hostname%.log"
# match on pi's ip address
if $fromhost-ip == '192.168.0.20' then {
     action(type="omfile" dynaFile="nomatch")
     stop
}

Quando reiniciei o rsyslog no pi, obtive todo o conteúdo do arquivo kodi.log e as atualizações subseqüentes no arquivo /var/log/nomatch-pi.log como esperado. No pi, o arquivo de estado era, como esperado, em /var/spool/rsyslog/imfilestatuskodi .

    
por 02.11.2017 / 22:03