
Soy nuevo en syslog-ng
, y estoy configurando un syslog-ng
, donde recibo registros de syslog
y . Aunque pude obtener los registros para y , no puedo escribir los registros en un archivo separado y se escriben tanto en los archivos de registro como en los archivos de registro. El archivo de configuración del servidor es el siguiente:auth.log
dpkg.log
syslog
auth.log
dpkg
dpkg
syslog
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);
};
El archivo de configuración para el cliente syslog-ng es el siguiente:
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);};
¿Alguien puede señalarme dónde está mi error o cuál debería ser la forma correcta de obtener los detalles? Nota: Necesito usar el mismo puerto para aceptar todos los registros de un solo host, ya que no puedo seguir agregando nuevos puertos para aceptar diferentes registros de la misma máquina.
Respuesta1
El problema es que la etiqueta que su cliente agrega a los mensajes dpkg no se transfiere al lado del servidor (porque no forma parte del mensaje original).
Además, me parece que todo este etiquetado es necesario porque los registros dpkg originales no llenan el campo PROGRAMA de los mensajes de syslog. Entonces, la forma más sencilla de resolver el problema en mi humilde opinión es:
- Utilice la opción program-override("dpkg") en el código fuente s_dpkg en el cliente (https://www.balabit.com/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/reference-source-file.html#idm45439656585216) para configurar correctamente el campo PROGRAMA en los mensajes dpkg
- En el servidor, utilice el filtro de programa("dpkg") en lugar del filtro de etiquetas.
HT