このページでは、Containerized Windows Applications Monitoring の既知の未解決の問題について説明します。
一般的な問題
Containerized Windows Applications Monitoring には、Datadog Agent 7.19+ が必要です。
対応する OS のバージョンは以下の通りです。
- Windows Server 2019 (LTSC / 1809)
- Windows Server 2019 1909 (Agent 7.39 まで、Microsoft がサポートしなくなったため)
- Windows Server 2019 2004 または 20H1 (Agent 7.39 まで、Microsoft がサポートしなくなったため)
- Windows Server 2019 20H2 (Agent 7.33〜7.39、Microsoft がサポートしなくなったため)
- Windows Server 2022 LTSC (Agent >=7.34)
Hyper-V 分離モードはサポートされていません。
ディスク、IO、およびネットワークのホストメトリクスは無効になっています。これらは Windows Server ではサポートされていないため、Agent チェックはデフォルトで無効になっています。
Docker の問題
ライブプロセスはコンテナに表示されません (Datadog Agent を除く)。
Kubernetes の問題
Live processes do not appear in containers (except for the Datadog Agent).
Mixed clusters (Linux + Windows)
複合クラスターに Datadog Agent をデプロイするには、Helm チャートの 2 つのインストールを異なる targetSystem で実行することが推奨されます。
Datadog Agent は nodeSelector を使用して、targetSystem に基づき Linux または Windows ノードを自動的に選択します。
ただし、Kube State メトリクス (デフォルトでインストール済み) が Windows ノードにスケジュールできない状況につながるような場合は、この限りではありません。
この問題を回避するには、3 つのオプションがあります。
- Windows ノードに taint を適用します。Windows では、Agent は常に
node.kubernetes.io/os=windows:NoSchedule taint を許可します。 - Datatog Helm チャート
values.yaml を使用して、Kube State メトリクスノードセレクタを設定します。
kube-state-metrics:
nodeSelector:
beta.kubernetes.io/os: linux // Kubernetes < 1.14
kubernetes.io/os: linux // Kubernetes >= 1.14
datadog.kubeStateMetricsEnabled を false に設定し、Kube State メトリクスを別途デプロイします。
注: 2 つの Datadog インストール (targetSystem: linux、targetSystem: windows) を使用する場合、2 つ目のインストールで datadog.kubeStateMetricsEnabled を必ず false に設定してください。Kube State メトリクスのインスタンスを 2 つデプロイしないようにするためです。
Datadog Cluster Agent によるクラスターの混在
Cluster Agent v1.18+ では、Datadog Cluster Agent でクラスターが混在する構成がサポートされます。
Windows ノードにデプロイされた Agent と Cluster Agent 間の通信を構成するには、次の values.yaml ファイルを使用します。
targetSystem: windows
existingClusterAgent:
join: true
serviceName: "<EXISTING_DCA_SERVICE_NAME>" # Datadog Helm の最初のチャートから
tokenSecretName: "<EXISTING_DCA_SECRET_NAME>" # Datadog Helm の最初のチャートから
# datadogMetrics は最初のチャートで既にデプロイされているはずなので、デプロイを無効にします。
datadog-crds:
crds:
datadogMetrics: false
# kube-state-metrics のデプロイメントを無効にします
datadog:
kubeStateMetricsEnabled: false
Windows デプロイでは構成オプションが制限される
Windows では、一部の構成オプションが使用できません。以下は、サポートされていないオプションのリストです。
| パラメーター | 理由 |
|---|
datadog.dogstatsd.useHostPID | Windows コンテナではホスト PID がサポートされていません |
datadog.dogstatsd.useSocketVolume | Windows では Unix ソケットはサポートされていません |
datadog.dogstatsd.socketPath | Windows では Unix ソケットはサポートされていません |
datadog.processAgent.processCollection | ホスト/他のコンテナプロセスにアクセスできません |
datadog.systemProbe.seccomp | システムプローブは Windows では使用できません |
datadog.systemProbe.seccompRoot | システムプローブは Windows では使用できません |
datadog.systemProbe.debugPort | システムプローブは Windows では使用できません |
datadog.systemProbe.enableConntrack | システムプローブは Windows では使用できません |
datadog.systemProbe.bpfDebug | システムプローブは Windows では使用できません |
datadog.systemProbe.apparmor | システムプローブは Windows では使用できません |
agents.useHostNetwork | Windows コンテナではホストネットワークがサポートされていません |
APM または DogStatsD の HostPort
HostPort は、基となる OS バージョンおよび CNI プラグインにより、Kubernetes で一部サポートされています。
HostPort が正常に動作するための要件は以下のとおりです。
- Windows Server バージョン 1909 以降
- CNI プラグインが
portMappings 機能に対応
現在、少なくとも 2 つの CNI プラグインがこの機能に対応しています。
win-bridge 公式プラグイン (バージョン 0.8.6 以降) - GKE が使用- Azure CNI プラグイン - AKS が使用
セットアップがこの要件を満たさない場合、APM および DogStatsD はトレーサーと Agent の間にポッドツーポッドネットワーキングが構成されている場合にのみ機能します。
Kubelet チェック
ご使用の Kubernetes バージョンによっては、Kubelet メトリクスの一部をご利用いただけない (または Kubelet チェックがタイムアウトする) ことがあります。
最適にご利用いただくため、以下をご使用ください。
- Kubelet 1.16.13 以降 (GKE では 1.16.11)
- Kubelet 1.17.9 以降 (GKE では 1.17.6)
- Kubelet 1.18.6 以降
- Kubelet 1.19 以降
Agent バージョン 7.19.2 以降
Windows では、ご利用いただけない kubernetes.* があります。以下のリストでご利用可能なものをご確認ください。
kubernetes.cpu.usage.totalkubernetes.containers.restartskubernetes.containers.runningkubernetes.cpu.capacitykubernetes.ephemeral_storage.usagekubernetes.kubelet.container.log_filesystem.used_byteskubernetes.kubelet.network_plugin.latency.countkubernetes.kubelet.network_plugin.latency.quantilekubernetes.kubelet.network_plugin.latency.sumkubernetes.kubelet.runtime.errorskubernetes.kubelet.runtime.operationskubernetes.memory.capacitykubernetes.pods.runningkubernetes.rest.client.latency.countkubernetes.rest.client.latency.sumkubernetes.rest.client.requestskubernetes.network.tx_byteskubernetes.network.rx_byteskubernetes.cpu.usage.totalkubernetes.memory.working_setkubernetes.filesystem.usagekubernetes.filesystem.usage_pct