CloudWatch Logs【便利なフィルターパターン】

CloudWatch Logsに出力されたログメッセージの中から、目的の情報を抽出するために活用できるフィルターパターンを紹介します。

フィルターパターン

かつ
( 全てを含む )

GET 200

上記のように指定した場合、GET200 の両方が含まれるログが抽出されます。

または
( どれかを含む )

?ERROR ?WARN

上記のように指定した場合、ERRORWARN のどちらかが含まれるログが抽出されます。

除外
( 含まない )

node -nodejs

上記のように指定した場合、node が含まれるログのうち nodejs が含まれるログを除外して抽出されます。

スペース区切りログイベント

apacheのアクセスログなど、スペース区切りで出力されるログがあります。

XXX.XXX.XXX.XXX (-) - - [09/Jan/2019:22:33:24 +0900] "GET / HTTP/1.1" 403 209 "-" "ELB-HealthChecker/2.0"

スペース区切りのそれぞれの項目が何を表すか指定し、項目ごとに条件抽出することができます。

[elb_ip, ip, user, username, timestamp, request, status_code = 4*, bytes]
[elb_ip, ip = "(XXX.XXX.XXX.XXX)", user, username, timestamp, request, status_code, bytes]
[elb_ip, ip, user, username, timestamp, request = PUT*, status_code = 4*, bytes]

参考