O cenário é receber todas as mensagens recebidas e armazenar todas essas mensagens em /app/syslog-ng/custom/output/all_devices.log
, mas encaminhar apenas algumas mensagens (por filtragem).
filter
A tag é usada para filtrar as mensagens recebidas no Syslog-NG, o que não é o uso correto, neste cenário. Por exemplo:filter f_warn { level(warn); };
Editar:
Minha configuração atual é:
@version: 3.17
source s_network {
udp(
flags(syslog_protocol)
keep_hostname(yes)
keep_timestamp(yes)
use_dns(no)
use_fqdn(no)
);
};
destination d_all_logs {
file("/app/syslog-ng/custom/output/all_devices.log");
};
log {
source(s_network);
destination(d_all_logs);
};
Depois de armazenar todas as mensagens em all_devices.log
, o Syslog-NG fornece sintaxe (configuração) para encaminhar apenas determinadas mensagens (após filtragem) para o servidor de log remoto?
Você pode combinar várias diretivas em seu arquivo de configuração.
Como exemplo, com base no seu código, você define um filtro:
então um destino:
e coloque-os todos juntos com algo como:
Obviamente, você deve configurar seu
source
,filter
edestination
com base em suas necessidades.Sugiro que você dê uma boa lida no manual oficial , pois há muitas opções para personalizar seu registro.