1. Installer l'agent #
Linux, Docker, Kubernetes.
Linux #
DD_API_KEY=<cle_api> DD_SITE="datadoghq.eu" \
bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script_agent7.sh)"
sudo datadog-agent status | head -40Docker #
docker run -d --name dd-agent \
-e DD_API_KEY=<cle_api> -e DD_SITE=datadoghq.eu \
-e DD_LOGS_ENABLED=true -e DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true \
-e DD_APM_ENABLED=true -e DD_APM_NON_LOCAL_TRAFFIC=true -e DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-p 8126:8126 -p 8125:8125/udp \
gcr.io/datadoghq/agent:7Kubernetes avec l'opérateur #
helm repo add datadog https://helm.datadoghq.com && helm repo update
helm install datadog-operator datadog/datadog-operator -n datadog --create-namespace
kubectl -n datadog create secret generic datadog-secret --from-literal api-key=<cle_api>apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata: { name: datadog, namespace: datadog }
spec:
global:
site: datadoghq.eu
clusterName: prod-eu
credentials:
apiSecret: { secretName: datadog-secret, keyName: api-key }
features:
logCollection: { enabled: true, containerCollectAll: true }
apm: { instrumentation: { enabled: true } }
liveProcessCollection: { enabled: true }2. Les intégrations #
Activer un check.
Fichier de configuration #
# /etc/datadog-agent/conf.d/nginx.d/conf.yaml
init_config:
instances:
- nginx_status_url: http://localhost:81/nginx_status
tags: [service:front, env:prod]sudo datadog-agent check nginx # exécuter le check une fois
sudo systemctl restart datadog-agentAutodiscovery des conteneurs #
Pour les conteneurs, la configuration se met dans des annotations (Kubernetes) ou des labels (Docker) : l'agent applique le check à chaque conteneur correspondant, où qu'il tourne.
metadata:
annotations:
ad.datadoghq.com/nginx.checks: |
{"nginx": {"instances": [{"nginx_status_url": "http://%%host%%:81/nginx_status"}]}}
ad.datadoghq.com/nginx.logs: '[{"source": "nginx", "service": "front"}]'Bonne Pratique : La variable %%host%% est remplacée par l'adresse du conteneur : la même annotation fonctionne pour tous les pods.3. Diagnostiquer l'agent #
Les commandes utiles.
Commandes #
sudo datadog-agent status # état des checks, logs, APM, erreurs
sudo datadog-agent configcheck # configurations chargées (dont autodiscovery)
sudo datadog-agent flare <ticket> # paquet de diagnostic pour le support
kubectl -n datadog exec ds/datadog-agent -- agent status