0
0

【AWS】一つのメトリクスフィルターが二つのアプリのログを検知してしまう現象の解決方法

Posted at

概要

AWS CloudWatch Logsで一つのメトリクスフィルターが二つのアプリのログを検知してしまう現象が発生。
備忘録も兼ねて、原因と対応方法を紹介します。

前提と原因

元々CloudWatch Logsのロググループの下には既存アプリのアプリログに使用中のログストリーム一つしかなかったのですが、今回新規アプリを導入するにあたり新規アプリログ用にログストリームをもう一つ追加しました。アプリごとにログストリームを設けて、それぞれにメトリクスフィルターを適用してあげる、という構成です。

こんなイメージで構成を考えていました。

└── app_log_group
    ├── hoge_app_log_stream
    └── foo_app_log_stream

しかし、これが問題でした。

なぜなら、CloudWatch Logsのメトリクスフィルターは、特定のロググループに対して設定できますが、特定のログストリームを直接指定することはできないためです。

Metric filters are assigned to log groups, and all of the filters assigned to a log group are applied to their log streams.

公式ドキュメントには上述の通りapplied to their log streamsとあります。つまり、ロググループの中のログストリームのデータ全てに適用される、という意味です。

解決法

解決方法は新たにロググループを作成して、そこにメトリクスフィルターを適用することです。
つまり、以下のイメージです。

├── hoge_app_log_group
│   └── hoge_log_stream
└── foo_app_log_group
     └── foo_log_stream

これで両方のアプリのメトリクスフィルターが互いに検知してしまう現象が解決できました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0