勉強前イメージ
サブスクリプションフィルターは知ってる・・・
調査
そもそもCloudwatchLogsとは
EC2やCloudTrail、Route53などからログファイルをモニタリングし、保存することが出来ます。
cloudwatch logsで使用中のサービスの各ログを一元管理することが出来ます。
また、ダッシュボードでのログデータの可視化も出来ます。
詳細は こちら をごらんください
メトリクスフィルタとは
cloudwatchのログのデータから特定の文字列をフィルタリングするもので
指定したパターンに一致した場合にメトリックスを追加することができます。
設定する箇所としては、cloudwatch > ログ > ロググループ > メトリックスフィルター になります。
イメージとしては、
errorという文字列が含まれるログが出力されるとcloudwatchメトリクスに1という値が入ります。
cloudwatchメトリクスにはアラームが設定されていて、1が入ったらアラートが鳴る設定がされる。
というものです。
このイメージを図にすると以下のようになります。
サブスクリプションフィルターもあるが?
同じ場所にサブスクリプションフィルターというものありますが
これはいわゆるログ監視になります。
cloudwatch logsに出力されたログデータを特定の文字列を含むデータなどをリアルタイムに検知し、
kinesis や lambda などにログを転送できる機能になります。
サブスクリプションフィルタを使用すると、あるログを出力されていて「Error」が含まれると
lambdaからチャットなどに流すことができるようになります。
詳細は こちら をご覧ください
違いとしては、以下になります。
- メトリックスフィルター : 指定の文字列があれば
メトリックスに値を入れる
- サブスクリプションフィルター : 指定の文字列があれば
lambdaにログを転送する
ログ自体をそのままアラートに流したい場合はサブスクリプションフィルターが適しており
ログから数値を出してその数値からアラートに流したいときはメトリックスフィルターが適していると思います。
勉強後イメージ
サブスクリプションフィルターは使ってたけど
メトリックスフィルターは初めてかも。
errorが何回出たら・・・とかだったらメトリックスフィルターがいいかも?