Estou limpando e padronizando nosso manuseio de toras, adicionando fluentd e ELK. Esta parte está funcionando bem, já que o nginx está registrando em seu próprio arquivo:
input(type="imfile" tag="app.nginx" file="/var/log/nginx/access.log" ruleset="fluentd")
No entanto, outros componentes do aplicativo, por exemplo, o processo python, estão registrando /var/log/syslog
mensagens de log prefixadas com [flask]
. Gostaria de filtrar /var/log/syslog
mensagens que contenham [flask]
, marcá-las com app.flask
e aplicar o fluentd
conjunto de regras.
Eu poderia configurar cada serviço para registrar em seu próprio arquivo como o nginx, mas gostaria de evitar alterar a configuração do systemd, se possível.
Responder1
Acabei resolvendo esse problema redirecionando mensagens para um arquivo de log específico e adicionando um input
apontado a ele.
if $rawmsg contains "[flask]" then /var/log/flask.log
input(type="imfile" tag="app.flask" file="/var/log/flask.log" ruleset="fluentd")
Se existe uma maneira de fazer isso sem redirecionar para um arquivo diferente, eu ainda gostaria de saber.