ヘルプ S3 ログ

S3ログ

SQSを使用したS3ログ収集

Site24x7のAppLogsは、Amazon環境のS3バケットに保存されたログファイルを収集し、監視のためSite24x7に自動送信します。SQSサービスを最大限に活用して、新規ログファイルの追加などのイベントを検索し、ログファイルを取得します。ここでは、S3バケットのログの監視方法について説明します。

Lambda関数を使用してS3ログを収集するにはこちらをご覧ください。

ログタイプの定義:

ログタイプは、アプリケーションがログを書き込む形式の定義です。異なるアプリケーション(IIS、Cassandra、Apache、MySQLなど)では、異なる形式でログを書き込む場合があります。それらをログタイプとして定義することで、さまざまなアプリケーションのログがグループ化され、容易なアクセスと、効率的な検索が可能になります。S3バケットに保存されているログのログタイプを定義したら、ログプロファイルの下にリストし、検索クエリを実行して、ログの管理を開始します。ログタイプの作成方法はこちらをご覧ください。

ログプロファイルの作成:

ログプロファイルは、ログタイプを特定のサーバーセットに関連付けることができます。ログプロファイルが作成されると、対応するログがサポートされているログタイプのセットに自動的追加されます。

ログプロファイルの作成手順は、[AppLogs] > [ログプロファイル]> [ログプロファイルの追加]へ進み、以下の手順に従います:

1. プロファイル名: ログプロファイル名を入力します。

2. ログタイプ: プロファイルに関連付けるS3ログタイプを選択します。

3. ログソース: ログソースとしてのAmazon S3バケットを選択します。

4. AWS監視: S3バケットおよびSQSキューで読み込み権限を許可したAWS監視を選択します。新規AWS監視を関連付けるには、[ + ]をクリックします。

  • SQSキューの追加手順はこちらです。
  • SQSキューを作成したら、選択したAWS監視上でサービス検索を有効にします。

5. S3バケット名: ログを収集するS3バケット名を選択します。

6. S3プレフィックス: 特定のフォルダーでログを収集する場合は、フォルダー名を入力します。

7. SQSキュー名: 新規ログファイルが追加された際にメッセージを受信するSQSキューを選択します。

SQSへの最初の月間100万リクエストは無料となります。Site24x7では、30秒ごとにメッセージのキューを確認します。最大で10万件のヒットを消費した場合、SQSサービスの追加料金は発生しません。

8. ログプロファイルをサーバーに関連付け: ログプロファイルに関連付けるサーバーを選択し、S3からログをアップロードします。

SQSキューの作成とSite24x7へのアクセスの提供について

SQSキューの作成:

1. AWSコンソールへ進み、サービスのドロップダウンメニューから[SQS]を選択します。

2. 新規でキューを作成するか、既存のキューを選択します。

3. デフォルトのリージョンが自動選択されています。SQSキューはS3バケットと同じリージョンである必要があります。以下画像のハイライト部分で、S3バケットのリージョンが確認できます。ドロップダウンメニューから、SQSのリージョンを変更することも可能です。

SQSキューへのアクセス権を追加

1. キューの作成が完了したら、テーブルからキューを選択し、[アクセス権限]タブに移動して[ポリシードキュメントの編集(アドバンス)]をクリックします。

2. エディターウィンドウが開きます。ここで、以下のJSONをコピーアンドペーストすることができます:

{

"Version": "2008-10-17",

"Id": "PolicyExample",

"Statement":[

{

"Sid": "send-message",

"Effect": "Allow",

"Principal": {

"AWS": "*"

},

"Action": "SQS:SendMessage",

"Resource":<SQS ARN>,

"Condition": {

"ArnLike": {

"aws:SourceArn":"arn:aws:s3:*:*:<S3 bucket name>"

}

}

}

]

}

以下は置換する必要があります:

  • <S3 bucket name> S3バケット名

  • <SQS ARN> SQSキューをハイライト表示すると[詳細]タブにある番号が表示されます。

SQSキューに通知するS3バケットを設定

1. AWSコンソールでサービスのドロップダウンメニューから[S3]を選択します。

2. SQSポリシーに入れるバケットを選択し、[プロパティ]タブを選択します。

3. 詳細設定で[イベント]タブを選択し、[通知を追加]をクリック、そして[オブジェクト作成イベント]フィールドを選択します。また、[送信先]セクションでSQSキューを選択し、イベントの送信先となるSQSキューの名前を選択します。

Site24x7でSQSからのメッセージ削除権限を付与

1. SQSからメッセージを読み取った後は、そのメッセージを削除することがベストプラクティスです。削除しない場合、キューに古いメッセージがあふれてしまいます。SQSキューからデータを削除するには、Site24x7に変更を加えて既存のユーザー/ロールの権限を与える必要があります。手順は、AWSダッシュボードへ移動し、[セキュリティ、IDおよびコンプライアンス]セクションから[IAM]を選択します:

2. IAMダッシュボードから、Site24x7でAWSアカウントを設定する際に使用した[ユーザー]または[ロール]を選択します。

3. Site24x7のAWSアカウントをユーザーで設定している場合は、ユーザーリストから[ユーザー]を選択し、[アクセス権限]タブで[インラインポリシーの追加]をクリックし、[ここをクリック]を選択します。アカウントをロールで設定している場合は、適切なロールを選択し、前述した手順と同様に進みます。サービス、対応するアクションおよびリソースを選択し、エディターウィンドウでカスタムポリシーに名前を付けて、以下をペーストします:


{

"Version": "2012-10-17",

"Statement":[

{

"Sid": "DeleteMessage",

"Effect": "Allow",

"Action": "sqs:DeleteMessage",

"Resource": "<SQS ARN>"

}

]

}

置換します。

  • <SQS ARN>: SQSキューをハイライト表示すると[詳細]タブにある番号が表示されます。

4. ポリシーに[Site24x7メッセージ削除ポリシー]などの名前を付け、[ポリシーの適用]をクリックします。

ポリシーを適用したら、S3のログプロファイルを作成し、Site24x7コンソールから監視を開始します。

関連したログタイプ