Host
A fin de configurar este check para un Agent que se ejecuta en un host:
Recopilación de métricas
Edita el archivo elastic.d/conf.yaml
en la carpeta conf.d/
en la raíz del directorio de configuración del Agent para empezar a recopilar las métricas de Elasticsearch. Consulta el elastic.d/conf.yaml de muestra para ver todas las opciones de configuración disponibles.
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
Notas:
Si recopilas métricas de Elasticsearch desde un solo Datadog Agent que se ejecuta fuera del clúster, como por ejemplo con un Elasticsearch alojado, establece cluster_stats
en true
.
Las etiquetas (tags) de nivel de Agent no se aplican a los hosts de un clúster que no ejecuta el Agent. Usa etiquetas de nivel de integración en <integration>.d/conf.yaml
para garantizar que TODAS las métricas tengan etiquetas consistentes. Por ejemplo:
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%%
A fin de usar la integración de Elasticsearch del Agent para los servicios de AWS Elasticsearch, configura el parámetro url
para que apunte a la URL de estadísticas de AWS Elasticsearch.
Todas las solicitudes a la API de configuración de Amazon ES deben estar firmadas. Consulta Cómo realizar y firmar solicitudes de OpenSearch Service para obtener más información.
El tipo de autenticación de aws
se basa en Boto3 para recopilar las credenciales de AWS de .aws/credentials
de manera automática. Usa auth_type: basic
en conf.yaml
y define las credenciales con username: <USERNAME>
y password: <PASSWORD>
.
Debes crear un usuario y un rol (si aún no los tienes) en Elasticsearch con los permisos adecuados para la monitorización. Esto se puede hacer a través de la API REST que ofrece Elasticsearch o la interfaz de usuario de Kibana.
Si has habilitado las funciones de seguridad en Elasticsearch, puedes usar el privilegio monitor
o manage
al usar la API para realizar llamadas a los índices de Elasticsearch.
Incluye las siguientes propiedades en el rol creado:
name = "datadog"
indices {
names = [".monitoring-*", "metricbeat-*"]
privileges = ["read", "read_cross_cluster", "monitor"]
}
cluster = ["monitor"]
Añade el rol al usuario:
roles = [<created role>, "monitoring_user"]
Para más información, consulta crear o actualizar roles y crear o actualizar usuarios.
Reinicia el Agent.
Consultas personalizadas
La integración de Elasticsearch te permite recopilar métricas personalizadas a través de consultas personalizadas mediante la opción de configuración custom_queries
.
Nota: Al ejecutar consultas personalizadas, usa una cuenta de solo lectura para asegurarte de que no cambie la instancia de 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
La consulta personalizada se envía como una solicitud GET
. Si usas un parámetro payload
opcional, la solicitud se envía como una solicitud POST
.
Los value_path
pueden ser claves de cadena o índices de lista. Por ejemplo:
{
"foo": {
"bar": [
"result0",
"result1"
]
}
}
value_path: foo.bar.1
devuelve el valor result1
.
Recopilación de trazas
Datadog APM se integra con Elasticsearch para ver las trazas (traces) en todo el sistema distribuido. La recopilación de trazas se encuentra habilitada de manera predeterminada en el Datadog Agent versión 6 o posterior. Para empezar a recopilar trazas:
- Habilita la recopilación de trazas en Datadog.
- Instrumenta la aplicación que realiza solicitudes a Elasticsearch.
Recopilación de logs
Disponible para las versiones del Agent posteriores a la 6.0
La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Habilítala en el archivo datadog.yaml
con:
Para recopilar logs lentos de búsqueda e indexarlos, configura tus ajustes de Elasticsearch. De manera predeterminada, los logs lentos de búsqueda no se encuentran habilitados.
Añade este bloque de configuración a tu archivo elastic.d/conf.yaml
para empezar a recopilar tus logs de Elasticsearch:
logs:
- type: file
path: /var/log/elasticsearch/*.log
source: elasticsearch
service: "<SERVICE_NAME>"
Reinicia el Agent.
Docker
A fin de configurar este check para un Agent que se ejecuta en un contenedor:
Recopilación de métricas
Establece las plantillas de integraciones de Autodiscovery como etiquetas (labels) de Docker en el contenedor de tu aplicación:
LABEL "com.datadoghq.ad.check_names"='["elastic"]'
LABEL "com.datadoghq.ad.init_configs"='[{}]'
LABEL "com.datadoghq.ad.instances"='[{"url": "http://%%host%%:9200"}]'
Recopilación de logs
La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Para habilitarla, consulta la Recopilación de logs de Docker.
Luego, configura las integraciones de log como etiquetas de Docker:
LABEL "com.datadoghq.ad.logs"='[{"source":"elasticsearch","service":"<SERVICE_NAME>"}]'
Recopilación de trazas
APM para aplicaciones en contenedores es compatible con el Agent versión 6, o posterior, pero requiere una configuración adicional a fin de empezar a recopilar trazas.
Variables de entorno necesarias en el contenedor del Agent:
Parámetro | Valor |
---|
<DD_API_KEY> | api_key |
<DD_APM_ENABLED> | true |
<DD_APM_NON_LOCAL_TRAFFIC> | true |
Consulta el Rastreo de aplicaciones de Kubernetes y la Configuración del daemon de Kubernetes para obtener una lista completa de las variables de entorno y configuración disponibles.
Luego, instrumenta tu contenedor de aplicaciones y configura DD_AGENT_HOST
con el nombre del contenedor de tu Agent.
Kubernetes
A fin de configurar este check para un Agent que se ejecuta en Kubernetes:
Recopilación de métricas
Establece las plantillas de integraciones de Autodiscovery como anotaciones de pod en el contenedor de tu aplicación. Además de esto, las plantillas también se pueden configurar con un archivo, un mapa de configuración o un almacén de clave-valor.
Anotaciones v1 (para el Datadog Agent versión 7.36 o anterior)
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
Anotaciones v2 (para el Datadog Agent versión 7.36 o posterior)
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
Recopilación de logs
La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Para habilitarla, consulta la Recopilación de logs de Kubernetes.
Luego, establece las integraciones de log como anotaciones de pod. Esto también se puede configurar con un archivo, un mapa de configuración o un almacén de clave-valor.
Anotaciones v1/v2
apiVersion: v1
kind: Pod
metadata:
name: elasticsearch
annotations:
ad.datadoghq.com/elasticsearch.logs: '[{"source":"elasticsearch","service":"<SERVICE_NAME>"}]'
spec:
containers:
- name: elasticsearch
Recopilación de trazas
APM para aplicaciones en contenedores es compatible con los hosts que ejecutan el Agent versión 6, o posterior, pero requiere una configuración adicional a fin de empezar a recopilar trazas.
Variables de entorno necesarias en el contenedor del Agent:
Parámetro | Valor |
---|
<DD_API_KEY> | api_key |
<DD_APM_ENABLED> | true |
<DD_APM_NON_LOCAL_TRAFFIC> | true |
Consulta el Rastreo de aplicaciones de Kubernetes y la Configuración del daemon de Kubernetes para obtener una lista completa de las variables de entorno y configuración disponibles.
Luego, instrumenta tu contenedor de aplicaciones y configura DD_AGENT_HOST
con el nombre del contenedor de tu Agent.
ECS
A fin de configurar este check para un Agent que se ejecuta en ECS:
Recopilación de métricas
Establece las plantillas de integraciones de Autodiscovery como etiquetas de Docker en el contenedor de tu aplicación:
{
"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\"}]"
}
}]
}
Recopilación de logs
La recopilación de logs se encuentra deshabilitada de manera predeterminada en el Datadog Agent. Para habilitarla, consulta la Recopilación de logs de ECS.
Luego, configura las integraciones de log como etiquetas de Docker:
{
"containerDefinitions": [{
"name": "elasticsearch",
"image": "elasticsearch:latest",
"dockerLabels": {
"com.datadoghq.ad.logs": "[{\"source\":\"elasticsearch\",\"service\":\"<SERVICE_NAME>\"}]"
}
}]
}
Recopilación de trazas
APM para aplicaciones en contenedores es compatible con el Agent versión 6, o posterior, pero requiere una configuración adicional a fin de empezar a recopilar trazas.
Variables de entorno necesarias en el contenedor del Agent:
Parámetro | Valor |
---|
<DD_API_KEY> | api_key |
<DD_APM_ENABLED> | true |
<DD_APM_NON_LOCAL_TRAFFIC> | true |
Consulta el Rastreo de aplicaciones de Kubernetes y la Configuración del daemon de Kubernetes para obtener una lista completa de las variables de entorno y configuración disponibles.
Luego, instrumenta tu contenedor de aplicaciones y configura DD_AGENT_HOST
en la dirección IP privada de EC2.