Amazon CloudWatch Logs
ユーザーガイド

サンプルクエリ

このセクションには、CloudWatch Logs Insights のパワーを示すクエリの例が含まれています。

一般的なクエリ

25 件の最近追加されたログイベントを確認します。

fields @timestamp, @message | sort @timestamp desc | limit 25

1 時間あたりの例外の数のリストを取得します。

filter @message like /Exception/ | stats count(*) as exceptionCount by bin(1h) | sort exceptionCount desc

例外ではないログイベントのリストを取得します。

fields @message | filter @message not like /Exception/

Lambda ログのクエリ

過剰にプロビジョニングされたメモリの量を確認します。

filter @type = "REPORT" | stats max(@memorySize / 1024 / 1024) as provisonedMemoryMB, min(@maxMemoryUsed / 1024 / 1024) as smallestMemoryRequestMB, avg(@maxMemoryUsed / 1024 / 1024) as avgMemoryUsedMB, max(@maxMemoryUsed / 1024 / 1024) as maxMemoryUsedMB, provisonedMemoryMB - maxMemoryUsedMB as overProvisionedMB

レイテンシーレポートを作成します。

filter @type = "REPORT" | stats avg(@duration), max(@duration), min(@duration) by bin(5m)

Amazon VPC フローログのクエリ

ホスト間での上位 15 件のパケット転送を確認する:

stats sum(packets) as packetsTransferred by srcAddr, dstAddr | sort packetsTransferred desc | limit 15

特定のホストの上位 15 件のバイト転送を確認します。

filter srcAddr LIKE "192.0.2." | stats sum(bytes) as bytesTransferred by dstAddr | sort bytesTransferred desc | limit 15

データ転送プロトコルとして UDP を使用して IP アドレスを確認します。

filter protocol=17 | stats count(*) by srcAddr

キャプチャウィンドウでフローレコードがスキップされた IP アドレスを確認します。

filter logStatus="SKIPDATA" | stats count(*) by bin(1h) as t | sort t

Route 53 ログのクエリ

クエリタイプ別に 1 時間あたりのレコードのディストリビューションを確認します。

stats count(*) by queryType, bin(1h)

リクエスト数が最大である 10 件の DNS リゾルバーを確認します。

stats count(*) as numRequests by resolverIp | sort numRequests desc | limit 10

サーバーが DNS リクエストを完了できなかったレコード数をドメイン別およびサブドメイン別に確認します。

filter responseCode="SERVFAIL" | stats count(*) by queryName

CloudTrail ログのクエリ

サービス別、イベントタイプ別、およびリージョン別のログエントリ数を確認します。

stats count(*) by eventSource, eventName, awsRegion

リージョン別の開始または停止された Amazon EC2 ホストを確認します。

filter (eventName="StartInstances" or eventName="StopInstances") and region="us-east-2"

新しく作成した IAM ユーザーのリージョン、ユーザー名、および ARN を確認します。

filter eventName="CreateUser" | fields awsRegion, requestParameters.userName, responseElements.user.arn

API UpdateTrail の呼び出し中に例外が発生したレコードの数を確認します。

filter eventName="UpdateTrail" and ispresent(errorCode) | stats count(*) by errorCode, errorMessage

解析コマンドの例

glob 式を使用して、ログフィールド @message から、エフェメラルフィールド @user@method@latency を抽出し、@method@user の一意な組み合わせごとに平均レイテンシーを返します。

parse @message "user=*, method:*, latency := *" as @user, @method, @latency | stats avg(@latency) by @method, @user

正規表現を使用して、ログフィールド @message から、エフェメラルフィールド @user2@method2@latency2 を抽出し、@method2@user2 の一意な組み合わせごとに平均レイテンシーを返します。

parse @message /user=(?<user2>.*?), method:(?<method2>.*?), latency := (?<latency2>.*?)/ | stats avg(@latency2) by @method2, @user2