Host
Pour configurer ce check lorsque l’Agent est exécuté sur un host :
Collecte de métriques
Modifiez le fichier elastic.d/conf.yaml
dans le dossier conf.d/
à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos métriques Elasticsearch. Consultez le fichier d’exemple elastic.d/conf.yaml pour découvrir toutes les options de configuration 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
Remarques :
Si vous recueillez des métriques Elasticsearch à partir d’un seul Agent Datadog s’exécutant en dehors du cluster, par exemple si vous utilisez une instance Elasticsearch hébergée, définissez cluster_stats
sur true
.
Les tags au niveau de l’Agent ne sont pas appliqués aux hosts associés à un cluster qui n’exécute pas l’Agent. Utilisez les tags au niveau de l’intégration dans <integration>.d/conf.yaml
pour vous assurer que TOUTES les métriques présentent des tags cohérents. Par exemple :
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%%
Pour utiliser l’intégration Elasticsearch de l’Agent pour les services AWS Elasticsearch AWS, définissez le paramètre url
afin de rediriger vers votre URL stats AWS Elasticsearch.
Toutes les requêtes envoyées à l’API de configuration Amazon ES doivent être signées. Consultez la section Créer et signer des requêtes OpenSearch Service (en anglais) pour en savoir plus.
Le type d’authentification aws
fait appel à boto3 pour récupérer automatiquement les identifiants AWS depuis .aws/credentials
. Utilisez auth_type: basic
dans le fichier conf.yaml
et définissez les identifiants avec username: <NOMUTILISATEUR>
et password: <MOTDEPASSE>
.
Vous devez créer un utilisateur et un rôle (s’ils n’existent pas déjà) dans Elasticsearch, en leur attribuant les autorisations adéquates pour la surveillance. Pour ce faire, vous pouvez utiliser l’API REST fournie par Elasticsearch ou encore l’interface Kibana.
Si vous avez activé des fonctionnalités de sécurité dans Elasticsearch, vous pouvez utiliser les autorisations monitor
ou manage
avec l’API pour interroger les index Elasticsearch.
Ajoutez les propriétés suivantes dans le rôle créé :
name = "datadog"
indices {
names = [".monitoring-*", "metricbeat-*"]
privileges = ["read", "read_cross_cluster", "monitor"]
}
cluster = ["monitor"]
Attribuez ensuite le rôle à l’utilisateur :
roles = [<created role>, "monitoring_user"]
Pour en savoir plus, consultez les sections Créer ou mettre à jour des rôles et Créer ou mettre à jour des utilisateurs (en anglais).
Redémarrez l’Agent.
Requêtes personnalisées
Grâce à l’intégration Elasticsearch, vous pouvez recueillir des métriques custom à l’aide de requêtes personnalisées. Pour y parvenir, utilisez l’option de configuration custom_queries
.
Remarque : lors de l’exécution de requêtes personnalisées, utilisez un compte disposant d’un accès en lecture seule pour veiller à ne pas modifier l’instance 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 requête personnalisée est envoyée en tant que requête GET
. Si vous utilisez un paramètre payload
facultatif, elle est envoyée en tant que requête POST
.
value_path
peut correspondre à des clés de chaîne ou à des index de liste. Exemple :
{
"foo": {
"bar": [
"result0",
"result1"
]
}
}
value_path: foo.bar.1
renvoie la valeur result1
.
Collecte de traces
L’APM Datadog s’intègre à Elastisearch pour vous permettre de visualiser les traces sur l’ensemble de votre système distribué. La collecte de traces est activée par défaut dans les versions 6 et ultérieures de l’Agent Datadog. Pour commencer à recueillir des traces :
- Activez la collecte de traces dans Datadog.
- Instrumentez l’application qui envoie des requêtes à Elasticsearch.
Collecte de logs
Disponible à partir des versions > 6.0 de l’Agent
La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans le fichier datadog.yaml
:
Pour recueillir les logs lents de recherche et d’index, [configurez vos paramètres Elasticsearch][14]. Par défaut, les logs lents ne sont pas activés.
Ajoutez ensuite ce bloc de configuration à votre fichier elastic.d/conf.yaml
pour commencer à recueillir vos logs Elasticsearch :
logs:
- type: file
path: /var/log/elasticsearch/*.log
source: elasticsearch
service: "<SERVICE_NAME>"
Redémarrez l’Agent.
Docker
Pour configurer ce check lorsque l’Agent est exécuté sur un conteneur :
Collecte de métriques
Définissez des modèles d’intégration Autodiscovery en tant qu’étiquettes Docker sur votre conteneur d’application :
LABEL "com.datadoghq.ad.check_names"='["elastic"]'
LABEL "com.datadoghq.ad.init_configs"='[{}]'
LABEL "com.datadoghq.ad.instances"='[{"url": "http://%%host%%:9200"}]'
Collecte de logs
La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs Docker.
Définissez ensuite des intégrations de logs en tant qu’étiquettes Docker :
LABEL "com.datadoghq.ad.logs"='[{"source":"elasticsearch","service":"<NOM_SERVICE>"}]'
Collecte de traces
L’APM dédié aux applications conteneurisées est pris en charge sur les versions 6 et ultérieures de l’Agent, mais nécessite une configuration supplémentaire pour recueillir des traces.
Variables d’environnement requises sur le conteneur de l’Agent :
Paramètre | Valeur |
---|
<DD_API_KEY> | api_key |
<DD_APM_ENABLED> | true |
<DD_APM_NON_LOCAL_TRAFFIC> | true |
Consultez les sections relatives au tracing d’applications Kubernetes et à la configuration de DaemonSet Kubernetes pour consulter la liste complète des variables d’environnement et options de configuration disponibles.
Ensuite, instrumentez le conteneur de votre application et définissez DD_AGENT_HOST
sur le nom de votre conteneur d’Agent.
Kubernetes
Pour configurer ce check lorsque l’Agent est exécuté sur Kubernetes :
Collecte de métriques
Définissez des modèles d’intégration Autodiscovery en tant qu’annotations de pod sur votre conteneur d’application. Cette configuration peut également être réalisée avec un fichier, une configmap ou une paire key/value.
Version 1 des annotations (pour les versions de l’Agent Datadog antérieures à la 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
Version 2 des annotations (pour les versions 7.36 et ultérieures de l’Agent Datadog)
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
Collecte de logs
La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs Kubernetes.
Définissez ensuite des intégrations de logs en tant qu’annotations de pod. Cette configuration peut également être réalisée avec un fichier, une configmap ou une paire key/value.
Versions 1 et 2 des annotations
apiVersion: v1
kind: Pod
metadata:
name: elasticsearch
annotations:
ad.datadoghq.com/elasticsearch.logs: '[{"source":"elasticsearch","service":"<NOM_SERVICE>"}]'
spec:
containers:
- name: elasticsearch
Collecte de traces
L’APM dédié aux applications conteneurisées est pris en charge par les hosts exécutant les versions 6 et ultérieures de l’Agent, mais nécessite une configuration supplémentaire pour recueillir des traces.
Variables d’environnement requises sur le conteneur de l’Agent :
Paramètre | Valeur |
---|
<DD_API_KEY> | api_key |
<DD_APM_ENABLED> | true |
<DD_APM_NON_LOCAL_TRAFFIC> | true |
Consultez les sections relatives au tracing d’applications Kubernetes et à la configuration de DaemonSet Kubernetes pour consulter la liste complète des variables d’environnement et options de configuration disponibles.
Ensuite, instrumentez votre conteneur d’application et définissez DD_AGENT_HOST
sur le nom du conteneur de votre Agent.
ECS
Pour configurer ce check lorsque l’Agent est exécuté sur ECS :
Collecte de métriques
Définissez des modèles d’intégration Autodiscovery en tant qu’étiquettes Docker sur votre conteneur d’application :
{
"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\"}]"
}
}]
}
Collecte de logs
La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs Amazon ECS.
Définissez ensuite des intégrations de logs en tant qu’étiquettes Docker :
{
"containerDefinitions": [{
"name": "elasticsearch",
"image": "elasticsearch:latest",
"dockerLabels": {
"com.datadoghq.ad.logs": "[{\"source\":\"elasticsearch\",\"service\":\"<NOM_SERVICE>\"}]"
}
}]
}
Collecte de traces
L’APM dédié aux applications conteneurisées est pris en charge sur les versions 6 et ultérieures de l’Agent, mais nécessite une configuration supplémentaire pour recueillir des traces.
Variables d’environnement requises sur le conteneur de l’Agent :
Paramètre | Valeur |
---|
<DD_API_KEY> | api_key |
<DD_APM_ENABLED> | true |
<DD_APM_NON_LOCAL_TRAFFIC> | true |
Consultez les sections relatives au tracing d’applications Kubernetes et à la configuration de DaemonSet Kubernetes pour consulter la liste complète des variables d’environnement et options de configuration disponibles.
Ensuite, instrumentez votre conteneur d’application et définissez DD_AGENT_HOST
sur l’adresse IP privée EC2.