0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CloudFrontのログをCloudWatch Logsに出力して集計してみた

Posted at

はじめに

CloudFrontのログがS3以外に、Amazon CloudWatch Logs と Amazon Data Firehoseに送信することができるようになったので、CloudWatchにログを送信して使ってみます。

ログの設定方法

CloudFrontの設定画面に新しくLoggingの項目が追加されました。
ここから作成していきます。

image.png

作成画面のダイアログが表示された後は、ログの出力先・内容を指定します。

  1. 右上の「作成」ボタンをクリックしてロググループ作成(既に作成済みならスキップ)
  2. Destination log groupの箇所で、ロググループを選択
  3. フィールド選択で出力する項目を選択
  4. Output formatでフォーマットを選択(ログ調査するならJSONが良い)

image.png

以上で設定は完了です。
これで、試しにアクセスするとCloudWatchのログに出力されているのが確認できます。

ログインサイトで集計

CloudWatchにログを出力する目的は、基本的にはログを調査するためになるのでログのインサイトで集計もしてみます。

HTTPステータス500系のログを調査する場合は以下で確認できます。
※JSONのフィールド名にハイフン(-)が使われているのでバッククォート(`)で囲む必要があります

fields @timestamp, `c-ip` as ip, `sc-status` as status, `cs-method` as method, `cs-uri-stem` as path, `cs(User-Agent)` as ua
| filter status like /^5[0-9]+$/

500系のログの件数を集計

fields @timestamp, `c-ip` as ip, `sc-status` as status, `cs-method` as method, `cs-uri-stem` as path, `cs(User-Agent)` as ua
| filter status like /^5[0-9]+$/
| stats count(*) by status
| sort status asc

method&pathごとの件数集計

fields @timestamp, `c-ip` as ip, `sc-status` as status, `cs-method` as method, `cs-uri-stem` as path, `cs(User-Agent)` as ua
| stats count(*) as count by method, path
| sort count desc

その他

CloudFrontのログに使われているフィールドは、以下から確認できます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?