Como substituir caracteres de controle no rsyslog

1

temos vários aplicativos (geralmente java) e eles registram no servidor rsyslog centralizado (versão 7.6). Tivemos problemas com exceções java, já que o rsyslog estava manipulando cada linha de rastreamento de pilha como mensagem separada, então nossos desenvolvedores começaram a usar # 012 como nova linha e # 011 como guia. Então, agora, quando tenho uma mensagem com exceção, parece que:

2015-02-09T12:52:43.769Z hostname warning app Exception when invoking method something.search: reason=Error while executing method something.search, Params=#012{"maxResults":10,"query":"somesearch"}#012com.company.server.json.ApiException: Error while executing method something.search#012#011at com.company.app.api.BaseExecutor.executeWithDatabase(BaseExecutor.java:112) ~[app-server.jar:?]#012#011at com.company.app.api.BaseExecutor.execute(BaseExecutor.java:87) ~[app-server.jar:?]#012#011at com....and so on

A primeira coisa que eu adoraria é substituir automaticamente as cadeias #xxx por seus valores originais, para que o arquivo de log resultante seja legível.

A segunda coisa é que estamos usando graylog2 onde temporariamente por algumas semanas armazenamos os logs para que possam ser facilmente pesquisados. O Rsyslog está configurado para salvar os logs em algum local E reenviar os logs para o graylog e é claro que gostaria de ter exceções lá com espaços e tabulações em vez de caracteres de controle.

Eu estava fazendo alguma pesquisa e estava tentando substituir esses caracteres de controle como deveriam (eu acho) ser compatível com o rsyslog:

link link

Mas sem sorte até agora.

Obrigado antecipadamente pelo seu tempo e ajuda!

P.S. O primeiro problema pode ser usado com o cron e o sed, mas não resolverá o segundo.

    
por user3337015 09.02.2015 / 15:07

1 resposta

0

Não é exatamente uma solução, mas uma solução boa o suficiente.

Para o rsyslog, sim, o trabalho noturno do cron com um pequeno comando 'sed' Para graylog: você pode usar as regras do drools para reescrever a mensagem antes que ela atinja o mecanismo do graylog. (fonte: link )

    
por 12.02.2015 / 09:55