- 重要な情報
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
このページでは、3 種類の方法で Kubernetes 環境に Datadog Agent をインストールする手順を説明します。ユースケースに最適な方法を選択してください。
AWS Elastic Kubernetes Service (EKS)、Azure Kubernetes Service (AKS)、Google Kubernetes Engine (GKE)、Red Hat OpenShift、Rancher、Oracle Container Engine for Kubernetes (OKE) など主要な Kubernetes ディストリビューションの専用ドキュメントやサンプルは Kubernetes ディストリビューションに掲載されています。
Kubernetes のコントロールプレーンを監視するための専用のドキュメントと例については、Kubernetes のコントロールプレーン監視を参照してください。
Kubernetes の後期バージョンに関連する一部の機能では、Datadog Agent の最低バージョンが必要です。
Kubernetes バージョン | Agent バージョン | Cluster Agent バージョン | 理由 |
---|---|---|---|
1.16.0+ | 7.19.0+ | 1.9.0+ | Kubelet メトリクスの非推奨化 |
1.21.0+ | 7.36.0+ | 1.20.0+ | Kubernetes リソースの非推奨化 |
Datadog Operator は Kubernetes や OpenShift にDatadog Agent をデプロイする方法です。カスタムリソースステータスでデプロイ状況、健全性、エラーを報告し、高度なコンフィギュレーションオプションでコンフィギュレーションミスのリスクを抑えます。
Datadog Operator を使用するには、次の前提条件が必要です。
1.14.0
で行われましたが、バージョン >= v1.11.0
で動作するはずです。以前のバージョンでは、CRD サポートが制限されているため、Operator が期待どおりに機能しない場合があります。datadog-operator
をデプロイするための Helm
。datadog-agent
をインストールするための Kubectl
CLI。最小限のステップ数で Operator を使用して Datadog Agent をデプロイするには、datadog-operato
Helm チャートを使用します。手順は次のとおりです。
Datadog Operator をインストールします:
helm repo add datadog https://helm.datadoghq.com
helm install my-datadog-operator datadog/datadog-operator
お使いの API とアプリキーで Kubernetes シークレットを作成します
kubectl create secret generic datadog-secret --from-literal api-key=<DATADOG_API_KEY> --from-literal app-key=<DATADOG_APP_KEY>
<DATADOG_API_KEY>
と <DATADOG_APP_KEY>
を Datadog API とアプリケーションキーに置き換えます
Datadog Agent のデプロイコンフィギュレーションを使用してファイルを作成します。最も単純なコンフィギュレーションは次のとおりです。
apiVersion: datadoghq.com/v1alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
credentials:
apiSecret:
secretName: datadog-secret
keyName: api-key
appSecret:
secretName: datadog-secret
keyName: app-key
agent:
image:
name: "gcr.io/datadoghq/agent:latest"
clusterAgent:
image:
name: "gcr.io/datadoghq/cluster-agent:latest"
上記のコンフィギュレーションファイルを使用して Datadog Agent をデプロイします。
kubectl apply -f /path/to/your/datadog-agent.yaml
次のコマンドは、上記の手順で作成されたすべての Kubernetes リソースを削除します。
kubectl delete datadogagent datadog
helm delete my-datadog-operator
許容範囲の使用に関する情報を含む、Operator の設定の詳細については、Datadog Operator の高度な設定ガイドを参照してください。
(オプション) 非特権インストールを実行するには、Datadog カスタムリソース (CR) に以下を追加します。
agent:
config:
securityContext:
runAsUser: <USER_ID>
supplementalGroups:
- <DOCKER_GROUP_ID>
<USER_ID>
が、Agent を実行する UID で、<DOCKER_GROUP_ID>
が、Docker または Containerd ソケットを所有するグループ ID の場合。
カスタムリリース名でチャートをインストールするには、<RELEASE_NAME>
(例 datadog-agent
):
values.yaml
コンフィギュレーションファイルを参照として使用して、values.yaml
を作成します。Datadog では、チャートのバージョンをアップグレードするときにスムーズなエクスペリエンスを実現できるため、values.yaml
にオーバーライドする必要のある値のみを含めることをお勧めします。helm repo add datadog https://helm.datadoghq.com
helm repo update
Helm v3+
helm install <RELEASE_NAME> -f values.yaml --set datadog.apiKey=<DATADOG_API_KEY> datadog/datadog --set targetSystem=<TARGET_SYSTEM>
<対象システム>
を OS 名(linux
または windows
)で置き換えます。
Helm v1/v2
helm install -f values.yaml --name <RELEASE_NAME> --set datadog.apiKey=<DATADOG_API_KEY> datadog/datadog
このチャートは、DaemonSet を使ってクラスター内のすべてのノードに Datadog Agent を追加します。また、オプションで、kube-state-metrics チャートをデプロイし、それをクラスターに関するメトリクスの追加ソースとして使用します。インストール後数分すると、Datadog はホストとメトリクスの報告を開始します。
次に、使用する Datadog の機能を有効にします: APM, Logs
注:
現在のデプロイリージョンで Google Container Registry (gcr.io/datadoghq) にアクセスが不可能な場合は、values.yaml
ファイルで下記のコンフィギュレーションで別のレジストリを使用します。
公開 AWS ECR レジストリ (public.ecr.aws/datadog) の場合、以下を使います。
registry: public.ecr.aws/datadog
Docker Hub レジストリ (docker.io/datadog) の場合、以下を使います。
registry: docker.io/datadog
注:
v2.0 では、Datadog のチャートはリファクタリングされており、values.yaml
パラメーターがより論理的に再グループ化されています。
現在、デプロイされているチャートバージョンが v2.0.0
以前の場合は、移行ガイドに従って設定を新しいフィールドにマッピングしてください。
新しいデプロイメントでは、Datadog は新しい kube-state-metrics
コアを以下の値で使用することを推奨します。
...
datadog:
...
kubeStateMetricsCore:
enabled: true
...
kube-state-metrics
コアの詳細については、Kubernetes ステートメトリクスコアのドキュメントをお読みください。
(オプション) 非特権インストールを実行するには、values.yaml
ファイルに以下を追加します。
datadog:
securityContext:
runAsUser: <USER_ID>
supplementalGroups:
- <DOCKER_GROUP_ID>
<USER_ID>
が、Agent を実行する UID で、<DOCKER_GROUP_ID>
が、Docker または Containerd ソケットを所有するグループ ID の場合。
DaemonSet を利用して、すべてのノード (または nodeSelectors を使用して特定のノード) に Datadog Agent をデプロイします。
Datadog Agent を Kubernetes クラスターにインストールするには:
Agent のアクセス許可を構成: Kubernetes で RBAC (ロールベースのアクセス制御) が有効になっている場合は、Datadog Agent サービスアカウントに対する RBAC アクセス許可を構成します。Kubernetes 1.6 以降では、RBAC はデフォルトで有効になっています。適切な ClusterRole、ServiceAccount、および ClusterRoleBinding を、以下のコマンドで作成します。
kubectl apply -f "https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/rbac/clusterrole.yaml"
kubectl apply -f "https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/rbac/serviceaccount.yaml"
kubectl apply -f "https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/rbac/clusterrolebinding.yaml"
注: RBAC 構成は、default
ネームスペースに設定されています。カスタムネームスペースを使用している場合、適用する前に namespace
パラメーターを更新します。
Datadog Agent マニフェストを作成。以下のテンプレートを使用して、datadog-agent.yaml
マニフェストを作成します。
メトリクス | ログ | APM | Process | NPM | セキュリティ | Linux | Windows |
---|---|---|---|---|---|---|---|
マニフェストテンプレート | マニフェストテンプレート (セキュリティなし) | ||||||
マニフェストテンプレート | マニフェストテンプレート | ||||||
マニフェストテンプレート | マニフェストテンプレート | ||||||
マニフェストテンプレート | マニフェストテンプレート | ||||||
マニフェストテンプレート | テンプレートなし | ||||||
マニフェストテンプレート | マニフェストテンプレート |
トレース収集を完全に有効にするには、アプリケーションのポッドコンフィギュレーションで追加の手順が必要となります。それぞれの機能を個別に有効にする方法については、ログ、APM、プロセス、ネットワークパフォーマンスモニタリング、セキュリティに関するドキュメントページを参照してください。
注: これらのマニフェストは、default
ネームスペースに設定されています。カスタムネームスペースを使用している場合、適用する前に metadata.namespace
パラメーターを更新します。
secret-api-key.yaml
マニフェストで、PUT_YOUR_BASE64_ENCODED_API_KEY_HERE
を base64 でエンコードされた Datadog API キーに置き換えます。API キーの base64 バージョンを取得するには、次のコマンドを実行します。
echo -n '<Your API key>' | base64
secret-cluster-agent-token.yaml
マニフェストの PUT_A_BASE64_ENCODED_RANDOM_STRING_HERE
を base64 でエンコードしたランダムな文字列に置き換えてください。base64 版を取得するには、次のように実行します。
echo -n 'Random string' | base64
注: Cluster Agent 間の通信を保護するため、ランダムな文字列には少なくとも 32 文字の英数字が含まれている必要があります。
datadog-agent.yaml
マニフェストで、DD_SITE
環境変数を使用して Datadog サイトを に設定します。
注: DD_SITE
環境変数が明示的に設定されていない場合、値はデフォルトで US
サイトの datadoghq.com
に設定されます。その他のサイト (EU
、US3
、または US1-FED
) のいずれかを使用している場合は、API キーのメッセージが無効になります。ドキュメントのサイト選択ドロップダウンを使用して、使用中のサイトに適したドキュメントを確認してください。
次のコマンドで DaemonSet をデプロイします。
kubectl apply -f datadog-agent.yaml
検証: 現在の環境で Datadog Agent が DaemonSet として動作していることを検証するには、次を実行します。
kubectl get daemonset
Agent がデプロイされた場合は、以下のようなテキスト出力が表示されます。DESIRED
と CURRENT
はクラスター内で実行中のノードの数と等しくなります。
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
datadog-agent 2 2 2 2 2 <none> 10s
任意 - Kubernetes State メトリクスの設定: Kube-State マニフェストフォルダーをダウンロードし、それを Kubernetes クラスターに適用して kube-state メトリクスを自動収集します:
kubectl apply -f <NAME_OF_THE_KUBE_STATE_MANIFESTS_FOLDER>
(オプション) 非特権インストールを実行するには、ポッドテンプレートに以下を追加します。
spec:
securityContext:
runAsUser: <USER_ID>
supplementalGroups:
- <DOCKER_GROUP_ID>
<USER_ID>
が、Agent を実行する UID で、<DOCKER_GROUP_ID>
が、Docker または Containerd ソケットを所有するグループ ID の場合。
ライブコンテナの構成方法は、ライブコンテナを参照してください。
イベントの収集、プロキシ設定のオーバーライド、DogStatsD によるカスタムメトリクスの送信、コンテナの許可リストとブロックリストの構成、利用可能な環境変数の全リストの参照については、Kubernetes 上の Datadog Agent の構成を参照してください。
インテグレーションを構成するには、インテグレーションとオートディスカバリーを参照してください。
APM の設定は、Kubernetes トレース収集を参照してください。
ログ収集の設定は、Kubernetes ログ収集を参照してください。