- はじめに
- エージェント
- インテグレーション
- Watchdog
- イベント
- ダッシュボード
- モバイルアプリケーション
- インフラストラクチャー
- サーバーレス
- メトリクス
- ノートブック
- アラート設定
- APM & Continuous Profiler
- CI Visibility
- RUM & セッションリプレイ
- データベース モニタリング
- ログ管理
- セキュリティプラットフォーム
- Synthetic モニタリング
- ネットワークモニタリング
- 開発者
- API
- アカウントの管理
- データセキュリティ
- ヘルプ
Amazon ECS は、Docker コンテナに対応する、拡張性とパフォーマンスに優れたコンテナオーケストレーションサービスです。Datadog Agent と使用すると、クラスター内のすべての EC2 インスタンスの ECS コンテナおよびタスクを監視できます。
このページは Datadog コンテナ Agent v6 を使用した Amazon ECS のセットアップについて説明します。他のセットアップについては、以下を参照してください。
注: Fargate で ECS を設定する場合は、代わりにこのドキュメントに従ってください。
セットアップを開始するには、ECS クラスター内のすべての EC2 インスタンスで Datadog Agent を実行します。稼働中の EC2 Container Service クラスターが構成されていない場合は、ECS ドキュメント内の Getting Started セクションを参照してクラスターを設定、構成します。構成したら、下記のセットアップ手順に従います。
注: ECS および Docker を併用して Datadog のオートディスカバリーを実行すると、環境内で実行中のタスクを自動的に検出して監視できます。
このタスクにより Datadog コンテナが起動します。コンフィギュレーションを変更するには、このタスクの定義を更新します(方法はこのガイドで後述)。
APM、DogStatsD、またはログ管理を使用している場合は、タスク定義で適当なフラグを設定します。
portMappings
を設定します。APM はポート 8126
の TCP
を使用してトレースを受け取るため、これをタスクの定義で hostPort
として設定します。注: 他のコンテナからのトレース収集を有効にするには、DD_APM_NON_LOCAL_TRAFFIC
環境変数を true
に設定する必要があります。APM とコンテナの詳細はこちらをご確認ください。
8125
の hostPort
を UDP
と設定します。注: 他のコンテナからの DogStatsD メトリクス収集を有効にするには、DD_DOGSTATSD_NON_LOCAL_TRAFFIC
環境変数を true
に設定する必要があります。
EC2 インスタンスでセキュリティグループ設定を再度チェックします。これらのポートが非公開であること確認してください。Datadog では、プライベート IP アドレスを使用してトレースをコンテナからエージェントへ渡します。
タスクの構成は AWS CLI ツールや Amazon Web コンソールでも行えます。
Linux コンテナで datadog-agent-ecs.json (オリジナルの Amazon Linux 1 AMI を使用している場合は datadog-agent-ecs1.json) をダウンロードします。Windows の場合は datadog-agent-ecs-win.json をダウンロードします。
datadog-agent-ecs.json
を編集し、アカウントの Datadog API キーを使用して <YOUR_DATADOG_API_KEY>
を設定します。
オプション - Agent 健全性チェックを追加します。
ECS タスク定義に次を追加して、Agent 健全性チェックを作成します。
"healthCheck": {
"retries": 3,
"command": ["CMD-SHELL","agent health"],
"timeout": 5,
"interval": 30,
"startPeriod": 15
}
オプション - Datadog EU サイトをご利用の場合は、datadog-agent-ecs.json
を編集して DD_SITE
を DD_SITE:datadoghq.eu
に設定します。
オプション - ログの収集を有効にするには、ログの収集を参照してください。
オプション - プロセスの収集を有効にするには、プロセスの収集を参照してください。
オプション - トレースの収集を有効にするには、トレースの収集 (APM) を参照してください。
オプション - ネットワークの収集を有効にするには、ネットワークパフォーマンスモニタリング (NPM) を参照してください
次のコマンドを実行します。
aws ecs register-task-definition --cli-input-json <path to datadog-agent-ecs.json>
datadog-agent-task
)。docker_sock
と入力します。Source Path に、Linux の場合は /var/run/docker.sock
、Windows の場合は \\.\pipe\docker_engine
と入力し、Add をクリックします。proc
、ソースパスを /proc/
に設定します。cgroup
、ソースパスを /sys/fs/cgroup/
(オリジナルの Amazon Linux 1 AMI を使用している場合は /cgroup/
) に設定します。datadog-agent
と入力します。gcr.io/datadoghq/agent:latest
と入力します。256
と入力します。注: 多くのリソースを使用する場合は、メモリの上限を上げる必要があります。10
と入力します。
注: Windows の場合は、Timeout while starting the service
のエラーが発生しないよう CPU units に 512
以上を入力します。DD_API_KEY
を追加し、値に Datadog API キーを入力します。こうした守秘性の高い情報を S3 に保管したい場合は、ECS の構成ガイドを参照してください。*DD_TAGS
キーを使用して、追加するタグに別の環境変数を追加します。/var/run/docker.sock
、Windows の場合は \\.\pipe\docker_engine
と入力します。Read only のチェックボックスをオンにします。/host/proc/
と入力します。Read only チェックボックスをオンにします。/host/sys/fs/cgroup
と入力します。Read only チェックボックスをオンにします。注: Datadog タスク定義で CPU を 10 台使用するように設定すると、service:datadog-agent
の aws.ecs.cpuutilization
が 1000% と表示されることがあります。これは AWS が CPU 使用率を表示する際の独特な現象です。CPU の台数を増やすことで、グラフの歪曲を回避できます。
Amazon ECS のメトリクスを収集するために、次のアクセス許可を Datadog IAM ポリシーに追加します。ECS ポリシーの詳細については、AWS Web サイトのガイドを参照してください。
AWS アクセス許可 | 説明 |
---|---|
ecs:ListClusters | 既存のクラスターのリストを返します。 |
ecs:ListContainerInstances | 指定されたクラスター内のコンテナインスタンスのリストを返します。 |
ecs:ListServices | 指定したクラスターで実行されているサービスを一覧表示します。 |
ecs:DescribeContainerInstances | Amazon ECS コンテナインスタンスについて説明します。 |
Datadog Agent は、各 EC2 インスタンス上の 1 つのコンテナーで実行するのが理想的です。最も簡単なのは、Datadog Agent をデーモン サービスとして実行する方法です。
DAEMON
を選択し、サービス名を入力したら Next をクリックします。以下の方法で、コンテナの処理情報を収集し Datadog に送信します。
{
"containerDefinitions": [
{
(...)
"mountPoints": [
{
(...)
},
{
"containerPath": "/var/run/docker.sock",
"sourceVolume": "docker_sock",
"readOnly": true
},
{
(...)
}
],
"environment": [
(...)
{
"name": "DD_API_KEY",
"value": "<YOUR_DATADOG_API_KEY>"
}
]
}
],
"volumes": [
{
"host": {
"sourcePath": "/var/run/docker.sock"
},
"name": "docker_sock"
},
(...)
],
"family": "datadog-agent-task"
}
{
"containerDefinitions": [
(...)
"environment": [
(...)
{
"name": "DD_PROCESS_AGENT_ENABLED",
"value": "true"
}
]
}
],
"family": "datadog-agent-task"
}
この機能は、Linux でのみ使用可能です
datadog-agent-ecs.json
ファイル、datadog-agent-sysprobe-ecs.json (オリジナルの Amazon Linux AMI を使用している場合は datadog-agent-sysprobe-ecs1.json) を使用できます。使用方法については、上記の手順に従ってください。AWS UI では linuxParameters
を追加できないため、初回の NPM セットアップでは CLI が必要です。{
"containerDefinitions": [
(...)
"mountPoints": [
(...)
{
"containerPath": "/sys/kernel/debug",
"sourceVolume": "debug"
},
(...)
],
"environment": [
(...)
{
"name": "DD_SYSTEM_PROBE_ENABLED",
"value": "true"
}
],
"linuxParameters": {
"capabilities": {
"add": [
"SYS_ADMIN",
"SYS_RESOURCE",
"SYS_PTRACE",
"NET_ADMIN"
]
}
},
],
"requiresCompatibilities": [
"EC2"
],
"volumes": [
(...)
{
"host": {
"sourcePath": "/sys/kernel/debug"
},
"name": "debug"
},
(...)
],
"family": "datadog-agent-task"
}
Agent バージョン 6.10 以降は、ホストインスタンスのセキュリティグループが関連するポート上の適用可能なコンテナに到達できるよう、セキュリティグループが設定されている場合には、適用可能なコンテナに awsvpc
モードが対応しています。
Agent を awsvpc
モードで実行することは可能ですが、これは推奨されるセットアップではありません。Agent を DogStatsD メトリクスや APM トレースに到達させるための ENI IP を取得することが難しい可能性があるからです。
代わりに、ブリッジモードで Agent をポートマッピングとともに実行すると、メタデータサーバを介するホスト IP を簡単に取得できます。
ご不明な点は、Datadog のサポートチームまでお問い合わせください。
お役に立つドキュメント、リンクや記事: