Docker Agent
Dash が新機能を発表!インシデントマネジメント、Continuous Profiler など多数の機能が追加されました! Dash イベントで発表された新機能!

Docker Agent

概要

Datadog Docker Agent は、ホスト Agent をコンテナ化したバージョンです。公式の Docker イメージは Docker Hub からご利用いただけます。

64-bit x86 および Arm v8 アーキテクチャ用のイメージをご用意しています。

セットアップ

Docker Agent をまだインストールしていない場合は、以下の手順またはアプリ内のインストール手順を参照してください。サポートされるバージョンについては、Agent のドキュメントを参照してください。ワンステップインストールコマンドを使用し、<ご使用の_DATADOG_API_キー>Datadog API キーと置き換えてください。

DOCKER_CONTENT_TRUST=1 docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_API_KEY=<DATADOG_API_KEY> datadog/agent:7
DOCKER_CONTENT_TRUST=1 docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /cgroup/:/host/sys/fs/cgroup:ro -e DD_API_KEY=<DATADOG_API_KEY> datadog/agent:7

Datadog Agent は、Windows Server 2019 (LTSC) とバージョン 1909 (SAC) でサポートされています。

docker run -d --name dd-agent -e DD_API_KEY=<API_キー> -v \\.\pipe\docker_engine:\\.\pipe\docker_engine datadog/agent:latest

(オプション) 非特権インストールを実行するには、インストールコマンドに --group-add=<DOCKER_GROUP_ID> を追加します。次に例を示します。

DOCKER_CONTENT_TRUST=1 docker run -d --name dd-agent -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e DD_API_KEY=<DATADOG_API_KEY> datadog/agent:7 --group-add=<DOCKER_GROUP_ID>

: Docker Compose については、Compose と Datadog Agent を参照してください。

インテグレーション

クラスター内で Agent を起動し、実行したら、Datadog のオートディスカバリー機能を使ってアプリケーションコンテナからメトリクスとログを自動的に収集します。

環境変数

Agent の メインコンフィギュレーションファイルdatadog.yaml です。Docker Agent の場合、datadog.yaml コンフィギュレーションオプションは環境変数で渡されます。

グローバルオプション

環境変数説明
DD_API_KEYDatadog API キー (必須)
DD_ENV出力されるすべてのデータにグローバル env タグを設定します。
DD_HOSTNAMEメトリクスに使用するホスト名 (自動検出が失敗した場合)
DD_TAGSスペース区切りのホストタグ。例: simple-tag-0 tag-key-1:tag-value-1
DD_SITEメトリクス、トレース、およびログの送信先サイト。有効なオプションは、datadoghq.com (Datadog US サイト) および datadoghq.eu (Datadog EU サイト) です。
DD_DD_URLメトリクス送信用 URL を上書きします。設定は任意です。
DD_CHECK_RUNNERSAgent はデフォルトですべてのチェックを同時に実行します (デフォルト値は 4 ランナーです)。チェックを順次実行する場合は、値を 1 に設定してください。ただし、多数のチェック (または時間のかかるチェック) を実行する必要がある場合、collector-queue コンポーネントが遅延して、ヘルスチェックに失敗する可能性があります。ランナーの数を増やすと、チェックを並行して実行できます。

プロキシ設定

Agent v6.4.0 (トレース Agent の場合は v6.5.0) より、以下の環境変数を使用して Agent のプロキシ設定を上書きできるようになりました。

環境変数説明
DD_PROXY_HTTPhttp リクエスト用のプロキシとして使用する HTTP URL です。
DD_PROXY_HTTPShttps リクエスト用のプロキシとして使用する HTTPS URL です。
DD_PROXY_NO_PROXYプロキシを使用すべきではない場合に必要となる、URL をスペースで区切ったリストです。

プロキシ設定の詳細については、Agent v6 プロキシのドキュメントを参照してください。

オプションの収集 Agent

セキュリティまたはパフォーマンス上の理由により、オプションの収集 Agent はデフォルトで無効になっています。このエージェントを有効にするには、以下の環境変数を使用します。

環境変数説明
DD_APM_ENABLEDトレース Agent による トレースの収集を有効にします。
DD_LOGS_ENABLEDログ Agent によるログの収集を有効にします。
DD_PROCESS_AGENT_ENABLEDプロセス Agent によるライブプロセスの収集を有効にします。Docker ソケットがある場合、ライブコンテナービューはすでにデフォルトで有効になっています。false に設定すると、ライブプロセスの収集ライブコンテナービューが無効になります。

DogStatsD (カスタムメトリクス)

カスタムメトリクスを StatsD プロトコルで送信します。

環境変数説明
DD_DOGSTATSD_NON_LOCAL_TRAFFIC他のコンテナからの DogStatsD パケットをリスニングします (カスタムメトリクスの送信に必要)。
DD_HISTOGRAM_PERCENTILES計算するヒストグラムのパーセンタイル (スペース区切り)。デフォルトは 0.95 です。
DD_HISTOGRAM_AGGREGATES計算するヒストグラムの集計 (スペース区切り)。デフォルトは “max median avg count” です。
DD_DOGSTATSD_SOCKETリスニングする UNIX ソケットのパス。rw でマウントされたボリューム内にある必要があります。
DD_DOGSTATSD_ORIGIN_DETECTIONUNIX ソケットのメトリクス用にコンテナの検出とタグ付けを有効にします。
DD_DOGSTATSD_TAGSこの DogStatsD サーバーが受信するすべてのメトリクス、イベント、サービスのチェックに付加する追加タグ。たとえば ["env:golden", "group:retrievers"] のように追加します。

