CloudWatch Logsに出力されたログメッセージの中から、目的の情報を抽出するために活用できるフィルターパターンを紹介します。
目次
フィルターパターン
かつ
( 全てを含む )
GET 200
上記のように指定した場合、GET
と 200
の両方が含まれるログが抽出されます。
または
( どれかを含む )
?ERROR ?WARN
上記のように指定した場合、ERROR
と WARN
のどちらかが含まれるログが抽出されます。
除外
( 含まない )
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]