ホスト
ホストで実行中の Agent に対してこのチェックを構成するには
メトリクスの収集
Elasticsearch のメトリクスを収集するには、Agent の構成ディレクトリのルートにある conf.d/ フォルダーの elastic.d/conf.yaml ファイルを編集します。使用可能なすべての構成オプションについては、サンプル elastic.d/conf.yaml を参照してください。
init_config:
instances:
## @param url - string - required
## The URL where Elasticsearch accepts HTTP requests. This is used to
## fetch statistics from the nodes and information about the cluster health.
#
- url: http://localhost:9200
## @param username - string - optional
## The username to use if services are behind basic or digest auth.
#
# username: <USERNAME>
## @param password - string - optional
## The password to use if services are behind basic or NTLM auth.
#
# password: <PASSWORD>
注:
クラスターの外で実行されている 1 つの Datadog Agent からのみ Elasticsearch メトリクスを収集する場合は (ホステッド Elasticsearch を使用する場合など)、cluster_stats を true に設定します。
Agent レベルのタグは、Agent を実行していないクラスターのホストには適用されません。すべての メトリクスが一定のタグを持つようにするには、<integration>.d/conf.yaml でインテグレーションレベルのタグを使用します。
init_config:
instances:
- url: "%%env_MONITOR_ES_HOST%%"
username: "%%env_MONITOR_ES_USER%%"
password: *********
auth_type: basic
cluster_stats: true
tags:
- service.name:elasticsearch
- env:%%env_DD_ENV%%
AWS Elasticsearch サービスに Agent の Elasticsearch インテグレーションを使用するには、url パラメーターを AWS Elasticsearch stats の URL に設定します。
Amazon ES コンフィギュレーション API へのすべてのリクエストには、署名が必要です。詳細は、OpenSearch サービスリクエストの作成と署名を参照してください。
aws の認証タイプは、boto3 に依存して .aws/credentials から自動的に AWS 認証情報を収集します。conf.yaml で auth_type: basic を使用して、認証情報を username: <USERNAME>、password: <PASSWORD> で定義します。
監視するためには、適切な権限を持つユーザーとロール (まだ持っていない場合) を Elasticsearch で作成する必要があります。これは、Elasticsearch が提供する REST API、または Kibana UI を通じて行うことができます。
Elasticsearch でセキュリティ機能を有効にしている場合、API を使用して Elasticsearch インデックスに対する呼び出しを行う際に、monitor または manage の権限を使用できます。
作成したロールに以下のプロパティを含めます。
name = "datadog"
indices {
names = [".monitoring-*", "metricbeat-*"]
privileges = ["read", "read_cross_cluster", "monitor"]
}
cluster = ["monitor"]
ユーザーにロールを追加します。
roles = [<created role>, "monitoring_user"]
詳しくは、ロールの作成または更新およびユーザーの作成または更新を参照してください。
Agent を再起動します。
カスタムクエリ
Elasticsearch インテグレーションでは、custom_queries 設定オプションを使用して、カスタム クエリによるカスタム メトリクスの収集が可能です。カスタム クエリのエンドポイントは、複数のメトリクスとタグを収集できます。
各カスタム クエリには、次のパラメーターがあります:
endpoint (必須): クエリを送信する Elasticsearch API のエンドポイント。data_path (必須): メトリクスの直前までの JSON パス (メトリクス自体は含まない)。ワイルドカードは使用できません。例: 親のサーキット ブレーカーのサイズをクエリし、完全なパスが breakers.parent.estimated_size_in_bytes の場合、data_path は breakers.parent です。columns (必須): JSON クエリから収集するデータを表すリスト。このリストの各アイテムには次の内容が含まれます:value_path (必須): data_path からメトリクスまでの JSON パス。このパスには、文字列キーやリスト インデックスを含めることができます。例: 親のサーキット ブレーカーのサイズをクエリし、完全なパスが breakers.parent.estimated_size_in_bytes の場合、value_path は estimated_size_in_bytes です。name (必須): Datadog に送信される完全なメトリクス名。type を tag に設定した場合、このクエリで収集されるすべてのメトリクスにこの名前のタグが付与されます。type (任意): 送信されるデータのタイプを指定します。可能な値: gauge, monotonic_count, rate, tag。デフォルトは gauge です。
payload (任意): 指定した場合、GET リクエストは POST リクエストに変わります。ペイロードを伴うカスタム クエリを作成する際は、YAML フォーマットを使用し、読み取り専用ユーザーを使用してください。
注: カスタム クエリを実行する際は、Elasticsearch インスタンスが変更されないように、読み取り専用アカウントを使用してください。
例:
custom_queries:
- endpoint: /_search
data_path: aggregations.genres.buckets
payload:
aggs:
genres:
terms:
field: "id"
columns:
- value_path: key
name: id
type: tag
- value_path: doc_count
name: elasticsearch.doc_count
tags:
- custom_tag:1
カスタムクエリは GET リクエストとして送信されます。オプションの payload パラメーターを使用すると、POST リクエストとして送信されます。
value_path には文字列キーまたはリストインデックスを指定します。例:
{
"foo": {
"bar": [
"result0",
"result1"
]
}
}
value_path: foo.bar.1 は値 result1 を返します。
トレースの収集
Datadog APM は、Elasticsearch と統合して分散システム全体のトレースを確認します。Datadog Agent v6 以降では、トレースの収集はデフォルトで有効化されています。トレースの収集を開始するには、以下の手順に従います。
- Datadog でトレースの収集を有効にします。
- Elasticsearch にリクエストを送信するアプリケーションを計装する。
ログ収集
Agent バージョン 6.0 以降で利用可能
Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml ファイルでこれを有効にします。
検索スローログを収集してスローログのインデックスを作成するには、Elasticsearch 設定を構成します。デフォルトでは、スローログは有効になっていません。
Elasticsearch のログの収集を開始するには、次の構成ブロックを elastic.d/conf.yaml ファイルに追加します。
logs:
- type: file
path: /var/log/elasticsearch/*.log
source: elasticsearch
service: "<SERVICE_NAME>"
Agent を再起動します。
Docker
コンテナで実行中の Agent に対してこのチェックを構成するには:
メトリクスの収集
アプリケーションのコンテナで、オートディスカバリーのインテグレーションテンプレートを Docker ラベルとして設定します。
LABEL "com.datadoghq.ad.check_names"='["elastic"]'
LABEL "com.datadoghq.ad.init_configs"='[{}]'
LABEL "com.datadoghq.ad.instances"='[{"url": "http://%%host%%:9200"}]'
ログ収集
Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Docker ログ収集を参照してください。
次に、ログインテグレーションを Docker ラベルとして設定します。
LABEL "com.datadoghq.ad.logs"='[{"source":"elasticsearch","service":"<SERVICE_NAME>"}]'
トレースの収集
コンテナ化されたアプリケーションの APM は、Agent v6 以降でサポートされていますが、トレースの収集を開始するには、追加のコンフィギュレーションが必要です。
Agent コンテナで必要な環境変数
| パラメーター | 値 |
|---|
<DD_API_KEY> | api_key |
<DD_APM_ENABLED> | true |
<DD_APM_NON_LOCAL_TRAFFIC> | true |
利用可能な環境変数とコンフィギュレーションの完全なリストについては、Kubernetes アプリケーションのトレースおよび Kubernetes Daemon のセットアップを参照してください。
次に、アプリケーションコンテナをインスツルメントし、Agent コンテナの名前に DD_AGENT_HOST を設定します。
Kubernetes
このチェックを、Kubernetes で実行している Agent に構成します。
メトリクスの収集
アプリケーションのコンテナで、オートディスカバリーのインテグレーションテンプレートをポッドアノテーションとして設定します。他にも、ファイル、ConfigMap、または key-value ストアを使用してテンプレートを構成できます。
Annotations v1 (Datadog Agent < v7.36 向け)
apiVersion: v1
kind: Pod
metadata:
name: elasticsearch
annotations:
ad.datadoghq.com/elasticsearch.check_names: '["elastic"]'
ad.datadoghq.com/elasticsearch.init_configs: '[{}]'
ad.datadoghq.com/elasticsearch.instances: |
[
{
"url": "http://%%host%%:9200"
}
]
spec:
containers:
- name: elasticsearch
Annotations v2 (Datadog Agent v7.36+ 向け)
apiVersion: v1
kind: Pod
metadata:
name: elasticsearch
annotations:
ad.datadoghq.com/elasticsearch.checks: |
{
"elastic": {
"init_config": {},
"instances": [
{
"url": "http://%%host%%:9200"
}
]
}
}
spec:
containers:
- name: elasticsearch
ログ収集
Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集を参照してください。
次に、ログのインテグレーションをポッドアノテーションとして設定します。これは、ファイル、ConfigMap、または key-value ストアを使用して構成することも可能です。
Annotations v1/v2
apiVersion: v1
kind: Pod
metadata:
name: elasticsearch
annotations:
ad.datadoghq.com/elasticsearch.logs: '[{"source":"elasticsearch","service":"<SERVICE_NAME>"}]'
spec:
containers:
- name: elasticsearch
トレースの収集
コンテナ化されたアプリケーションの APM は、Agent v6 以降を実行するホストでサポートされていますが、トレースの収集を開始するには、追加のコンフィギュレーションが必要です。
Agent コンテナで必要な環境変数
| パラメーター | 値 |
|---|
<DD_API_KEY> | api_key |
<DD_APM_ENABLED> | true |
<DD_APM_NON_LOCAL_TRAFFIC> | true |
利用可能な環境変数とコンフィギュレーションの完全なリストについては、Kubernetes アプリケーションのトレースおよび Kubernetes Daemon のセットアップを参照してください。
次に、アプリケーションコンテナをインスツルメントし、Agent コンテナ名に DD_AGENT_HOST を設定します。
ECS
このチェックを、ECS で実行している Agent に構成するには:
メトリクスの収集
アプリケーションのコンテナで、オートディスカバリーのインテグレーションテンプレートを Docker ラベルとして設定します。
{
"containerDefinitions": [{
"name": "elasticsearch",
"image": "elasticsearch:latest",
"dockerLabels": {
"com.datadoghq.ad.check_names": "[\"elastic\"]",
"com.datadoghq.ad.init_configs": "[{}]",
"com.datadoghq.ad.instances": "[{\"url\": \"http://%%host%%:9200\"}]"
}
}]
}
ログ収集
Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、ECS ログ収集を参照してください。
次に、ログインテグレーションを Docker ラベルとして設定します。
{
"containerDefinitions": [{
"name": "elasticsearch",
"image": "elasticsearch:latest",
"dockerLabels": {
"com.datadoghq.ad.logs": "[{\"source\":\"elasticsearch\",\"service\":\"<SERVICE_NAME>\"}]"
}
}]
}
トレースの収集
コンテナ化されたアプリケーションの APM は、Agent v6 以降でサポートされていますが、トレースの収集を開始するには、追加のコンフィギュレーションが必要です。
Agent コンテナで必要な環境変数
| パラメーター | 値 |
|---|
<DD_API_KEY> | api_key |
<DD_APM_ENABLED> | true |
<DD_APM_NON_LOCAL_TRAFFIC> | true |
利用可能な環境変数とコンフィギュレーションの完全なリストについては、Kubernetes アプリケーションのトレースおよび Kubernetes Daemon のセットアップを参照してください。
次に、アプリケーションのコンテナをインスツルメントし、EC2 プライベート IP アドレスに DD_AGENT_HOST を設定します。