ヘルプ 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監視を関連付けるには、[ + ]をクリックします。
5. S3バケット名: ログを収集するS3バケット名を選択します。
6. S3プレフィックス: 特定のフォルダーでログを収集する場合は、フォルダー名を入力します。
7. SQSキュー名: 新規ログファイルが追加された際にメッセージを受信するSQSキューを選択します。
SQSへの最初の月間100万リクエストは無料となります。Site24x7では、30秒ごとにメッセージのキューを確認します。最大で10万件のヒットを消費した場合、SQSサービスの追加料金は発生しません。
8. ログプロファイルをサーバーに関連付け: ログプロファイルに関連付けるサーバーを選択し、S3からログをアップロードします。
SQSキューの作成とSite24x7へのアクセスの提供について
1. AWSコンソールへ進み、サービスのドロップダウンメニューから[SQS]を選択します。
2. 新規でキューを作成するか、既存のキューを選択します。
3. デフォルトのリージョンが自動選択されています。SQSキューはS3バケットと同じリージョンである必要があります。以下画像のハイライト部分で、S3バケットのリージョンが確認できます。ドロップダウンメニューから、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キューをハイライト表示すると[詳細]タブにある番号が表示されます。
1. AWSコンソールでサービスのドロップダウンメニューから[S3]を選択します。
2. SQSポリシーに入れるバケットを選択し、[プロパティ]タブを選択します。
3. 詳細設定で[イベント]タブを選択し、[通知を追加]をクリック、そして[オブジェクト作成イベント]フィールドを選択します。また、[送信先]セクションでSQSキューを選択し、イベントの送信先となる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コンソールから監視を開始します。