Filtrando logs do dpkg no syslog-ng

1

Eu sou novo em syslog-ng e estou definindo um syslog-ng , no qual estou recebendo logs de syslog , auth.log e dpkg.log . Embora eu conseguisse obter os logs para syslog e auth.log , mas não consigo gravar os dpkg logs para separar o arquivo e ele está sendo gravado nos arquivos de log dpkg , bem como syslog log arquivos. O arquivo de configuração para o servidor é o seguinte:

options {
    create_dirs(yes);
    owner(root);
    group(root);
    perm(0640);
    dir_owner(root);
    dir_group(root);
    dir_perm(0750);
};

source s_dl {
   network (
   transport("tcp")
   port(3993)
);
};

filter f_dpkg{
    tags("dpkg");
};

destination d_host-specific {

  file("/var/log/servers/$HOST/$YEAR/$MONTH/$HOST-$YEAR-$MONTH-$DAY.log");
};

destination d_syslog {
        file("/var/log/servers/$HOST/$YEAR/$MONTH/$HOST-$YEAR-$MONTH-$DAY-syslog.log");
};

destination d_dpkg {
    file("/var/log/servers/$HOST/$YEAR/$MONTH/$HOST-$YEAR-$MONTH-$DAY-dpkg.log");
};

log {
    source(s_dl);
    filter(f_auth);
    destination(d_host-specific);
};

log {
    source(s_dl);
    filter(f_syslog3);
    destination(d_syslog);
 };

log{
    source(s_dl);
    filter(f_dpkg);
    destination(d_dpkg);
};

O arquivo de configuração para o cliente syslog-ng é o seguinte:

 source s_dpkg {
   file('/var/log/dpkg.log'); tags('dpkg'));
 };
 destination d_net { tcp("192.168.48.15" port(3993)); };
 filter f_tag { tags("dpkg"); };
 log { source(s_src); filter(f_auth); destination(d_net);};
 log { source(s_src); filter(f_syslog3); destination(d_net);};
 log { source(s_dpkg); filter(f_test); destination(d_net);};

Alguém pode me apontar onde está o meu erro ou qual deve ser a maneira correta de obter os detalhes. Nota: Eu preciso usar a mesma porta para aceitar todos os logs de um único host, pois não posso continuar adicionando novas portas para aceitar logs diferentes da mesma máquina.

    
por Bidyut 13.12.2017 / 09:52

1 resposta

0

O problema é que a tag que seu cliente adiciona às mensagens do dpkg não é transferida para o servidor (porque não faz parte da mensagem original).

Além disso, parece-me que toda essa marcação é necessária porque os logs originais do dpkg não preenchem o campo PROGRAM das mensagens do syslog. Então, a maneira mais fácil de resolver o problema é IMHO:

  • Use a opção program-override ("dpkg") na origem s_dpkg no cliente ( link ) para definir corretamente o campo PROGRAMAR nas mensagens do dpkg
  • No servidor, use o filtro de programa ("dpkg") em vez do filtro de tags.

HTH

    
por 14.12.2017 / 08:51