Kubernetes 上の Datadog Agent のさらなる構成
概要
Kubernetes 環境に Datadog Agent をインストールした後、追加の構成オプションを選択することができます。
Datadog による以下の収集を有効にします。
その他の機能
その他の構成
APM とトレースの有効化
datadog-agent.yaml を編集して、features.apm.enabled を true に設定します。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
features:
apm:
enabled: true
After making your changes, apply the new configuration by using the following command:
kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml
Helm では、APM は UDS または Windows の名前付きパイプでデフォルトで有効になっています。
確認するには、values.yaml で、datadog.apm.socketEnabled がtrue に設定されていることを確認してください。
datadog:
apm:
socketEnabled: true
詳細については、Kubernetes トレース収集を参照してください。
Kubernetes イベント収集の有効化
Datadog Cluster Agent を使用して Kubernetes イベントを収集します。
Datadog Operator では、イベント収集がデフォルトで有効になっています。これは datadog-agent.yaml の構成 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
Datadog Cluster Agent で Kubernetes イベントを収集するには、datadog-values.yaml ファイルで clusterAgent.enabled、datadog.collectEvents、clusterAgent.rbac.create オプションが true に設定されていることを確認します。
datadog:
collectEvents: true
clusterAgent:
enabled: true
rbac:
create: true
Cluster Agent を使用しない場合でも、datadog-values.yaml ファイルで datadog.leaderElection、datadog.collectEvents、agents.rbac.create オプションを true に設定すれば、Node Agent に Kubernetes イベントを収集させることができます。
datadog:
leaderElection: true
collectEvents: true
agents:
rbac:
create: true
DaemonSet の構成については、DaemonSet Cluster Agent のイベント収集を参照してください。
CNM 収集の有効化
ご使用の datadog-agent.yaml で、features.npm.enabled を true に設定します。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
features:
npm:
enabled: true
次に、新しい構成を適用します。
kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml
以下の構成で datadog-values.yaml を更新します。
datadog:
# (...)
networkMonitoring:
enabled: true
次に、Helm チャートをアップグレードします。
helm upgrade -f datadog-values.yaml <RELEASE_NAME> datadog/datadog
詳細については、Cloud Network Monitoring を参照してください。
ログ収集の有効化
ご使用の datadog-agent.yaml で、features.logCollection.enabled および features.logCollection.containerCollectAll を true に設定します。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
features:
logCollection:
enabled: true
containerCollectAll: true
次に、新しい構成を適用します。
kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml
以下の構成で datadog-values.yaml を更新します。
datadog:
# (...)
logs:
enabled: true
containerCollectAll: true
次に、Helm チャートをアップグレードします。
helm upgrade -f datadog-values.yaml <RELEASE_NAME> datadog/datadog
詳細については、Kubernetes ログ収集を参照してください。
プロセス収集の有効化
ご使用の datadog-agent.yaml で、features.liveProcessCollection.enabled を true に設定します。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
features:
liveProcessCollection:
enabled: true
次に、新しい構成を適用します。
kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml
以下の構成で datadog-values.yaml を更新します。
datadog:
# (...)
processAgent:
enabled: true
processCollection: true
次に、Helm チャートをアップグレードします。
helm upgrade -f datadog-values.yaml <RELEASE_NAME> datadog/datadog
詳しくは、ライブプロセスをご覧ください。
Datadog Cluster Agent
Cluster Agent は、クラスターレベルのモニタリングデータを収集するための合理化された一元的なアプローチを提供します。Datadog は、Kubernetes のモニタリングに Cluster Agent を使用することを強く推奨します。
Datadog Operator v1.0.0+ と Helm チャート v2.7.0+ では、デフォルトで Cluster Agent が有効になります。それ以上の構成は必要ありません。
Datadog Operator v1.0.0+ は、デフォルトで Cluster Agent を有効にします。Operator は必要な RBAC を作成し、Cluster Agent をデプロイします。両方の Agent が同じ API キーを使用します。
Operator は、安全な通信のために Datadog Agent と Cluster Agent が共有する Kubernetes Secret にランダムなトークンを自動的に生成します。
このトークンは datadog-agent.yaml の global.clusterAgentToken フィールドに手動で指定することができます。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
appKey: <DATADOG_APP_KEY>
clusterAgentToken: <DATADOG_CLUSTER_AGENT_TOKEN>
あるいは、既存の Secret の名前と、このトークンを含むデータキーを参照して、このトークンを指定することもできます。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
appKey: <DATADOG_APP_KEY>
clusterAgentTokenSecret:
secretName: <SECRET_NAME>
keyName: <KEY_NAME>
注: 手動で設定する場合、このトークンは 32 文字の英数字である必要があります。
次に、新しい構成を適用します。
kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml
Helm チャート v2.7.0+ はデフォルトで Cluster Agent を有効にします。
検証のため、datadog-values.yaml で、clusterAgent.enabled が true に設定されていることを確認してください。
clusterAgent:
enabled: true
Helm は、安全な通信のために Datadog Agent と Cluster Agent が共有する Kubernetes Secret にランダムなトークンを自動的に生成します。
このトークンは datadog-agent.yaml の clusterAgent.token フィールドに手動で指定することができます。
clusterAgent:
enabled: true
token: <DATADOG_CLUSTER_AGENT_TOKEN>
あるいは、既存の Secret の名前を参照してこのトークンを指定することもできます。ここで、トークンは token という名前のキーにあります。
clusterAgent:
enabled: true
tokenExistingSecret: <SECRET_NAME>
詳細については、Datadog Cluster Agent のドキュメントを参照してください。
カスタムメトリクスサーバー
Cluster Agent のカスタムメトリクスサーバー機能を使用するには、Datadog のアプリケーションキーを提供し、メトリクスプロバイダーを有効にする必要があります。
datadog-agent.yaml では、spec.global.credentials.appKey の下にアプリケーションキーを提供し、features.externalMetricsServer.enabled を true に設定します。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
appKey: <DATADOG_APP_KEY>
features:
externalMetricsServer:
enabled: true
次に、新しい構成を適用します。
kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml
datadog-values.yaml では、datadog.appKey の下にアプリケーションキーを提供し、clusterAgent.metricsProvider.enabled を true に設定します。
datadog:
apiKey: <DATADOG_API_KEY>
appKey: <DATADOG_APP_KEY>
clusterAgent:
enabled: true
metricsProvider:
enabled: true
次に、Helm チャートをアップグレードします。
helm upgrade -f datadog-values.yaml <RELEASE_NAME> datadog/datadog
Integrations
クラスター内で Agent が実行されたら、Datadog の Autodiscovery 機能を使用して、Pod からメトリクスとログを自動的に収集します。
コンテナビュー
Datadog のコンテナエクスプローラーを利用するには、Process Agent を有効にしてください。Datadog Operator と Helm チャートでは、デフォルトで Process Agent が有効になります。それ以上の構成は必要ありません。
Datadog Operator では、Process Agent がデフォルトで有効になります。
検証のため、datadog-agent.yaml で、features.liveContainerCollection.enabled が true に設定されていることを確認してください。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
appKey: <DATADOG_APP_KEY>
features:
liveContainerCollection:
enabled: true
一部のセットアップでは、Process Agent と Cluster Agent で Kubernetes クラスター名が自動検出されません。この場合、機能は起動せず、Cluster Agent ログで以下のような警告が表示されます。Orchestrator explorer enabled but no cluster name set: disabling。この場合、spec.global.clusterName を datadog-agent.yaml でクラスター名に設定する必要があります。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
clusterName: <YOUR_CLUSTER_NAME>
credentials:
apiKey: <DATADOG_API_KEY>
appKey: <DATADOG_APP_KEY>
features:
orchestratorExplorer:
enabled: true
Helm チャートでは、デフォルトで Process Agent が有効になります。
検証のため、datadog-values.yaml で、processAgent.enabled が true に設定されていることを確認してください。
datadog:
# (...)
processAgent:
enabled: true
一部のセットアップでは、Process Agent と Cluster Agent で Kubernetes クラスター名が自動検出されません。この場合、機能は起動せず、Cluster Agent ログで以下のような警告が表示されます。Orchestrator explorer enabled but no cluster name set: disabling.。この場合、datadog.clusterName を datadog-values.yaml でクラスター名に設定する必要があります。
datadog:
#(...)
clusterName: <YOUR_CLUSTER_NAME>
#(...)
processAgent:
enabled: true
有効なクラスター名の制限については、クラスター名を設定するを参照してください。
詳細については、コンテナビューのドキュメントを参照してください。
オーケストレーターエクスプローラー
Datadog Operator と Helm チャートでは、デフォルトで Datadog のオーケストレーターエクスプローラーが有効になります。それ以上の構成は必要ありません。
Datadog Operator では、オーケストレーターエクスプローラーがデフォルトで有効になります。
検証のため、datadog-agent.yaml で、features.orchestratorExplorer.enabled パラメーターが true に設定されていることを確認してください。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
appKey: <DATADOG_APP_KEY>
features:
orchestratorExplorer:
enabled: true
一部のセットアップでは、Process Agent と Cluster Agent で Kubernetes クラスター名が自動検出されません。この場合、機能は起動せず、Cluster Agent ログで以下のような警告が表示されます。Orchestrator explorer enabled but no cluster name set: disabling。この場合、spec.global.clusterName を datadog-agent.yaml でクラスター名に設定する必要があります。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
clusterName: <YOUR_CLUSTER_NAME>
credentials:
apiKey: <DATADOG_API_KEY>
appKey: <DATADOG_APP_KEY>
features:
orchestratorExplorer:
enabled: true
Helm チャートでは、デフォルトでオーケストレーターエクスプローラーが有効になります。
検証のため、datadog-values.yaml フィルターで、orchestratorExplorer.enabled パラメーターが true に設定されていることを確認してください。
datadog:
# (...)
processAgent:
enabled: true
orchestratorExplorer:
enabled: true
一部のセットアップでは、Process Agent と Cluster Agent で Kubernetes クラスター名が自動検出されません。この場合、機能は起動せず、Cluster Agent ログで以下のような警告が表示されます。Orchestrator explorer enabled but no cluster name set: disabling.。この場合、datadog.clusterName を values.yaml でクラスター名に設定する必要があります。
datadog:
#(...)
clusterName: <YOUR_CLUSTER_NAME>
#(...)
processAgent:
enabled: true
orchestratorExplorer:
enabled: true
有効なクラスター名の制限については、クラスター名を設定するを参照してください。
詳細については、オーケストレーターエクスプローラーのドキュメントを参照してください。
基本構成
以下の構成フィールドを使用して、Datadog Agent を構成してください。
| パラメーター (v2alpha1) | 説明 |
|---|
global.credentials.apiKey | Datadog API キーを構成します。 |
global.credentials.apiSecret.secretName | global.credentials.apiKey の代わりに、Datadog API キーを含む Kubernetes Secret の名前を指定します。 |
global.credentials.apiSecret.keyName | global.credentials.apiKey の代わりに、global.credentials.apiSecret.secretName で指定した Kubernetes の Secret のキーを指定します。 |
global.credentials.appKey | Datadog アプリケーションキーを構成します。外部メトリクスサーバーを使用している場合は、メトリクスへの読み取りアクセス用に Datadog アプリケーションキーを設定する必要があります。 |
global.credentials.appSecret.secretName | global.credentials.apiKey の代わりに、Datadog アプリキーを含む Kubernetes Secret の名前を指定します。 |
global.credentials.appSecret.keyName | global.credentials.apiKey の代わりに、global.credentials.appSecret.secretName で指定した Kubernetes の Secret のキーを指定します。 |
global.logLevel | ロギングの冗長性を設定します。これはコンテナによってオーバーライドできます。有効なログレベルは、trace、debug、info、warn、error、critical および off です。デフォルト: info。 |
global.registry | すべての Agent イメージに使用するイメージレジストリ。デフォルト: gcr.io/datadoghq。 |
global.site | Agent データを送信する Datadog インテークサイトを設定します。サイトは です。(右側で正しい SITE が選択されていることを確認してください)。 |
global.tags | 収集されるすべてのメトリクス、イベント、サービスチェックにアタッチされるタグのリスト。 |
Datadog Operator の構成フィールドの完全なリストについては、Operator v2alpha1 の仕様を参照してください。旧バージョンについては、DatadogAgent CRD を v2alpha1 へ移行するを参照してください。また、kubectl explain datadogagent --recursive を使用して構成フィールドをクエリすることもできます。
| Helm | 説明 |
|---|
datadog.apiKey | Datadog API キーを構成します。 |
datadog.apiKeyExistingSecret | datadog.apiKey の代わりに、Datadog API キーを含む既存の Kubernetes Secret の名前を指定し、キー名 api-key で設定します。 |
datadog.appKey | Datadog アプリケーションキーを構成します。外部メトリクスサーバーを使用している場合は、メトリクスへの読み取りアクセス用に Datadog アプリケーションキーを設定する必要があります。 |
datadog.appKeyExistingSecret | datadog.appKey の代わりに、Datadog API キーを含む既存の Kubernetes Secret の名前を指定し、キー名 app-key で設定します。 |
datadog.logLevel | ロギングの冗長性を設定します。これはコンテナによってオーバーライドできます。有効なログレベルは、trace、debug、info、warn、error、critical および off です。デフォルト: info。 |
registry | すべての Agent イメージに使用するイメージレジストリ。デフォルト: gcr.io/datadoghq。 |
datadog.site | Agent データを送信する Datadog インテークサイトを設定します。サイトは です。(右側で正しい SITE が選択されていることを確認してください)。 |
datadog.tags | 収集されるすべてのメトリクス、イベント、サービスチェックにアタッチされるタグのリスト。 |
Helm チャートの環境変数の完全なリストについては、datadog-values.yaml のオプションの完全なリストを参照してください。
| 環境変数 | 説明 |
|---|
DD_API_KEY | ご使用の Datadog 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_RUNNERS | Agent はデフォルトですべてのチェックを同時に実行します (デフォルト値は 4 ランナーです)。チェックを順次実行する場合は、値を 1 に設定します。多数のチェック (または時間のかかるチェック) を実行する必要がある場合、collector-queue コンポーネントが遅延してヘルスチェックに失敗する可能性があります。ランナーの数を増やすと、チェックを並行して実行できます。 |
DD_LEADER_ELECTION | クラスターで複数の Agent インスタンスが実行されている場合は、この変数を true に設定して、イベント収集の重複を回避します。 |
環境変数
コンテナ化された Datadog Agent は、環境変数を使用して構成できます。サポートされている環境変数の詳細については、Docker Agent ドキュメントの環境変数セクションを参照してください。
例
Datadog Operator を使用する場合、override でコンポーネントの環境変数を [key].env []object で、コンテナの環境変数を [key].containers.[key].env []object で追加設定できます。以下のキーがサポートされています。
nodeAgentclusterAgentclusterChecksRunner
コンテナレベルの設定はコンポーネントレベルの設定よりも優先されます。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
override:
nodeAgent:
env:
- name: <ENV_VAR_NAME>
value: <ENV_VAR_VALUE>
clusterAgent:
containers:
cluster-agent:
env:
- name: <ENV_VAR_NAME>
value: <ENV_VAR_VALUE>
datadog:
env:
- name: <ENV_VAR_NAME>
value: <ENV_VAR_VALUE>
clusterAgent:
env:
- name: <ENV_VAR_NAME>
value: <ENV_VAR_VALUE>
DaemonSet または Deployment (Datadog Cluster Agent 用) に環境変数を追加します。
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: datadog
spec:
template:
spec:
containers:
- name: agent
...
env:
- name: <ENV_VAR_NAME>
value: <ENV_VAR_VALUE>
DogStatsD は、StatsD プロトコルで UDP 経由でカスタムメトリクスを送信できます。DogStatsD は Datadog Operator と Helm でデフォルトで有効になっています。詳細は DogStatsD ドキュメントを参照してください。
以下の環境変数を使用して、DaemonSet で DogStatsD を構成できます。
| 環境変数 | 説明 |
|---|
DD_DOGSTATSD_NON_LOCAL_TRAFFIC | ほかのコンテナからの DogStatsD パケットをリスニングします (Custom Metrics の送信に必要)。 |
DD_HISTOGRAM_PERCENTILES | 計算するヒストグラムのパーセンタイル (スペース区切り)。デフォルトは 0.95 です。 |
DD_HISTOGRAM_AGGREGATES | 計算するヒストグラムの集計 (スペース区切り)。デフォルトは "max median avg count" です。 |
DD_DOGSTATSD_SOCKET | リスニングする UNIX ソケットのパス。rw でマウントされたボリューム内にある必要があります。 |
DD_DOGSTATSD_ORIGIN_DETECTION | Unix ソケットのメトリクス用にコンテナの検出とタグ付けを有効にします。 |
DD_DOGSTATSD_TAGS | この DogStatsD サーバーが受信するすべてのメトリクス、イベント、サービスのチェックに付加する追加タグ。たとえば "env:golden group:retrievers" のように追加します。 |
Datadog は Kubernetes から共通のタグを自動的に収集します。
さらに、Kubernetes ノードラベル、ポッドラベル、アノテーションを Datadog タグにマッピングすることができます。このマッピングを構成するには、以下の環境変数を使用します。
| パラメーター (v2alpha1) | 説明 |
|---|
global.namespaceLabelsAsTags | Kubernetes ネームスペースラベルと Datadog タグのマッピングを提供します。<KUBERNETES_NAMESPACE_LABEL>: <DATADOG_TAG_KEY> |
global.nodeLabelsAsTags | Kubernetes ノードラベルと Datadog タグのマッピングを提供します。<KUBERNETES_NODE_LABEL>: <DATADOG_TAG_KEY> |
global.podAnnotationsAsTags | Kubernetes アノテーションと Datadog タグのマッピングを提供します。<KUBERNETES_ANNOTATION>: <DATADOG_TAG_KEY> |
global.podLabelsAsTags | Kubernetes ラベルと Datadog タグのマッピングを提供します。<KUBERNETES_LABEL>: <DATADOG_TAG_KEY> |
例
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
namespaceLabelsAsTags:
env: environment
# <KUBERNETES_NAMESPACE_LABEL>: <DATADOG_TAG_KEY>
nodeLabelsAsTags:
beta.kubernetes.io/instance-type: aws-instance-type
kubernetes.io/role: kube_role
# <KUBERNETES_NODE_LABEL>: <DATADOG_TAG_KEY>
podLabelsAsTags:
app: kube_app
release: helm_release
# <KUBERNETES_LABEL>: <DATADOG_TAG_KEY>
podAnnotationsAsTags:
iam.amazonaws.com/role: kube_iamrole
# <KUBERNETES_ANNOTATIONS>: <DATADOG_TAG_KEY>
| Helm | 説明 |
|---|
datadog.namespaceLabelsAsTags | Kubernetes ネームスペースラベルと Datadog タグのマッピングを提供します。<KUBERNETES_NAMESPACE_LABEL>: <DATADOG_TAG_KEY> |
datadog.nodeLabelsAsTags | Kubernetes ノードラベルと Datadog タグのマッピングを提供します。<KUBERNETES_NODE_LABEL>: <DATADOG_TAG_KEY> |
datadog.podAnnotationsAsTags | Kubernetes アノテーションと Datadog タグのマッピングを提供します。<KUBERNETES_ANNOTATION>: <DATADOG_TAG_KEY> |
datadog.podLabelsAsTags | Kubernetes ラベルと Datadog タグのマッピングを提供します。<KUBERNETES_LABEL>: <DATADOG_TAG_KEY> |
例
datadog:
# (...)
namespaceLabelsAsTags:
env: environment
# <KUBERNETES_NAMESPACE_LABEL>: <DATADOG_TAG_KEY>
nodeLabelsAsTags:
beta.kubernetes.io/instance-type: aws-instance-type
kubernetes.io/role: kube_role
# <KUBERNETES_NODE_LABEL>: <DATADOG_TAG_KEY>
podLabelsAsTags:
app: kube_app
release: helm_release
# <KUBERNETES_LABEL>: <DATADOG_TAG_KEY>
podAnnotationsAsTags:
iam.amazonaws.com/role: kube_iamrole
# <KUBERNETES_ANNOTATIONS>: <DATADOG_TAG_KEY>
シークレットファイルの使用
インテグレーションの資格情報を Docker や Kubernetes のシークレットに格納し、Autodiscovery テンプレートで使用できます。詳細については、シークレット管理を参照してください。
コンテナの無視
ログの収集、メトリクスの収集、Autodiscovery からコンテナを除外します。Datadog はデフォルトで Kubernetes と OpenShift の pause コンテナを除外します。これらの許可リストとブロックリストは Autodiscovery にのみ適用され、トレースと DogStatsD には影響しません。これらの環境変数の値には、正規表現を使用できます。
例については、コンテナのディスカバリー管理ページを参照してください。
注: kubernetes.containers.running、kubernetes.pods.running、docker.containers.running、.stopped、.running.total、および .stopped.total メトリクスはこれらの設定の影響を受けません。すべてのコンテナを対象とします。
Kubernetes API サーバーのタイムアウト
デフォルトでは、Kubernetes ステートメトリクスコアチェックは、Kubernetes API サーバーからの応答を 10 秒間待ちます。大規模なクラスターでは、リクエストがタイムアウトし、メトリクスが欠落する可能性があります。
環境変数 DD_KUBERNETES_APISERVER_CLIENT_TIMEOUT をデフォルトの 10 秒よりも大きな値に設定することで、これを避けることができます。
以下の構成で datadog-agent.yaml を更新します。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
override:
clusterAgent:
env:
- name: DD_KUBERNETES_APISERVER_CLIENT_TIMEOUT
value: <value_greater_than_10>
次に、新しい構成を適用します。
kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml
以下の構成で datadog-values.yaml を更新します。
clusterAgent:
env:
- name: DD_KUBERNETES_APISERVER_CLIENT_TIMEOUT
value: <value_greater_than_10>
次に、Helm チャートをアップグレードします。
helm upgrade -f datadog-values.yaml <RELEASE_NAME> datadog/datadog
プロキシ設定
Agent v6.4.0 (トレース Agent の場合は v6.5.0) より、以下の環境変数を使用して Agent のプロキシ設定を上書きできるようになりました。
| 環境変数 | 説明 |
|---|
DD_PROXY_HTTP | http リクエスト用のプロキシとして使用する HTTP URL です。 |
DD_PROXY_HTTPS | https リクエスト用のプロキシとして使用する HTTPS URL です。 |
DD_PROXY_NO_PROXY | プロキシを使用すべきではない場合に必要となる、URL をスペースで区切ったリストです。 |
DD_SKIP_SSL_VALIDATION | Agent と Datadog との接続時に問題が発生した場合にテストを実施するオプションです。 |
クラスター名の設定
一部の機能は Kubernetes クラスター名を設定する必要があります。有効なクラスター名は一意でドットで区切られている必要があり、次の制限があります。
- アルファベットの小文字、数字、ハイフンのみを含めることができる
- 文字で始まる必要がある
- 全体の長さは 80 文字以内である必要がある
datadog-agent.yaml のクラスター名を spec.global.clusterName に設定します。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
clusterName: <YOUR_CLUSTER_NAME>
datadog-values.yaml のクラスター名を datadog.clusterName に設定します。
datadog:
#(...)
clusterName: <YOUR_CLUSTER_NAME>
Autodiscovery
| 環境変数 | 説明 |
|---|
DD_LISTENERS | 実行する Autodiscovery リスナー。 |
DD_EXTRA_LISTENERS | 実行する追加の Autodiscovery リスナー。これは datadog.yaml 構成ファイルの listeners セクションで定義された変数に加えて追加されます。 |
DD_CONFIG_PROVIDERS | Agent がチェック構成を収集するために呼び出す必要があるプロバイダー。利用可能なプロバイダーは次のとおりです。
kubelet - Pod アノテーションに埋め込まれたテンプレートを処理します。
docker - コンテナラベルに埋め込まれたテンプレートを処理します。
clusterchecks - Cluster Agent からクラスターレベルのチェック構成を取得します。
kube_services - クラスターのチェックのために Kubernetes サービスをモニタリングします。 |
DD_EXTRA_CONFIG_PROVIDERS | 使用する追加の Autodiscovery 構成プロバイダー。これは datadog.yaml 構成ファイルの config_providers セクションで定義された変数に加えて追加されます。 |
その他
| 環境変数 | 説明 |
|---|
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_COLLECT_KUBERNETES_EVENTS | Agent でのイベント収集を有効にします。クラスターで複数の Agent インスタンスを実行している場合は、DD_LEADER_ELECTION も true に設定します。 |