Supported OS Linux Mac OS

: Docker Daemon チェックのメンテナンスは継続されていますが、Agent v5 でのみ動作します。

Agent v6 で Docker インテグレーションを使用するには、下の Agent v6 セクションを参照してください。

Docker のデフォルトのダッシュボード

概要

この Agent チェックを構成して Docker_daemon サービスからリアルタイムにメトリクスを取得することで、以下のことが可能です。

  • Docker_daemon の状態を視覚化および監視できます。
  • Docker_daemon のフェイルオーバーとイベントの通知を受けることができます。

セットアップ

インストール

すべてのコンテナに関する Docker メトリクスを収集するには、ホストごとに 1 つの Datadog Agent を実行します。各ホストで直接 Agent を実行する方法と、1 つの docker-dd-agent コンテナ内で実行する方法 (推奨) の 2 つがあります。

どちらのオプションでも、Docker チェックが成功するには、ホストで cgroup メモリ管理が有効になっている必要があります。これを有効にする方法については、docker-dd-agent リポジトリを参照してください。

ホストのインストール

  1. ホストで Docker が実行されていることを確認します。
  2. ホスト OS に対応する Agent のインストール手順に従って、Agent をインストールします。
  3. アプリケーションで Docker インテグレーションタイルを有効にします。
  4. usermod -a -G docker dd-agent を使用して、Docker グループに Agent ユーザーを追加します。
  5. Agent の conf.d ディレクトリにあるサンプルファイルをコピーして、docker_daemon.yaml ファイルを作成します。ホストの Docker が標準インストールの場合は、何も変更しなくてもインテグレーションは動作します。
  6. その他のインテグレーションを有効にするには、docker ps を使用して、対応するアプリケーションが使用するポートを識別します。 Docker ps コマンド

コンテナのインストール

  1. ホストで Docker が実行されていることを確認します。

  2. Docker コンテナのインストール手順に従って、以下を実行します。

     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 API_KEY={YOUR_DD_API_KEY} \
       datadog/docker-dd-agent:latest
    

上のコマンドで、Docker の -e 環境変数フラグを使用して、Datadog Agent に API キーを渡すことができます。そのほかに以下の変数があります。

変数説明
API_KEYDatadog API キーを設定します。
DD_HOSTNAMEAgent コンテナの datadog.conf ファイル内にホスト名を設定します。この変数が設定されない場合、Agent コンテナは、デフォルトで (docker info コマンドで報告される) Name フィールドを Agent コンテナホスト名として使用します。
DD_URLAgent がデータを送信する Datadog インテークサーバー URL を設定します。これは、Agent をプロキシとして使用する際に役立ちます。
LOG_LEVELログの詳細度を設定します (CRITICAL、ERROR、WARNING、INFO、DEBUG)。たとえば、-e LOG_LEVEL=DEBUG は、ログをデバッグモードに設定します。
TAGSホストタグをカンマ区切りの文字列として設定します。-e TAGS="simple-tag, tag-key:tag-value" のように、シンプルなタグとキー/値形式のタグの両方を使用できます。
EC2_TAGSこの機能を有効にすると、Agent はスタートアップ時に EC2 API を使用して設定されたカスタムタグを問い合わせたり、キャプチャしたりすることができます。有効にするには、-e EC2_TAGS=yes を使用します。: この機能には、インスタンスに関連付けられた IAM ロールが必要です。
NON_LOCAL_TRAFFICこの機能を有効にすると、外部の IP から報告する StatsD が許可されます。有効にするには、-e NON_LOCAL_TRAFFIC=yes を使用します。これは、別のコンテナまたはシステムからメトリクスを報告するために使用されます。詳細については、ネットワーク構成を参照してください。
PROXY_HOST, PROXY_PORT, PROXY_USER, PROXY_PASSWORDプロキシ構成の詳細を設定します。: 認証パスワードを渡すには PROXY_PASSWORD が必要です。名前の変更はできません。詳細については、Agent プロキシに関するドキュメントを参照してください。
SD_BACKEND, SD_CONFIG_BACKEND, SD_BACKEND_HOST, SD_BACKEND_PORT, SD_TEMPLATE_DIR, SD_CONSUL_TOKENオートディスカバリーを有効化および構成します。詳細については、オートディスカバリーのガイドを参照してください。

