Estoy limpiando y estandarizando nuestro manejo de registros, agregando fluentd y ELK. Esta parte funciona bien, ya que nginx inicia sesión en su propio archivo:
input(type="imfile" tag="app.nginx" file="/var/log/nginx/access.log" ruleset="fluentd")
Sin embargo, otros componentes de la aplicación, por ejemplo, el proceso de Python, inician sesión /var/log/syslog
con mensajes de registro que tienen el prefijo [flask]
. Me gustaría filtrar /var/log/syslog
los mensajes que contienen [flask]
, etiquetarlos con app.flask
y aplicar el fluentd
conjunto de reglas.
Podría configurar cada servicio para que inicie sesión en su propio archivo como nginx, pero me gustaría evitar cambiar la configuración de systemd si es posible.
Respuesta1
Terminé resolviendo este problema redirigiendo los mensajes a un archivo de registro específico y luego agregando un input
mensaje dirigido a él.
if $rawmsg contains "[flask]" then /var/log/flask.log
input(type="imfile" tag="app.flask" file="/var/log/flask.log" ruleset="fluentd")
Si hay una manera de hacer esto sin redirigir a un archivo diferente, todavía me gustaría saberlo.