Enviar logs a CloudPrem con el Datadog Agent
Este producto no es compatible con el
sitio Datadog seleccionado. (
).
CloudPrem está en vista previa
Únete a la vista previa de CloudPrem para acceder a las nuevas funciones de gestión de logs autoalojadas.
Request AccessEste documento ofrece los pasos de configuración para utilizar el Datadog Agent para enviar logs a un despliegue de Datadog CloudPrem. A diferencia de la plataforma SaaS de Datadog, CloudPrem requiere configuraciones específicas del Agent para garantizar que los logs se enriquezcan con las etiquetas de nivel de host necesarias y se envíen al endpoint correcto. Esta guía explica cómo establecer estas configuraciones para los métodos de despliegue más comunes.
Requisitos clave
Para enviar logs con el Datadog Agent a CloudPrem, debes configurar dos variables de entorno:
DD_LOGS_CONFIG_LOGS_DD_URL- establécela en el endpoint de tu indexador de CloudPrem, normalmente
http://<RELEASE_NAME>-indexer.<NAMESPACE_NAME>.svc.cluster.local:7280. Esto indica al Agent dónde enviar los logs.
DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION
(Opcional) Esta es una variable opcional, pero muy recomendable. Ajústala a un valor grande, como “100000” (aproximadamente 5 años). Esto garantiza que el Agent añada etiquetas a nivel de host a cada log que envíe. La plataforma SaaS de Datadog enriquece automáticamente los logs con estas etiquetas después de la ingesta, pero CloudPrem requiere que el Agent las añada por adelantado.
Proxy
Si has configurado el Datadog Agent para utilizar un proxy y CloudPrem está alojado en tu red interna, deberás configurar no_proxy para que el Agent pueda enviar logs directamente a CloudPrem sin pasar por el proxy.
# In the no_proxy section, add the CloudPrem DNS
no_proxy:
- http://<RELEASE_NAME>-indexer.<NAMESPACE_NAME>.svc.cluster.local:7280
Además, debes establecer DD_NO_PROXY_NONEXACT_MATCH en true. Para obtener más información, consulta Configuración del proxy del Datadog Agent.
Enviar logs de Kubernetes con el Datadog Operator
Para desplegar el Agent en Kubernetes utilizando el Datadog Operator, sigue la guía Introducción al Datadog Operator. Cuando llegues al paso 3, utiliza la siguiente configuración datadog-agent.yaml en lugar del ejemplo proporcionado en la guía.
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
clusterName: <CLUSTER_NAME>
site: datadoghq.com
credentials:
apiSecret:
secretName: datadog-secret
keyName: api-key
env:
- name: DD_LOGS_CONFIG_LOGS_DD_URL
value: http://<RELEASE_NAME>-indexer.<NAMESPACE_NAME>.svc.cluster.local:7280
- name: DD_LOGS_CONFIG_EXPECTED_TAGS_DURATION
value: "100000"
features:
logCollection:
enabled: true
containerCollectAll: true
otlp:
receiver:
protocols:
grpc:
enabled: true
endpoint: 0.0.0.0:4417
prometheusScrape:
enabled: true
enableServiceEndpoints: true
Opciones de configuración
Configuración del endpoint
El Datadog Agent puede configurarse para enviar logs a CloudPrem utilizando diferentes endpoints:
Recomendado para agents dentro del clúster:
DD_LOGS_CONFIG_LOGS_DD_URL=http://<RELEASE_NAME>-indexer.<NAMESPACE_NAME>.svc.cluster.local:7280
Para Agents fuera del clúster:
DD_LOGS_CONFIG_LOGS_DD_URL=https://cloudprem-internal.your-domain.com
Configuración adicional de Agent
También puedes configurar funciones adicionales para enviar metadatos del clúster a Datadog:
features:
prometheusScrape:
enabled: true
enableServiceEndpoints: true
Para enviar logs del Agent a Datadog:
features:
otlp:
receiver:
protocols:
grpc:
enabled: true
endpoint: 0.0.0.0:4417
Métodos alternativos de despliegue
Si no utilizas el Datadog Operator, puedes desplegar el Agent utilizando uno de estos métodos habituales:
Despliegue del Helm chart
Ejecuta el siguiente comando para desplegar el Agent utilizando el Helm chart, estableciendo directamente las variables de entorno específicas del log.
helm install datadog-agent datadog/datadog \
--set datadog.apiKey=<YOUR_API_KEY> \
--set datadog.logs.enabled=true \
--set datadog.logs.containerCollectAll=true \
--set datadog.logsConfigContainerCollectAll=true \
--set agents.containers.agent.env[0].name=DD_LOGS_CONFIG_LOGS_DD_URL \
--set agents.containers.agent.env[0].value=http://<RELEASE_NAME>-indexer.<NAMESPACE_NAME>.svc.cluster.local:7280
Despliegue del DaemonSet
Para despliegues personalizados, establece la variable de entorno en tu DaemonSet:
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: datadog-agent
spec:
template:
spec:
containers:
- name: agent
image: gcr.io/datadoghq/agent:latest
env:
- name: DD_API_KEY
value: <YOUR_API_KEY>
- name: DD_LOGS_ENABLED
value: "true"
- name: DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL
value: "true"
- name: DD_LOGS_CONFIG_LOGS_DD_URL
value: "http://<RELEASE_NAME>-indexer.<NAMESPACE_NAME>.svc.cluster.local:7280"
Verificación
Una vez desplegado el Agent, puedes comprobar que los logs se envían y reciben correctamente.
Comprobar el estado del Agent
Utiliza kubectl exec para comprobar el estado del Agent y confirmar que está configurado para enviar logs.
# Check Agent status and logs configuration
kubectl exec -it <datadog-agent-pod> -- agent status | grep -A 10 "Logs Agent"
# Check Agent logs for CloudPrem connection
kubectl logs <datadog-agent-pod> | grep -i cloudprem
Comprobar si los logs están indexados en CloudPrem
Ejecuta este comando para consultar el buscador de CloudPrem y verificar que está indexando los logs JSON.
kubectl exec -it <RELEASE_NAME>-searcher-0 -n <NAMESPACE_NAME> -- curl 'http://localhost:7280/api/v1/datadog/search?query='
Solucionar problemas
El Agent no está enviando logs:
- Comprueba que la variable de entorno
DD_LOGS_CONFIG_LOGS_DD_URL está configurada correctamente. - Comprueba los logs de pod del Agent:
kubectl logs <datadog-agent-pod> - Asegúrate de que la recopilación de logs está activada:
DD_LOGS_ENABLED=true
CloudPrem no está recibiendo logs:
- Comprueba los logs del indexador de CloudPrem:
kubectl logs -n <NAMESPACE_NAME> -l app=<RELEASE_NAME>-indexer - Verifica la conectividad de red entre el Agent y el indexador de CloudPrem
- Confirma que el servicio de CloudPrem se está ejecutando:
kubectl get pods -n <NAMESPACE_NAME>
Referencias adicionales
Más enlaces, artículos y documentación útiles: