ハマログ

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

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   2019年4月26日


関連記事

AWS(Route53)でドメインを取得する

はじめに ドメイン取得の際に、お名前.comとかさくらインターネットで取得するこ…

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

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

AWS CloudFormationの削除保護について備忘

先日に引き続きAWS CloudFormationネタでごんす。 AWSコンソー…


← 前の投稿

次の投稿 →