Como posso usar parte da correspondência no Regex para gerar o nome do arquivo da ação?

0

Estou usando o CentOS 6.5 que inclui o rsyslogd v5.8.10

Existem 20 programas de processos no meu servidor.Eu quero receber logs de uso rsyslogd e espero armazenar em arquivo de log diferente de acordo com a identidade do programa de processo na mensagem, então eu decido enviar logs como o seguinte formato: {PRC} exemplo: {PRC server1_process_a10} this_is_message_text

Eu quero saber como verificar se a mensagem é compatível com filtro / regra (use Regex?), então use o process_name, log_level no nome do arquivo de log?

Por exemplo: a mensagem de log é (o nível de log é depurado): {PRC server1_process_a10} this_is_message_text queremos que este repositório de mensagens seja /var/log/myprogram-server1_process_a10_debug.log

    
por user154728 26.02.2016 / 14:34

1 resposta

0

Finalmente, resolvo esse problema.

Primeiro passo, envie o texto do log via programa como segue:

sender_host sender_program log_text

Segundo, adicione a seguinte configuração em /etc/rsyslog.conf

$ template tpl, "/ var / log / procs_% nome do programa: R, ERE, 0, ZERO: (PRCS_ [A-Za-z0-9] +) - fim% % syslogseverity-text% % $ ano% -% $ mês% -% $ dia% .log "

local0. *? tpl

Então tudo ficará bem.

    
por 27.02.2016 / 14:32