- Helm チャートをまだインストールしていない場合は、インストールしてください。
デフォルトのコンフィギュレーションにより、ホスト上にディレクトリが作成され、Agent 内にマウントされます。次に Agent はソケットファイル /var/run/datadog/apm.socket
を作成し、リッスンします。アプリケーションポッドも同様に、このボリュームをマウントして、この同じソケットに書き込むことができます。datadog.apm.hostSocketPath
と datadog.apm.socketPath
のコンフィギュレーション値で、パスとソケットを変更することが可能です。
この機能は datadog.apm.socketEnabled
で無効にすることができます。
オプション - TCP 経由でトレースを受け取るように Datadog Agent を構成する
Datadog Agent は、TCP 経由でトレースを受信するように構成することも可能です。この機能を有効にするには:
- 以下の APM コンフィギュレーションを使用して、
values.yaml
ファイルを更新します。datadog:
## Enable apm agent and provide custom configs
apm:
# datadog.apm.portEnabled -- Enable APM over TCP communication (port 8126 by default)
## ref: https://docs.datadoghq.com/agent/kubernetes/apm/
portEnabled: true
続いて、次のコマンド helm upgrade -f values.yaml <RELEASE NAME> datadog/datadog
を使用して Datadog Helm チャートをアップグレードします。values.yaml
にオペレーディングシステムを設定していない場合は、このコマンドに --set targetSystem=linux
または --set targetSystem=windows
を追加します。
警告: datadog.apm.portEnabled
パラメーターを指定すると、ホストのポートが開かれます。アプリケーションまたは信頼できるソースからのみアクセスを許可するように、ファイアウォールを設定してください。ネットワークプラグインが hostPorts
をサポートしていない場合は、hostNetwork: true
を Agent ポッド仕様に追加してください。ホストのネットワークネームスペースが Datadog Agent と共有されます。つまり、コンテナで開かれたすべてのポートはホストで開きます。ポートがホストとコンテナの両方で使用されると、競合し (同じネットワークネームスペースを共有するので)、ポッドが開始しません。これを許可しない Kubernetes インストールもあります。
APM トレースの収集を有効にするには、DaemonSet コンフィギュレーションファイルを開いて以下を編集します。
ポート 8126
からの受信データ (ホストからエージェントへのトラフィックを転送) を trace-agent
コンテナ内で許可するようにします。
# (...)
containers:
- name: trace-agent
# (...)
ports:
- containerPort: 8126
hostPort: 8126
name: traceport
protocol: TCP
# (...)
古いバージョンの Agent (7.17 以前) を使用している場合は、上記の手順に加えて、datadog.yaml
トレース Agent マニフェストの env
セクションで DD_APM_NON_LOCAL_TRAFFIC
変数と DD_APM_ENABLED
変数を true
に設定してください。
# (...)
containers:
- name: trace-agent
# (...)
env:
- name: DD_APM_ENABLED
value: 'true'
- name: DD_APM_NON_LOCAL_TRAFFIC
value: "true"
# (...)
警告: hostPort
パラメーターを指定すると、ホストのポートが開かれます。アプリケーションまたは信頼できるソースからのみアクセスを許可するように、ファイアウォールを設定してください。ネットワークプラグインが hostPorts
をサポートしていない場合は、hostNetwork: true
を Agent ポッド仕様に追加してください。ホストのネットワークネームスペースが Datadog Agent と共有されます。つまり、コンテナで開かれたすべてのポートはホストで開きます。ポートがホストとコンテナの両方で使用されると、競合し (同じネットワークネームスペースを共有するので)、ポッドが開始しません。これを許可しない Kubernetes インストールもあります。
APM トレースの収集を有効にするには、DaemonSet コンフィギュレーションファイルを開いて以下を編集します。
# (...)
containers:
- name: trace-agent
# (...)
env:
- name: DD_APM_ENABLED
value: "true"
- name: DD_APM_RECEIVER_SOCKET
value: "/var/run/datadog/apm.socket"
# (...)
volumeMounts:
- name: apmsocket
mountPath: /var/run/datadog/
volumes:
- hostPath:
path: /var/run/datadog/
type: DirectoryOrCreate
# (...)
このコンフィギュレーションにより、ホスト上にディレクトリが作成され、Agent 内にマウントされます。Agent はそのディレクトリに DD_APM_RECEIVER_SOCKET
の値を /var/run/datadog/apm.socket
としたソケットファイルを作成し、リッスンするようにします。アプリケーションポッドも同様に、このボリュームをマウントして、この同じソケットに書き込むことができます。
APM が有効になると、デフォルトのコンフィギュレーションにより、ホスト上にディレクトリが作成され、Agent 内にマウントされます。次に Agent はソケットファイル /var/run/datadog/apm/apm.socket
を作成し、リッスンします。アプリケーションポッドも同様に、このボリュームをマウントして、この同じソケットに書き込むことができます。features.apm.unixDomainSocketConfig.path
のコンフィギュレーション値で、パスとソケットを変更することが可能です。
オプション - TCP 経由でトレースを受け取るように Datadog Agent を構成する
Datadog Agent は、TCP 経由でトレースを受信するように構成することも可能です。この機能を有効にするには:
DatadogAgent
のマニフェストを以下のように更新します。
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
site: <DATADOG_SITE>
features:
apm:
enabled: true
hostPortConfig:
enabled: true
<DATADOG_SITE>
が
である場合 (デフォルトは datadoghq.com
)。
完全な例については、APM とメトリクス収集が有効になっているマニフェストの例を参照してください。
次に、新しいコンフィギュレーションを適用します。
kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml
警告: hostPort
パラメーターを指定すると、ホストのポートが開かれます。アプリケーションまたは信頼できるソースからのみアクセスを許可するように、ファイアウォールを設定してください。ネットワークプラグインが hostPorts
をサポートしていない場合は、hostNetwork: true
を Agent ポッド仕様に追加してください。ホストのネットワークネームスペースが Datadog Agent と共有されます。つまり、コンテナで開かれたすべてのポートはホストで開きます。ポートがホストとコンテナの両方で使用されると、競合し (同じネットワークネームスペースを共有するので)、ポッドが開始しません。これを許可しない Kubernetes インストールもあります。