Kubernetes 上の Datadog Agent の構成

概要

Kubernetes 環境に Datadog Agent をインストールした後、追加の構成オプションを選択することができます。

ライブコンテナ

Datadog AgentCluster Agent は、ライブコンテナの Kubernetes リソースを取得するように構成できます。この機能により、特定のネームスペースまたはアベイラビリティーゾーンのポッド、デプロイメント、その他の Kubernetes の概念の状態を監視したり、デプロイメント内で失敗したポッドのリソース仕様を確認したり、ノードアクティビティを関係するログに関連付けたりすることが可能になります。

コンフィギュレーションの説明や追加の情報については、ライブコンテナドキュメントを参照してください。

イベント収集

Datadog Operator では、イベント収集がデフォルトで有効になっています。これは DatadogAgent 構成の features.eventCollection.collectKubernetesEvents で管理することができます。

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>
    site: <DATADOG_SITE>

  features:
    eventCollection:
      collectKubernetesEvents: true

Cluster Agent は、Kubernetes のイベントを収集し報告します。

Kubernetes のイベントを Datadog Cluster Agent で収集したい場合は、values.yaml ファイルで clusterAgent.enableddatadog.collectEventsclusterAgent.rbac.create オプションが true に設定されていることを確認してください。

datadog:
  collectEvents: true
clusterAgent:
  enabled: true
  rbac: 
    create: true

Cluster Agent を使用しない場合でも、values.yaml ファイルで datadog.leaderElectiondatadog.collectEventsagents.rbac.create オプションを true に設定すれば、Node Agent に Kubernetes イベントを収集させることができます。

datadog:
  leaderElection: true
  collectEvents: true
agents:
  rbac:
    create: true

DaemonSet の構成については、DaemonSet Cluster Agent のイベント収集を参照してください。

インテグレーション

クラスター内で Agent が実行されたら、Datadog のオートディスカバリー機能を使いポッドからメトリクスとログを自動的に収集します。

環境変数

DaemonSet を使用する Datadog Agent で使用できる環境変数の一覧は以下のとおりです。Helm を使用している場合は、helm/charts GitHub repository にある datadog-value.yaml ファイルに対する構成オプションの全リストを参照してください。Operator を使用している場合は、Operator 構成のドキュメントを参照してください。

グローバルオプション

環境変数説明
DD_API_KEYDatadog API キー (必須)
DD_ENV出力されるすべてのデータにグローバル env タグを設定します。
DD_HOSTNAMEメトリクスに使用するホスト名 (自動検出が失敗した場合)
DD_TAGSスペース区切りのホストタグ。例: simple-tag-0 tag-key-1:tag-value-1
DD_SITEメトリクス、トレース、ログの送信先サイト。DD_SITE で、デフォルトは datadoghq.com です。
DD_DD_URLメトリクス送信用 URL を上書きします。設定は任意です。
DD_URL (6.36+/7.36+)DD_DD_URL のエイリアス。すでに DD_DD_URL が設定されている場合は無視されます。
DD_CHECK_RUNNERSAgent はデフォルトですべてのチェックを同時に実行します (デフォルト値は 4 ランナーです)。チェックを順次実行する場合は、値を 1 に設定してください。ただし、多数のチェック (または時間のかかるチェック) を実行する必要がある場合、collector-queue コンポーネントが遅延して、ヘルスチェックに失敗する可能性があります。ランナーの数を増やすと、チェックを並行して実行できます。
DD_LEADER_ELECTIONクラスターで複数の Agent インスタンスが実行されている場合は、この変数を true に設定して、イベント収集の重複を回避します。

プロキシ設定

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

環境変数説明
DD_PROXY_HTTPhttp リクエスト用のプロキシとして使用する HTTP URL です。
DD_PROXY_HTTPShttps リクエスト用のプロキシとして使用する HTTPS URL です。
DD_PROXY_NO_PROXYプロキシを使用すべきではない場合に必要となる、URL をスペースで区切ったリストです。
DD_SKIP_SSL_VALIDATIONAgent と Datadog との接続で問題が発生した場合にテストを実施するオプションです。

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

オプションの収集 Agent

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

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

ライブコンテナビューを有効にするには、DD_PROCESS_AGENT_ENABLED を true に設定した上で Process Agent を実行していることをご確認ください。

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 は Kubernetes から一般的なタグを自動的に収集します。さらに多くのタグを抽出するには、次のオプションを使用します。

環境変数説明
DD_KUBERNETES_POD_LABELS_AS_TAGSポッドラベルを抽出します
DD_KUBERNETES_POD_ANNOTATIONS_AS_TAGSポッドアノテーションを抽出します

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

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

インテグレーションの資格情報を 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:.*

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

: kubernetes.containers.runningkubernetes.pods.runningdocker.containers.running.stopped.running.total.stopped.total の各メトリクスは、この設定の影響を受けません。すべてのコンテナを対象とします。

その他

環境変数説明
DD_PROCESS_AGENT_CONTAINER_SOURCEコンテナソースの自動検出を上書きして、1 つのソースに制限します ("docker""ecs_fargate""kubelet" など)。Agent v7.35.0 以降、不要になりました。
DD_HEALTH_PORTこれを 5555 に設定すると、Agent のヘルスチェックをポート 5555 で公開します。
DD_CLUSTER_NAMEカスタム Kubernetes クラスター識別子を設定して、ホストエイリアスの衝突を回避します。クラスター名は最大 40 文字で、小文字、数字、およびハイフンのみという制限があります。また、文字で始める必要があり、 数字または文字で終わる必要があります。

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