詳細については、Unix ドメインソケット上の DogStatsD を参照してください。

タグ付け

ベストプラクティスとして、Datadog はタグを割り当てるときに統合サービスタグ付けを使用することをお勧めします。

Datadog は DockerKubernetesECSSwarm、Mesos、Nomad、Rancher からの一般的なタグを自動的に収集します。さらに多くのタグを抽出するには、次のオプションを使用します。

環境変数説明
DD_DOCKER_LABELS_AS_TAGSDocker コンテナラベルを抽出します
DD_DOCKER_ENV_AS_TAGSDocker コンテナ環境変数を抽出します
DD_COLLECT_EC2_TAGSAWS インテグレーションを使用せずに、カスタム EC2 タグを抽出します

詳細については、Docker タグの抽出ドキュメントを参照してください。

シークレットファイルの使用

インテグレーションの資格情報を Docker や Kubernetes のシークレットに格納し、オートディスカバリーテンプレートで使用できます。詳細については、シークレット管理のドキュメントを参照してください。

コンテナの無視

ログの収集、メトリクスの収集、オートディスカバリーからコンテナを除外します。Datadog はデフォルトで Kubernetes と OpenShift の pause コンテナを除外します。これらの許可リストとブロックリストはオートディスカバリーにのみ適用されます。トレースと DogStatsD は影響を受けません。

環境変数説明
DD_CONTAINER_INCLUDE処理対象に入れるコンテナの許可リスト (スペース区切り)。すべてを対象に入れる場合は、.* を使用します。例: "image:image_name_1 image:image_name_2"image:.*
DD_CONTAINER_EXCLUDE処理対象から除外するコンテナのブロックリスト (スペース区切り)。すべてを対象から除外する場合は、.* を使用します。例: "image:image_name_3 image:image_name_4" (: この変数はオートディスカバリーに対してのみ有効)、image:.*
DD_CONTAINER_INCLUDE_METRICSメトリクスを含めたいコンテナの許可リスト。
DD_CONTAINER_EXCLUDE_METRICSメトリクスを除外したいコンテナのブロックリスト。
DD_CONTAINER_INCLUDE_LOGSログを含めたいコンテナの許可リスト。
DD_CONTAINER_EXCLUDE_LOGSログを除外したいコンテナのブロックリスト。
DD_AC_INCLUDE非推奨: 処理対象に入れるコンテナの許可リスト (スペース区切り)。すべてを対象に入れる場合は、.* を使用します。例: "image:image_name_1 image:image_name_2"image:.*
DD_AC_EXCLUDE非推奨: 処理対象から除外するコンテナのブロックリスト (スペース区切り)。すべてを対象から除外する場合は、.* を使用します。例: "image:image_name_3 image:image_name_4" (: この変数はオートディスカバリーに対してのみ有効)、image:.*

その他の例はコンテナのディスカバリー管理 ページでご確認いただけます。

: docker.containers.running.stopped.running.total.stopped.total の各メトリクスは、この設定の影響を受けません。すべてのコンテナを対象とします。コンテナごとの課金にも影響しません。

その他

環境変数説明
DD_PROCESS_AGENT_CONTAINER_SOURCEコンテナソースの自動検出を上書きして、1 つのソースに制限します ("docker""ecs_fargate""kubelet" など)。
DD_HEALTH_PORTこれを 5555 に設定すると、Agent のヘルスチェックをポート 5555 で公開します。

リスナーおよび構成プロバイダーを追加するには、DD_EXTRA_LISTENERSDD_EXTRA_CONFIG_PROVIDERS の環境変数を使用します。これらは datadog.yaml 構成ファイルの listeners セクションと config_providers セクションに定義する変数に追加されます。

コマンド

すべての Docker Agent コマンドは Agent コマンドガイドでご確認いただけます。

収集データ

メトリクス

デフォルトで、Docker Agent はメトリクスを以下の主要なチェックのために収集します。他のテクノロジーからメトリクスを収集するには、インテグレーションのセクションを参照してください。

チェックメトリクス
CPUSystem
ディスクDisk
DockerDocker
ファイル処理System
IOSystem
ロードSystem
メモリSystem
ネットワークNetwork
NTPNTP
アップタイムSystem

イベント

Agent の起動または再起動の際に、Docker Agent はイベントを Datadog に送信します。

サービスチェック

datadog.agent.up:
Agent が Datadog に接続できない場合は、CRITICAL を返します。それ以外の場合は、OK を返します。

datadog.agent.check_status:
Agent チェックが Datadog にメトリクスを送信できない場合は、CRITICAL を返します。それ以外の場合は、OK を返します。

その他の参考資料