Les modèles d’intégration peuvent être stockés dans vos annotations de pod Kubernetes. Lorsque Autodiscovery est activé, l’Agent détecte s’il est exécuté sur Kubernetes et examine alors automatiquement toutes les annotations de pod à la recherche de modèles d’intégration.
Pour appliquer une configuration spécifique à un conteneur donné, Autodiscovery identifie les conteneurs via leur nom, et non via leur image. II cherche à faire correspondre <IDENTIFICATEUR_CONTENEUR>
à .spec.containers[0].name
, et non à .spec.containers[0].image
. Pour configurer Autodiscovery pour une intégration Datadog sur un <IDENTIFICATEUR_CONTENEUR>
donné dans votre pod, ajoutez les annotations suivantes à votre pod :
apiVersion: v1
kind: Pod
# (...)
metadata:
name: '<NOM_POD>'
annotations:
ad.datadoghq.com/<IDENTIFICATEUR_CONTENEUR>.check_names: '[<NOM_INTÉGRATION>]'
ad.datadoghq.com/<IDENTIFICATEUR_CONTENEUR>.init_configs: '[<CONFIG_INIT>]'
ad.datadoghq.com/<IDENTIFICATEUR_CONTENEUR>.instances: '[<CONFIG_INSTANCE>]'
# (...)
spec:
containers:
- name: '<IDENTIFICATEUR_CONTENEUR>'
# (...)
Pour appliquer deux modèles d’intégration différents à deux conteneurs différents dans votre pod, <IDENTIFICATEUR_CONTENEUR_1>
et <IDENTIFICATEUR_CONTENEUR_2>
, ajoutez les annotations suivantes à votre pod :
apiVersion: v1
kind: Pod
# (...)
metadata:
name: '<NOM_POD>'
annotations:
ad.datadoghq.com/<IDENTIFICATEUR_CONTENEUR_1>.check_names: '[<NOM_INTÉGRATION_1>]'
ad.datadoghq.com/<IDENTIFICATEUR_CONTENEUR_1>.init_configs: '[<CONFIG_INIT_1>]'
ad.datadoghq.com/<IDENTIFICATEUR_CONTENEUR_1>.instances: '[<CONFIG_INSTANCE_1>]'
# (...)
ad.datadoghq.com/<IDENTIFICATEUR_CONTENEUR_2>.check_names: '[<NOM_INTÉGRATION_2>]'
ad.datadoghq.com/<IDENTIFICATEUR_CONTENEUR_2>.init_configs: '[<CONFIG_INIT_2>]'
ad.datadoghq.com/<IDENTIFICATEUR_CONTENEUR_2>.instances: '[<CONFIG_INSTANCE_2>]'
spec:
containers:
- name: '<IDENTIFICATEUR_CONTENEUR_1>'
# (...)
- name: '<IDENTIFICATEUR_CONTENEUR_2>'
# (...)
Si vous définissez directement vos pods Kubernetes (avec kind: Pod
), ajoutez les annotations de chaque pod directement dans sa section metadata
. Si vous définissez indirectement les pods avec des ReplicationControllers, des ReplicaSets ou des Deployments, ajoutez les annotations de pod dans .spec.template.metadata
.
Remarque : Datadog vous conseille d’utiliser le tagging de service unifié lorsque vous assignez des tags dans des environnements conteneurisés. Le tagging de service unifié permet de lier les données de télémétrie Datadog entre elles via trois tags standards : env
, service
et version
. Pour découvrir comment configurer le tagging unifié pour votre environnement, consultez la documentation dédiée au tagging de service unifié.
Vous pouvez stocker des modèles en tant que fichiers locaux et les monter dans l’Agent conteneurisé. Cela ne nécessite aucun service externe ni aucune plateforme d’orchestration spécifique. Vous devez cependant redémarrer les conteneurs de votre Agent à chaque modification, ajout ou suppression de modèle. L’Agent recherche les modèles Autodiscovery dans le répertoire /conf.d
monté.
À partir de la version 6.2.0 (et 5.24.0) de l’Agent, les modèles par défaut utilisent le port par défaut pour le logiciel surveillé au lieu de le détecter automatiquement. Si vous devez utiliser un port différent, spécifiez un modèle Autodiscovery personnalisé dans les annotations de pod Kubernetes.
Ces modèles d’intégration peuvent convenir dans les cas simples. Toutefois, si vous avez besoin de personnaliser les configurations de votre intégration Datadog (par exemple pour activer des options supplémentaires, pour faire appel à des identificateurs de conteneur différents ou pour utiliser les index de template variables), vous devez écrire vos propres fichiers de configuration automatique :
- Créez un fichier
conf.d/<NOM_INTÉGRATION>.d/conf.yaml
sur votre host et ajoutez votre fichier de configuration automatique personnalisé. - Montez le répertoire
conf.d/
de votre host dans le répertoire conf.d/
de l’Agent conteneurisé.
Exemple de fichier de configuration automatique :
ad_identifiers:
<IDENTIFICATEUR_INTÉGRATION_AUTODISCOVERY>
init_config:
<CONFIG_INIT>
instances:
<CONFIG_INSTANCES>
Consultez la documentation sur les identificateurs de conteneur Autodiscovery pour obtenir des informations sur <IDENTIFICATEUR_INTÉGRATION_AUTODISCOVERY>
.
Remarque : vous n’avez pas à configurer <NOM_INTÉGRATION>
ici, car l’Agent le récupère directement à partir du nom du fichier.
Kubernetes vous permet d’utiliser des ConfigMaps. Pour en savoir plus, consultez le modèle ci-dessous et la documentation relative aux intégrations personnalisées Kubernetes.
kind: ConfigMap
apiVersion: v1
metadata:
name: "<NOM>-config-map"
namespace: default
data:
<NOM_INTÉGRATION>-config: |-
ad_identifiers:
<IDENTIFICATEUR_INTÉGRATION_AUTODISCOVERY>
init_config:
<CONFIG_INIT>
instances:
<CONFIG_INSTANCES>
Consultez la documentation sur les identificateurs de conteneur Autodiscovery pour obtenir des informations sur <IDENTIFICATEUR_INTÉGRATION_AUTODISCOVERY>
.
Autodiscovery peut utiliser Consul, Etcd et Zookeeper comme sources de modèle d’intégration. Pour utiliser un stockage clé-valeur, vous devez le configurer dans le fichier de configuration datadog.yaml
de l’Agent et monter ce fichier dans l’agent conteneurisé. Vous pouvez également transmettre votre stockage clé-valeur comme variables d’environnement à l’Agent conteneurisé.
Configurer dans datadog.yaml :
Dans le fichier datadog.yaml
, définissez l’adresse <IP_STOCKAGE_CLÉ_VALEUR>
et le <PORT_STOCKAGE_CLÉ_VALEUR>
de votre stockage clé-valeur :
config_providers:
- name: etcd
polling: true
template_dir: /datadog/check_configs
template_url: '<IP_STOCKAGE_CLÉVALEUR>:<PORT_STOCKAGE_CLÉVALEUR>'
username:
password:
- name: consul
polling: true
template_dir: datadog/check_configs
template_url: '<IP_STOCKAGE_CLÉVALEUR>:<PORT_STOCKAGE_CLÉVALEUR>'
ca_file:
ca_path:
cert_file:
key_file:
username:
password:
token:
- name: zookeeper
polling: true
template_dir: /datadog/check_configs
template_url: '<IP_STOCKAGE_CLÉVALEUR>:<PORT_STOCKAGE_CLÉVALEUR>'
username:
password:
Redémarrez ensuite l’Agent pour prendre en compte le changement de configuration.
Configurer dans les variables d’environnement :
Remarque : Datadog vous conseille d’utiliser le tagging de service unifié lorsque vous configurez des tags et des variables d’environnement dans des environnements conteneurisés. Le tagging de service unifié permet de lier les données de télémétrie Datadog entre elles via trois tags standards : env
, service
et version
. Pour découvrir comment configurer le tagging unifié pour votre environnement, consultez la documentation dédiée au [tagging de service unifié][9].
Lorsque le stockage clé-valeur est activé en tant que source de modèle, l’Agent recherche des modèles à partir de la clé /datadog/check_configs
. Autodiscovery s’attend à une hiérarchie clé-valeur comme suit :
/datadog/
check_configs/
<IDENTIFICATEUR_CONTENEUR>/
- check_names: ["<NOM_INTÉGRATION>"]
- init_configs: ["<CONFIG_INIT>"]
- instances: ["<CONFIG_INSTANCE>"]
...
Remarque : pour appliquer une configuration spécifique à un conteneur donné, Autodiscovery identifie les conteneurs par image en cas d’utilisation de stockages clé-valeur. En d’autres termes, il cherche à faire correspondre <IDENTIFICATEUR_CONTENEUR>
à .spec.containers[0].image
.