rsyslog: Como divido os eventos em um arquivo de log em arquivos separados se ele contiver uma palavra-chave?

2

Estou recebendo dados do syslog em um arquivo .log. Esse arquivo contém dois tipos de eventos. Um evento que contém apenas o carimbo de data e hora syslog e um evento que contém o carimbo de data e hora syslog e um campo "timestamp=" na mensagem. Usando regras, como posso dividir qualquer evento contendo "timestamp=" em um arquivo separado?

    
por user3002 05.10.2016 / 22:45

1 resposta

0

A documentação do rsyslog nos filtros diz que $msg pode ajudar aqui:

Probably, “msg” is the most prominent use case of property based
filters. It is the actual message text. If you would like to filter
based on some message content (e.g. the presence of a specific code),
this can be done easily by:

    :msg, contains, "ID-4711"

This filter will match when the message contains the string “ID-4711”. 

e

*.* /var/log/file1 # the traditional way
if $msg contains 'error' then /var/log/errlog # the expression-based way

Se eu entendi sua pergunta corretamente, você pode fazer o que pretende editando seu arquivo de configuração para verificar $msg para timestamp = Se você encontrar esse valor, grave em um arquivo separado.

Esta é a documentação do rsyslog versão 8. Eu recomendaria verificar a versão do rsyslog que você está usando em qualquer exemplo que você encontrar (na documentação ou na Internet).

    
por 06.10.2016 / 01:54