ログ処理を整理して標準化し、fluentd と ELK を追加しています。nginx が独自のファイルにログを記録しているため、この部分は正常に動作しています。
input(type="imfile" tag="app.nginx" file="/var/log/nginx/access.log" ruleset="fluentd")
ただし、アプリの他のコンポーネント、たとえば Python プロセスは、 というプレフィックス/var/log/syslog
が付いたログ メッセージで にログを記録しています。を含むメッセージをフィルタリングし、 でタグ付けして、ルールセットを適用したい[flask]
と思います。/var/log/syslog
[flask]
app.flask
fluentd
nginx のように各サービスを独自のファイルにログするように設定することもできますが、可能であれば systemd 構成の変更は避けたいと思います。
答え1
最終的に、メッセージを特定のログ ファイルにリダイレクトし、そのファイルにポイントを追加することでこの問題を解決しましたinput
。
if $rawmsg contains "[flask]" then /var/log/flask.log
input(type="imfile" tag="app.flask" file="/var/log/flask.log" ruleset="fluentd")
別のファイルにリダイレクトせずにこれを行う方法がある場合は、それでも知りたいです。