ハマログ

株式会社イーツー・インフォの社員ブログ

AWS CloudWatch LogsをLambdaにストリーミングするときのサブスクリプションフィルタパターンの書き方

はじめに
AWS上で動いているアプリケーション監視の際に、CloudWatch Logsだけの機能を利用してログのモニタリングを行う場合、logs2snsを利用して、ログ文字列の監視をおこなっています。

この設定の中で、CloudWatchログからLambdaにストリーミングするためのフィルターを書く必要があるのですが、OR条件の書き方がわからず、すべてのログを送信していた時期がありました(お金の無駄遣い!)

反省の意味も含めて、備忘録としてまとめておきます。ちなみに、JSONログイベントについては今回は記載しません。また、ログの形式が「その他」の場合について記載します。
サブスクリプションフィルタのパターンとは
ここのことです
パターン
公式ドキュメントはこちらです。
フィルターとパターンの構文
[ERROR] A fatal exception has occurred
Exiting with ERRORCODE: -1
という文字列(公式ドキュメントから流用)があった場合。
部分一致
フィルタパターン
ERROR
以下のように両方の行にマッチします。
[ERROR] A fatal exception has occurred
Exiting with ERRORCODE: -1
AND条件
フィルタパターン
ERROR fatal
半角スペースで複数の文字列を記載します。すべての文字列が含まれる以下の行にマッチします。
[ERROR] A fatal exception has occurred
OR条件

フィルタパターン

?fatal ?ERRORCODE

文字列の前に?をつけて、複数の文字列を記載します。いずれかの文字列が含まれる行にマッチします。

[ERROR] A fatal exception has occurred
Exiting with ERRORCODE: -1
文字列Aが含まれていて、Bが含まれていない
フィルタパターン
ERROR -CODE
部分一致の文字列と、ハイフン(-)を先頭に付けた除外文字列を指定します。ERRORが含まれていてCODEが含まれていない以下の文字列がマッチします。
[ERROR] A fatal exception has occurred
もうちょっと複雑な指定もできそうですが、今回はここまでで十分だったのでここまで。また必要になったときに続きます。
AWSlambdaサブスクリプションパターン

kaneko tomo   kaneko tomo   2019年4月26日


関連記事

AWSでnginxを使う

こんにちは池島です。またもやご無沙汰です。 最近はAWSの環境設定ばかり見ていま…

AMIでインスタンスを作ったあとはinstance-idの修正が必要だった

最近AWSをいじってます。AMIで、EC2インスタンスを複製したときに、ちょっと…

AWS WAFでOWASP Top 10の対応

AWS WAFを導入したのでその記録です。 運用コストを考えると、自力でがんばる…


← 前の投稿

次の投稿 →