Lambda関数を使用したAmazon CloudFrontのログ収集
CloudFrontのログには、CloudFrontが受け取るすべてのユーザリクエストに関する情報が含まれており、Cloudfrontが提供するWebプロパティ全体での利用パターンを識別できます。また、Lambda関数を通して監視するために、S3バケットに保存されているCloudfrontログを収集して、Site24x7へ送信できます。ここでは、Cloudfrontログでのログ監視を有効にするための、Site24x7アカウント設定方法について説明します。
ログプロファイルの作成
CloudTrailログを収集するには、まずログプロファイルを作成する必要があります。[AppLogs]>[ログプロファイル]>[ログプロファイルの追加]へ進み、以下の項目を入力します:
- プロファイル名: ログプロファイル名を入力します。
- ログタイプ: CloudFrontログを選択します。AWSアカウントでCloudFrontログを有効にしていない場合は、こちらをご覧ください。
- ログソース: Amazon Lambdaを選択します。
- タイムゾーン: ログのタイムゾーンを選択します。
- [保存]をクリックします。
- こちらの手順に従って、Lambda関数を設定します。
AWS設定
1. Lambdaコードの取得
Lambda関数で必要なコードは、以下のリンクから取得できます:
https://github.com/site24x7/applogs-aws-lambda/blob/master/s3/s3-sender.py
2. Lambda関数の設定
- [サービス]のドロップダウンリストから、[Lambda]を選択し、[関数の作成]をクリックします。スクラッチから著者を選択し、関数の名前を入力し、ランタイムとしてPython 3.7を選択します。
- アクセス権限: 既存のIAMロールを選択するか、AWS[ポリシーテンプレート]から新規ロールを作成します。[ポリシーテンプレート]のドロップダウンメニューから[Amazon S3オブジェクト読み込み専用アクセス権]および[ロール名]を選択します。また、新規ユーザーロールを作成し、他のサービスにもアクセス権限を拡張できるオプションもあります。
- トリガーの追加: スクロールダウンして[S3バケット]を選択します。S3バケットに追加されたログファイルは、Lambda関数によってSite24x7へ送られます。
- トリガーの設定
- バケット:ログを収集するS3バケット名を入力します。
- イベントタイプ: [すべてのオブジェクト作成]イベントを選択します。
- [追加]をクリックします。
- 以下のように表示されるウィンドウで、[Lambda関数]をクリックします:
- エディターまでスクロールし、以下リンクにあるコードを入力します:
https://github.com/site24x7/applogs-aws-lambda/blob/master/s3/s3-sender.py
- コードを入力したら、Site24x7 Webクライアントに移動し、[管理]>[Applogs] >[ログプロファイル]へ進みます。作成した[ログプロファイル]を選択し、[環境変数]フィールド下の画面に変数logtypeConfigの入力として表示されるコードをコピーします。
CloudFrontロギングの設定
[サービス]のドロップダウンリストから、[CloudFront]を選択し、CloudFrontディストリビューションおよびディストリビューション設定を選択します。[編集]をクリックし、[ロギング]を有効にして、ログを収集するS3バケットの名前を選択します。
関連するログタイプ