: Agent に再起動に対する耐性を持たせるには、--restart=unless-stopped を追加します。

Agent コンテナを Amazon Linux で実行

Datadog Agent コンテナを Amazon Linux で実行するには、cgroup ボリュームマウントロケーションに以下の変更を行います。

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 API_KEY={YOUR API KEY} \
  datadog/docker-dd-agent:latest

Alpine Linux ベースのコンテナ

標準の Docker イメージは Debian Linux に基づいていますが、Datadog Agent v5.7 では Alpine Linux ベースのイメージがあります。Alpine Linux イメージは、従来の Debian ベースのイメージに比べてサイズが大幅に小さくなっています。また、Alpine のセキュリティ指向の設計も継承しています。

Alpine Linux イメージを使用するには、バージョンタグに -alpine を追加します。たとえば、以下のとおりです。

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 API_KEY={YOUR API KEY} \
  datadog/docker-dd-agent:latest-alpine

イメージのバージョン管理

Datadog Agent のバージョン 5.5.0 から、Docker イメージのバージョンパターンが新しくなりました。これにより、Agent のバージョンは同じまま、Datadog Agent の Docker イメージに対する変更をリリースできるようになりました。

Docker イメージバージョンは、X.Y.Z というパターンです。ここで、X は Docker イメージのメジャーバージョン、Y はマイナーバージョン、Z は Agent のバージョンを表します。

たとえば、Datadog Agent 5.5.0 をバンドルした Docker イメージの最初のバージョンは 10.0.550 です。

カスタムコンテナと追加情報

Datadog Agent を使用したカスタム Docker コンテナの構築、Alpine Linux ベースのイメージ、バージョン管理などについては、Github の docker-dd-agent プロジェクトを参照してください。

検証

Agent の status サブコマンドを実行し、Checks セクションで docker_daemon を探します。

Agent v6

最新の Docker チェックの名前は docker です。これは、新しい内部アーキテクチャを利用するために Go で記述されています。v6.0 以降の Agent は、docker_daemon チェックをロードしません。ただし、Agent v5 では引き続き使用でき、メンテナンスも継続されます。以下の非推奨の機能以外のすべての機能は、バージョン >6.0 に移植されます。

  • urlapi_version、および tags* オプションは非推奨です。標準の Docker 環境変数を直接使用することをお勧めします。
  • ecs_tagsperformance_tags、および container_tags オプションは非推奨です。関連するタグはそれぞれデフォルトで収集されます。
  • docker.container.count メトリクスを有効にする collect_container_count オプションはサポートされません。docker.containers.running.stopped を使用してください。

一部のオプションは docker_daemon.yaml からメインの datadog.yaml に移動しました。

  • collect_labels_as_tagsdocker_labels_as_tags という名前に変更され、カーディナリティの高いタグをサポートします。詳細は、datadog.yaml.example を参照してください。
  • exclude リストと include リストは、ac_includeac_exclude という名前に変更されました。Agent のすべてのコンポーネントで一貫性のある絞り込みを行うために、任意のタグの絞り込みは削除されました。サポートされる絞り込みタグは、image (イメージ名) と name (コンテナ名) だけです。正規表現絞り込みは引き続き使用できます。例については、datadog.yaml.example を参照してください。
  • docker_root オプションは、container_cgroup_rootcontainer_proc_root の 2 つのオプションに分割されました。
  • Kubernetes と Openshift で一時停止中のコンテナを除外する exclude_pause_container が追加されました (デフォルトは true)。これは、それらが誤って除外リストから漏れることを防ぎます。

その他の変更

import コマンドは、古い docker_daemon.yaml を新しい docker.yaml に変換します。また、このコマンドは、必要な設定を docker_daemon.yaml から datadog.yaml に移動します。

収集データ

メトリクス

イベント

Docker インテグレーションは以下のイベントを生成します。

  • Delete Image
  • Die
  • Error
  • Fail
  • Kill
  • Out of memory (oom)
  • Pause
  • Restart container
  • Restart Daemon
  • Update

サービスチェック

: docker.exit を使用するには、Docker YAML ファイルcollect_exit_codes: true を追加し、Agent を再起動します。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問い合わせください。

その他の参考資料

PREVIEWING: may/embedded-workflows