
Eu sou novo syslog-ng
e estou configurando um syslog-ng
onde estou recebendo logs syslog
de auth.log
e dpkg.log
. Embora eu tenha conseguido obter os logs de syslog
e auth.log
, não consigo gravar os dpkg
logs em arquivos separados e eles estão sendo gravados tanto nos dpkg
arquivos de log quanto syslog
nos arquivos de log. O arquivo de configuração do 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 do 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 indicar onde está o meu erro ou qual deveria ser a maneira correta de obter os detalhes. Nota: 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.
Responder1
O problema é que a tag que seu cliente adiciona às mensagens do dpkg não é transferida para o lado do 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. Portanto, a maneira mais fácil de resolver o problema IMHO é:
- Use a opção program-override("dpkg") na fonte s_dpkg no cliente (https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/reference-source-file.html#idm45439656585216) para definir corretamente o campo PROGRAM nas mensagens do dpkg
- No servidor, use o filtro program("dpkg") em vez do filtro de tags.
HTH