- はじめに
- エージェント
- インテグレーション
- Watchdog
- イベント
- ダッシュボード
- モバイルアプリケーション
- インフラストラクチャー
- サーバーレス
- メトリクス
- ノートブック
- アラート設定
- APM & Continuous Profiler
- CI Visibility
- RUM & セッションリプレイ
- データベース モニタリング
- ログ管理
- セキュリティプラットフォーム
- Synthetic モニタリング
- ネットワークモニタリング
- 開発者
- API
- アカウントの管理
- データセキュリティ
- ヘルプ
クラスターやアプリケーションのメトリクス、トレース、ログを収集するには、Kubernetes クラスターで Datadog Agent を DaemonSet として実行します。Helm チャートまたは DaemonSet オブジェクトの YAML 定義を使用して直接デプロイできます。
注: Agent バージョン 6.0 以降は、1.7.6 より上のバージョンの Kubernetes のみをサポートします。以前のバージョンの Kubernetes については、「レガシー Kubernetes バージョン」を参照してください。
注:
カスタムリリース名でチャートをインストールするには、<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
注:
Datadog チャートの構成可能なパラメーターとそのデフォルト値の完全なリストについては、Datadog Helm リポジトリの README を参照してください。
現在のデプロイリージョンで Google Container Registry (gcr.io/datadoghq) にアクセスが不可能な場合は、values.yaml
ファイルで下記のコンフィギュレーションで イメージ datadog/agent および datadog/cluster-agent とともに Docker Hub レジストリを使用します。
agents:
image:
repository: datadog/agent
clusterAgent:
image:
repository: datadog/cluster-agent
clusterChecksRunner:
image:
repository: datadog/agent
v2.0 では、Datadog のチャートはリファクタリングされており、values.yaml
パラメーターがより論理的に再グループ化されています。
現在、デプロイされているチャートバージョンが v2.0.0
以前の場合は、移行ガイドに従って設定を新しいフィールドにマッピングしてください。
(オプション) 非特権インストールを実行するには、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 API キーを含むシークレットを作成: 下の<DATADOG_API_KEY>
を組織の API キーに置き換えます。このシークレットはマニフェストで Datadog Agent をデプロイするために使用されます。
kubectl create secret generic datadog-agent --from-literal='api-key=<DATADOG_API_KEY>' --namespace="default"
注: これにより、default
ネームスペースでシークレットが作成されます。カスタムネームスペースを使用している場合、実行前にコマンドの namespace
パラメーターを更新します。
Datadog Agent マニフェストを作成。以下のテンプレートを使用して、datadog-agent.yaml
マニフェストを作成します。
メトリクス | ログ | APM | Process | NPM | セキュリティ | Linux | Windows |
---|---|---|---|---|---|---|---|
マニフェストテンプレート | マニフェストテンプレート (セキュリティなし) | ||||||
マニフェストテンプレート | マニフェストテンプレート | ||||||
マニフェストテンプレート | マニフェストテンプレート | ||||||
マニフェストテンプレート | マニフェストテンプレート | ||||||
マニフェストテンプレート | テンプレートなし | ||||||
マニフェストテンプレート | マニフェストテンプレート |
トレース収集を完全に有効にするには、アプリケーションのポッドコンフィギュレーションで追加の手順が必要となります。それぞれの機能を個別に有効にする方法については、ログ、APM、プロセス、ネットワークパフォーマンスモニタリング、セキュリティに関するドキュメントページを参照してください。
注: これらのマニフェストは、デフォルトで default
ネームスペースに設定されています。カスタムネームスペースを使用している場合、適用する前に metadata.namespace
パラメーターを更新します。
datadog-agent.yaml
マニフェストで、DD_SITE
環境変数を使用して Datadog サイトを に設定します。
注: DD_SITE
環境変数が明示的に設定されていない場合、値はデフォルトで US
サイトの datadog.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 の場合。
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 の場合。
Datadog Agent と Cluster Agent は、ライブコンテナの Kubernetes リソースを取得するように構成できます。この機能により、特定のネームスペースまたはアベイラビリティーゾーンのポッド、デプロイメント、その他の Kubernetes の概念の状態を監視したり、デプロイメント内で失敗したポッドのリソース仕様を確認したり、ノードアクティビティを関係するログに関連付けたりすることが可能になります。
コンフィギュレーションの説明や追加の情報については、ライブコンテナドキュメントを参照してください。
Kubernetes イベント収集を有効にするには、value.yaml
ファイルの順序で datadog.leaderElection
、datadog.collectEvents
、agents.rbac.create
オプションを true
に設定します。
Kubernetes クラスターからイベントを収集する場合は、Agent マニフェストで環境変数 DD_COLLECT_KUBERNETES_EVENTS
と DD_LEADER_ELECTION
を true
に設定します。または、Datadog Cluster Agent イベント収集を使用します
datadog-agent.yaml
マニフェストで agent.config.collectEvents
を true
に設定します。
例:
agent:
config:
collectEvents: true
クラスター内で Agent が実行されたら、Datadog のオートディスカバリー機能を使いポッドからメトリクスとログを自動的に収集します。
Datadog Agent で使用可能な環境変数のリストを以下に示します。これらを Helm でセットアップする場合は、helm/charts GitHub リポジトリの datadog-value.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_CHECK_RUNNERS | Agent はデフォルトですべてのチェックを同時に実行します (デフォルト値は 4 ランナーです)。チェックを順次実行する場合は、値を 1 に設定してください。ただし、多数のチェック (または時間のかかるチェック) を実行する必要がある場合、collector-queue コンポーネントが遅延して、ヘルスチェックに失敗する可能性があります。ランナーの数を増やすと、チェックを並行して実行できます。 |
DD_LEADER_ELECTION | クラスターで複数の Agent が実行されている場合は、この変数を true に設定して、イベント収集の重複を回避します。 |
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 との接続で問題が発生した場合にテストを実施するオプションです。 |
プロキシ設定の詳細については、Agent v6 プロキシのドキュメントを参照してください。
セキュリティまたはパフォーマンス上の理由により、オプションの収集 Agent はデフォルトで無効になっています。このエージェントを有効にするには、以下の環境変数を使用します。
環境変数 | 説明 |
---|---|
DD_APM_ENABLED | トレース Agent による トレースの収集を有効にします。 |
DD_LOGS_ENABLED | ログ Agent によるログの収集を有効にします。 |
DD_PROCESS_AGENT_ENABLED | プロセス Agent によるライブプロセスの収集を有効にします。Docker ソケットがある場合、ライブコンテナービューはすでにデフォルトで有効になっています。false に設定すると、ライブプロセスの収集とライブコンテナービューが無効になります。 |
DD_COLLECT_KUBERNETES_EVENTS | Agent でのイベント収集を有効にします。クラスターで複数の Agent を実行している場合は、DD_LEADER_ELECTION も true に設定します。 |
ライブコンテナビューを有効にするには、DD_PROCESS_AGENT_ENABLED を true
に設定した上でプロセス Agent を実行していることをご確認ください。
カスタムメトリクスを 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_DETECTION | UNIX ソケットのメトリクス用にコンテナの検出とタグ付けを有効にします。 |
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.running
、kubernetes.pods.running
、docker.containers.running
、.stopped
、.running.total
、.stopped.total
の各メトリクスは、この設定の影響を受けません。すべてのコンテナを対象とします。
環境変数 | 説明 |
---|---|
DD_PROCESS_AGENT_CONTAINER_SOURCE | コンテナソースの自動検出を上書きして、1 つのソースに制限します ("docker" 、"ecs_fargate" 、"kubelet" など)。 |
DD_HEALTH_PORT | これを 5555 に設定すると、Agent のヘルスチェックをポート 5555 で公開します。 |
DD_CLUSTER_NAME | カスタム Kubernetes クラスター識別子を設定して、ホストエイリアスの衝突を回避します。クラスター名は最大 40 文字で、小文字、数字、およびハイフンのみという制限があります。また、文字で始める必要があり、 数字または文字で終わる必要があります。 |
リスナーおよび構成プロバイダーを追加するには、DD_EXTRA_LISTENERS
と DD_EXTRA_CONFIG_PROVIDERS
の環境変数を使用します。これらは datadog.yaml
構成ファイルの listeners
セクションと config_providers
セクションに定義する変数に追加されます。
すべての Docker Agent コマンドは Agent コマンドガイドでご確認いただけます。