- はじめに
- エージェント
- インテグレーション
- Watchdog
- イベント
- ダッシュボード
- モバイルアプリケーション
- インフラストラクチャー
- サーバーレス
- メトリクス
- ノートブック
- アラート設定
- APM & Continuous Profiler
- CI Visibility
- RUM & セッションリプレイ
- データベース モニタリング
- ログ管理
- セキュリティプラットフォーム
- Synthetic モニタリング
- ネットワークモニタリング
- 開発者
- API
- アカウントの管理
- データセキュリティ
- ヘルプ
Datadog アカウントを構成して、独自のクラウドストレージシステムへ収集されたすべてのログ(インデックス化の有無にかかわらず)を転送します。ストレージに最適化されたアーカイブにログを長期間保管し、コンプライアンス要件を満たすことができると同時に、アドホック調査のための監査適合性をリハイドレートで維持できます。
このガイドでは、クラウドホスト型ストレージバケットに収集したログを転送するためのアーカイブの設定方法を説明します。
注: ログの書き込みアーカイブ権限のある Datadog ユーザーだけがログアーカイブ構成を作成、変更、または削除できます。
まだ構成されていない場合は、S3 バケットを保持する AWS アカウントの AWS インテグレーションをセットアップします。
新しいストレージアカウントのあるサブスクリプション内で Azure インテグレーションをセットアップしていない場合、セットアップします。これには、Datadog が統合に使用できるアプリ登録の作成も含まれます。
GCS ストレージバケットを持つプロジェクト用の GCP インテグレーションをセットアップしていない場合、セットアップします。これには Datadog が統合に使用できる GCP サービスアカウントの作成 も含まれます。
AWS コンソールにアクセスし、アーカイブを転送する S3 バケットを作成します。バケットを一般が閲覧できないように設定してください。
GCP アカウントにアクセスし、アーカイブを転送する GCS バケットを作成します。「Choose how to control access to objects」で、「Set object-level and bucket-level permissions」を選択します。
次の 2 つのアクセス許可ステートメントを IAM ポリシーに追加します。バケット名を編集し、必要に応じてログアーカイブを含むパスを指定します。
注:
GetObject
および ListBucket
アクセス許可は、アーカイブからリハイドレートを可能にします。PutObject
アクセス許可で十分です。{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DatadogUploadAndRehydrateLogArchives",
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObject"],
"Resource": [
"arn:aws:s3:::<バケット名_1_/_バケットへのパス_任意_1>/*",
"arn:aws:s3:::<バケット名_2_/_バケットへのパス_任意_2>/*"
]
},
{
"Sid": "DatadogRehydrateLogArchivesListBucket",
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": [
"arn:aws:s3:::<バケット名_1>",
"arn:aws:s3:::<バケット名_2>"
]
}
]
}
Datadog GCP サービスアカウントに、バケットへアーカイブを書き込むために必要な許可を与えます。
Storage に、Storage Object Creator (アーカイブを生成する場合)、Storage Object Viewer (アーカイブからリハイドレートする場合) というロールを追加します。
Datadog のアーカイブページに移動し、下にある Add a new archive オプションを選択します。
ログの書き込みアーカイブ権限のある Datadog ユーザーだけがこの手順と次の手順を完了させることができます。
S3 バケットに適した AWS アカウントとロールの組み合わせを選択します。
バケット名を入力します。任意: ログアーカイブのすべてのコンテンツにプレフィックスディレクトリを入力します。
Azure Storage アーカイブタイプを選択し、ストレージアカウントで Storage Blob Data Contributor ロールのある Datadog アプリ用の Azure テナントとクライアントを選択します。
ストレージアカウント名とアーカイブのコンテナ名を入力します。任意: ログアーカイブのすべてのコンテンツにプレフィックスディレクトリを入力します。
GCS のアーカイブタイプを選択し、ストレージバケットに書き込む権限を持つ GCS サービスアカウントを選択します。バケット名を入力します。
バケット名を入力します。任意: ログアーカイブのすべてのコンテンツにプレフィックスディレクトリを入力します。
デフォルト:
オプションで、コンフィギュレーションステップを使用し、アーカイブにロールを割り当て、以下を実行できるユーザーを設定できます。
このコンフィギュレーションのオプション手順を使用すると、以下が可能です。
S3 バケットにライフサイクルコンフィギュレーションを設定して、ログアーカイブを最適なストレージクラスに自動的に移行できます。
リハイドレートは、Glacier および Glacier Deep Archive を除くすべてのストレージクラスをサポートしています。Glacier または Glacier Deep Archive ストレージクラスのアーカイブからリハイドレートする場合は、まずそれらを別のストレージクラスに移動する必要があります。
サーバー側の暗号化を S3 ログアーカイブに追加するもっとも簡単な方法は、S3 のネイティブサーバーサイド暗号化 SSE-S3 を利用することです。
有効化するには S3 バケットの Properties タブに移動し、Default Encryption を選択します。AES-256
オプションを選択して、Save を選択します。
また、Datadog は CMK を利用した AWS KMS からのサーバーサイド暗号化もサポートしています。有効化するには次の手順に従ってください。
{
"Id": "key-consolepolicy-3",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<MY_AWS_ACCOUNT_NUMBER>:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<MY_AWS_ACCOUNT_NUMBER>:role/<MY_DATADOG_IAM_ROLE_NAME>"
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
},
{
"Sid": "Allow attachment of persistent resources",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<MY_AWS_ACCOUNT_NUMBER>:role/<MY_DATADOG_IAM_ROLE_NAME>"
},
"Action": [
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": "*",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
}
]
}
Datadog アカウントでアーカイブ設定が正常に構成された時点から、処理パイプラインは Datadog が収集したすべてのログを加工し始めます。その後アーカイブに転送されます。
ただし、アーカイブ構成を作成または更新してから次にアーカイブのアップロードが試行されるまで、数分かかることがあります。ログは15分ごとにアーカイブにアップロードされるので、15 分待ってストレージバケットをチェックし、Datadog アカウントからアーカイブが正常にアップロードされたことを確認してください。その後、アーカイブが依然として保留中の場合は、包含フィルターをチェックしクエリが有効であることと、live tail でログイベントが一致することを確認します。
Datadog でコンフィギュレーションの問題が検出された場合、該当するアーカイブがコンフィギュレーションページでハイライトされます。エラーアイコンをチェックして、修正するためにとるべきアクションを確認します。
複数のアーカイブが定義された場合、ログはフィルターに一致する最初のアーカイブに保存されるため、アーカイブの順番は慎重に決定する必要があります。
たとえば、最初に env:prod
タグで絞り込まれるアーカイブを作成し、次にフィルターなし (*
と同等) でアーカイブを作成した場合、すべてのプロダクションログは一方のストレージバケット/パスに転送され、その他のログはもう一方のアーカイブに転送されます。
Datadog がストレージバケットに転送するログアーカイブは、圧縮 JSON 形式(.json.gz
)になっています。アーカイブは、次のように指定したプレフィックスの下の (指定しなかった場合は /
)、アーカイブファイルが生成された日時を示すディレクトリ構造に保存されます。
/my/bucket/prefix/dt=20180515/hour=14/archive_143201.1234.7dq1a9mnSya3bFotoErfxl.json.gz
/my/bucket/prefix/dt=<YYYYMMDD>/hour=<HH>/archive_<HHmmss.SSSS>.<DATADOG_ID>.json.gz
このディレクトリ構造により、過去のログアーカイブを日付に基づいてクエリする処理が簡略化されます。
圧縮 JSON ファイル内の各イベントは、以下の形式で内容が表されます。
{
"_id": "123456789abcdefg",
"date": "2018-05-15T14:31:16.003Z",
"host": "i-12345abced6789efg",
"source": "source_name",
"service": "service_name",
"status": "status_level",
"message": "2018-05-15T14:31:16.003Z INFO rid='acb-123' status=403 method=PUT",
"attributes": { "rid": "abc-123", "http": { "status_code": 403, "method": "PUT" } },
"tags": [ "env:prod", "team:acme" ]
}
注: アーカイブへのタグの追加はオプトイン機能です。アーカイブに有効にする方法については、Datadog タグのセクションを参照してください。
次に、Datadog からアーカイブされたログコンテンツにアクセスする方法を説明します。
お役に立つドキュメント、リンクや記事: