Usando a geração de arquivos dinâmicos do syslog (r)

2

Estou no meio da configuração de um servidor syslog (r) como um servidor remoto que recebe logs de vários clientes.

Gostaria de saber se existe uma maneira mais agradável de gerar dinamicamente vários nomes de arquivos, em vez de criar um modelo para qualquer facility.priority cujo nome de arquivo deva ser criado dinamicamente.

$template FILENAME,"/var/log/%fromhost-ip%/syslog.log"
kern.*                          ?FILENAME

Além disso, eu tenho que dizer explicitamente aos serviços / daemons para usar o TCP para usar logging via TCP com (r) syslogd? Como quando eu desligo a capacidade do servidor de receber pacotes UDP, ele pára de registrar qualquer coisa. Ou colocar de forma diferente:

kern.*                           @loghost 

não funciona.

    
por Andrew Tobey 13.08.2014 / 09:38

2 respostas

0

Na página de manual:

   To  forward  messages to another host via UDP, prepend the hostname
   with the at sign ("@").  To forward it via plain tcp,  prepend  two
   at signs ("@@").

Portanto, altere sua linha de configuração da seguinte forma:

kern.*                           @@loghost 

e diga ao rsyslog para reler o arquivo de configuração.

    
por 13.08.2014 / 10:35
1

Sim, os modelos são uma maneira padrão e recomendada de gerar nomes de arquivos dinâmicos no rsyslog. Eles permitem separar logicamente o formato do nome do arquivo da ação e introduzir uma estrutura clara à sua configuração.

Em relação ao TCP, Jenny D já deu a resposta correta. Por favor, note que seus hosts precisam suportar o syslog sobre TCP. O Syslog foi inicialmente baseado em UDP, portanto, dependendo das versões dos daemons do syslog que você está executando nos seus hosts, o TCP pode não ser possível em alguns ou mesmo em todos eles. O TCP é suportado pelo rsyslog e pelo syslog-ng.

Para referência extra sobre o rsyslog, o RedHat tem uma documentação bastante interessante. .

    
por 13.08.2014 / 10:50