Las localizaciones privadas permiten monitorizar aplicaciones internas o cualquier endpoint privado que no resultan accesibles a través de la red pública de Internet. También pueden utilizarse para:
Crear localizaciones de Synthetic en áreas consideradas críticas para el desarrollo de tu negocio.
Verificar el rendimiento de la aplicación en tu entorno interno de integración continua antes de lanzar nuevas funciones a la fase de producción con tests continuos y (CI/CD).
Comparar el rendimiento de la aplicación desde dentro y fuera de tu red interna.
Las localizaciones privadas vienen como contenedores Docker o servicios de Windows que puedes instalar en tu red privada. Después de crear e instalar una localización privada, puedes asignarle tests Synthetic, como a cualquier localización gestionada.
El worker de tu localización privada extrae tus configuraciones de test de los servidores de Datadog utilizando HTTPS, ejecuta el test de forma programada o bajo demanda y devuelve los resultados a los servidores de Datadog. A continuación, puedes ver los resultados de tus tests de localizaciones privadas exactamente de la misma forma que verías los tests que se ejecutan desde localizaciones gestionadas:
Las localizaciones privadas son contenedores Docker que puedes instalar en cualquier lugar de tu red privada. Puedes acceder a la imagen del worker de la localización privada en el hub Docker. Puede ejecutarse en un sistema operativo basado en Linux o un sistema operativo Windows, si el motor Docker está disponible en tu host y puede ejecutarse en modo de contenedor Linux.*
*El uso y el funcionamiento de este software se rigen por el Acuerdo de licencia del usuario final, disponible aquí.
Las localizaciones privadas son despliegues de Kubernetes que puedes instalar en tu clúster Kubernetes utilizando Helm. El Helm Chart puede ejecutarse en Kubernetes basado en Linux.
Nota: El uso y el funcionamiento de este software se rigen por el [Acuerdo de licencia del usuario final103.
Las localizaciones privadas son servicios de Windows que puedes instalar en cualquier lugar de tu red privada utilizando un archivo MSI. Ejecuta este archivo desde la máquina virtual o física en la que quieres instalar la localización privada.*
*El uso y el funcionamiento de este software se rigen por el Acuerdo de licencia del usuario final, disponible aquí.
Los requisitos de esta máquina se enumeran en la tabla siguiente. Los scripts de PowerShell deben estar habilitados en el equipo en el que instalas el worker de la localización privada.
Sistema
Requisitos
Sistema operativo
Windows Server 2022, Windows Server 2019, Windows Server 2016 o Windows 10.
RAM
4GB mínimo. 8GB recomendado.
CPU
Procesador Intel o AMD compatible con 64 bits. Procesador de 2,8 GHz o superior recomendado.
Nota: Para que las localizaciones privadas de Windows ejecuten tests de navegador, los navegadores (por ejemplo, Chrome, Edge o Firefox) deben estar instalados en el ordenador Windows.
Debes instalar .NET versión 4.7.2 o posterior en tu ordenador antes de utilizar el instalador de MSI.
El cumplimiento de FIPS no es compatible con las localizaciones privadas que informan a ddog-gov.com. Para deshabilitar este comportamiento, utiliza la opción --disableFipsCompliance.
Para extraer configuraciones de test y enviar resultados de test, el worker de la localización privada necesita acceso a los siguientes endpoints de API de Datadog.
Puerto
Endpoint
Descripción
443
intake.synthetics.datadoghq.com
Utilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4.
443
intake-v2.synthetics.datadoghq.com para las versiones 0.2.0 o posteriores y 1.4.0 o anteriores
Utilizado por la localización privada para extraer artefactos de test de navegador, como capturas de pantalla, errores y recursos.
Puerto
Endpoint
Descripción
443
intake.synthetics.datadoghq.eu
Utilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4.
Nota: Estos dominios apuntan a un conjunto de direcciones IP estáticas. Estas direcciones se pueden encontrar en https://ip-ranges.datadoghq.eu.
Puerto
Endpoint
Descripción
443
intake.synthetics.us3.datadoghq.com
Utilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4.
Puerto
Endpoint
Descripción
443
intake.synthetics.ap1.datadoghq.com
Utilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4.
Puerto
Endpoint
Descripción
443
intake.synthetics.us5.datadoghq.com
Utilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4.
Puerto
Endpoint
Descripción
443
intake.synthetics.ddog-gov.com
Utilizado por la localización privada para extraer configuraciones de test y enviar resultados de test en Datadog utilizando un protocolo interno basado en el protocolo AWS Signature versión 4. Para la versión 1.32.0 y posteriores, estas solicitudes son compatibles con el Estándar federal de procesamiento de información (FIPS).
Rellena la información de tu localización privada:
Especifica el nombre y la descripción de tu localización privada.
Añade cualquier Etiqueta (tag) que quieras asociar a tu localización privada.
Selecciona una de tus claves de API actuales. Al seleccionar una clave de API, se posibilita la comunicación entre tu localización privada y Datadog. Si aún no tienes una clave de API, haz clic en Generate API key (Generar clave de API) para crear una en la página correspondiente. Sólo son obligatorios los campos Name y API key.
Configura el acceso para tu localización privada y haz clic en Save Location and Generate Configuration File (Guardar localización y generar archivo de configuración). Datadog creará tu localización privada y generará el archivo de configuración asociado.
Configura tu localización privada personalizando el archivo de configuración generado. Cuando añadas parámetros de configuración inicial como proxies e IP reservadas bloqueadas en el Paso 3, el archivo de configuración generado se actualizará automáticamente en el Paso 4.
Puedes acceder a opciones avanzadas para ajustar la configuración en función de tu configuración de red interna. Para obtener más información sobre el comando help, consulta Configuración.
Si el tráfico entre tu localización privada y Datadog debe ir a través de un proxy, especifica la URL del proxy como http://<YOUR_USER>:<YOUR_PWD>@<YOUR_IP>:<YOUR_PORT> para añadir el parámetro proxyDatadog asociado al archivo de configuración generado.
De forma predeterminada, los usuarios de Synthetic pueden crear tests Synthetic en endpoints utilizando cualquier dirección IP. Si quieres impedir que los usuarios creen tests en direcciones IP internas confidenciales de tu red, activa el botón Block reserved IPs (Bloquear IP reservadas) para bloquear un conjunto predeterminado de intervalos de direcciones IP reservadas (registro de direcciones IPv4 y registro de direcciones IPv6) y configura el parámetro enableDefaultBlockedIpRanges asociado como true en el archivo de configuración generado.
Si algunos de los endpoints a los que quieres hacer un test se encuentran dentro de uno o varios intervalos de direcciones IP reservadas bloqueadas, puedes añadir sus IP o CIDR a las listas de permisos para añadir los parámetros allowedIPRanges asociados al archivo de configuración generado.
Luego de añadir las opciones correspondientes al archivo de configuración de tu localización privada, puedes copiar y pegar este archivo en tu directorio de trabajo. El archivo de configuración contiene secretos para la autenticación de localizaciones privadas, el descifrado de configuraciones de tests y el cifrado de resultados de tests.
Como Datadog no almacena tus secretos, debes almacenarlos localmente antes de hacer clic en View Installation Instructions (Ver instrucciones de instalación).
Nota: Debes poder volver a hacer referencia a estos secretos, si decides añadir más workers o instalar workers en otro host.
Puedes utilizar las variables de entorno DATADOG_API_KEY, DATADOG_ACCESS_KEY, DATADOG_SECRET_ACCESS_KEY, DATADOG_PUBLIC_KEY_PEM y DATADOG_PRIVATE_KEY en tu definición de tarea.
Ejecuta este comando para iniciar el worker de la localización privada montando tu archivo de configuración en el contenedor. Asegúrate de que tu archivo <MY_WORKER_CONFIG_FILE_NAME>.json está en /etc/docker y no la carpeta de inicio raíz:
docker run -d --restart unless-stopped -v $PWD/<MY_WORKER_CONFIG_FILE_NAME>.json:/etc/datadog/synthetics-check-runner.json datadog/synthetics-private-location-worker:latest
Nota: Si tienes direcciones IP bloqueadas reservadas, añade [funcionalidades de Linux] NET_ADMIN1 a tu contenedor de localización privada.
Este comando inicia un contenedor Docker y prepara tu localización privada para realizar tests. Datadog recomienda ejecutar el contenedor en modo independiente con la política de reinicio adecuada.
Puedes cargar certificados raíz personalizados en tus localizaciones privadas para que tus tests de API y de navegador realicen el enlace SSL utilizando tus propios archivos .pem.
Cuando pongas en marcha tus contenedores de localizaciones privadas, monta los archivos de certificado .pem relevantes en /etc/datadog/certs/<filename>.pem del mismo modo que montarías un archivo de configuración de localización privada. Estos certificados se consideran CA de confianza y se utilizan en tiempo de ejecución de tests. Nota: Si combinas todos tus archivos .pem en un único archivo, el orden en el que se colocan los certificados es importante. Es necesario que el certificado intermedio preceda al certificado raíz para establecer correctamente una cadena de confianza.
Para obtener más información sobre parámetros de localizaciones privadas para administradores, consulta Configuración.
Puedes cargar certificados raíz personalizados en tus localizaciones privadas para que tus tests de API y de navegador realicen el enlace SSL utilizando tus propios archivos .pem.
Cuando pongas en marcha tus contenedores de localizaciones privadas, monta los archivos de certificado .pem relevantes en /etc/datadog/certs del mismo modo que montarías un archivo de configuración de localización privada. Estos certificados se consideran CA de confianza y se utilizan en tiempo de ejecución de tests. Nota: Si combinas todos tus archivos .pem en un único archivo, el orden en el que se colocan los certificados es importante. Es necesario que el certificado intermedio preceda al certificado raíz para establecer correctamente una cadena de confianza.
Para obtener más información sobre parámetros de localizaciones privadas para administradores, consulta Configuración.
La configuración de Podman es muy similar a la de Docker, aunque necesitas definir NET_RAW como funcionalidad adicional para tener compatibilidad con los tests ICMP.
Ejecuta sysctl -w "net.ipv4.ping_group_range = 0 2147483647" desde el host donde se ejecuta el contenedor.
Ejecuta este comando para iniciar el worker de la localización privada montando tu archivo de configuración en el contenedor. Asegúrate de que tu archivo <MY_WORKER_CONFIG_FILE_NAME>.json esté accesible para montarlo en el contendor:
podman run --cap-add=NET_RAW --rm -it -v $PWD/<MY_WORKER_CONFIG_FILE_NAME>.json:/etc/datadog/synthetics-check-runner.json gcr.io/datadoghq/synthetics-private-location-worker:latest
Si tienes direcciones IP reservadas bloqueadas configuradas, añade las funcionalidades de Linux NET_ADMIN a tu contenedor de localización privada.
Este comando inicia un contenedor Podman y prepara tu localización privada para realizar tests. Datadog recomienda ejecutar el contenedor en modo independiente con la política de reinicio adecuada.
Para desplegar el worker de localizaciones privadas de forma segura, configura y monta un recurso de secreto de Kubernetes en el contenedor en /etc/datadog/synthetics-check-runner.json.
Crea un secreto de Kubernetes con el archivo JSON creado anteriormente, ejecutando lo siguiente:
Utiliza despliegues para describir el estado deseado asociado a tus localizaciones privadas. Crea el siguiente archivo private-location-worker-deployment.yaml:
Para OpenShift, ejecuta la localización privada con el SCC anyuid. Esto es necesario para que se ejecute tu test de navegador.
Puedes configurar variables de entorno en tus parámetros de configuración que apunten a secretos ya configurados. Para crear variables de entorno con secretos, consulta la documentación de Kubernetes.
Nota: Si tienes direcciones IP bloqueadas reservadas, añade [funcionalidades de Linux] NET_ADMIN2 a tu contenedor de localización privada.
Crea una nueva definición de tarea de EC2 que coincida con lo siguiente. Sustituye cada parámetro con el valor correspondiente de tu archivo de configuración de localización privada generado anteriormente:
{..."containerDefinitions": [{"command": ["--site='...'","--locationID='...'","--accessKey='...'","--datadogApiKey='...'","--secretAccessKey='...'","--privateKey='-----BEGIN RSA PRIVATE KEY-----XXXXXXXX-----END RSA PRIVATE KEY-----'","--publicKey.pem='-----BEGIN PUBLIC KEY-----XXXXXXXX-----END PUBLIC KEY-----'","--publicKey.fingerprint='...'"],..."image": "datadog/synthetics-private-location-worker:latest",...}],..."compatibilities": ["EC2"],...}
Notas:
Si tienes direcciones IP reservadas bloqueadas, configura un parámetro de Linux para conceder funcionalidades NET_ADMIN a tus contenedores de localización privada.
Si utilizas las variables de entorno DATADOG_API_KEY, DATADOG_ACCESS_KEY, DATADOG_SECRET_ACCESS_KEY, DATADOG_PUBLIC_KEY_PEM y DATADOG_PRIVATE_KEY, no es necesario incluirlas en la sección "command": [ ].
Crea una nueva definición de tarea de Fargate que coincida con lo siguiente. Sustituye cada parámetro con el valor correspondiente de tu archivo de configuración de localización privada generado anteriormente:
{..."containerDefinitions": [{"command": ["--site='...'","--locationID='...'","--accessKey='...'","--datadogApiKey='...'","--secretAccessKey='...'","--privateKey='-----BEGIN RSA PRIVATE KEY-----XXXXXXXX-----END RSA PRIVATE KEY-----'","--publicKey.pem='-----BEGIN PUBLIC KEY-----XXXXXXXX-----END PUBLIC KEY-----'","--publicKey.fingerprint='...'"],..."image": "datadog/synthetics-private-location-worker:latest",...}],..."compatibilities": ["EC2","FARGATE"],...}
Nota: Como la opción de firewall de localización privada no es compatible con AWS Fargate, no es posible configurar el parámetro enableDefaultBlockedIpRanges como true.
Crea un secreto en AWS Secret Manager para almacenar toda o parte de la configuración de localización privada generada anteriormente. Ten en cuenta que la publicKey no puede guardarse tal cual en el archivo de configuración. Por ejemplo:
Se requieren permisos para permitir que la definición de tarea y la instancia de AWS Fargate lean en Secret Manager. Consulta [Especificación de datos confidenciales mediante secretos de Secret Manager en Amazon ECS][25] para obtener más información.
Crea una definición de tarea de Fargate que coincida con el siguiente ejemplo, sustituyendo los valores de la lista de secretos por el ARN del secreto que creaste en el paso anterior. Por ejemplo: arn:aws:secretsmanager:<region>:<account-id>:secret:<secret_arn>:<secret_key>::.
Si no guardaste toda la configuración en Secret Manager, todavía puedes pasar el valor como argumentos de cadena codificados, consulta la [pestaña de Fargate]./?tab=fargate#install-your-private-location) y haz una mezcla.
Nota: Como la opción de firewall de localización privada no es compatible con AWS Fargate, no es posible configurar el parámetro enableDefaultBlockedIpRanges como true.
Como Datadog ya se integra con Kubernetes y AWS, está preparado para monitorizar EKS.
Crea un secreto de Kubernetes con el archivo JSON creado anteriormente, ejecutando lo siguiente:
Utiliza despliegues para describir el estado deseado asociado a tus localizaciones privadas. Crea el siguiente archivo private-location-worker-deployment.yaml:
Nota: Si tienes direcciones IP reservadas bloqueadas, configura un contexto de seguridad para conceder funcionalidades de LinuxNET_ADMIN a tus contenedores de localización privada.
Haz clic en Next (Siguiente) en la página de bienvenida, lee el EULA y acepta los términos y condiciones. Luego, haz clic en Next (Siguiente).
Modifica dónde se instalará la aplicación o deja la configuración predeterminada. Haz clic en Next (Siguiente).
Para configurar tu localización Windows privada, puedes:
Pegar e introducir una configuración JSON para tu worker de la localización privada Synthetics de Datadog. Este archivo es generado por Datadog cuando creas una localización privada.
Busca o escribe una ruta de acceso a un archivo que contenga una configuración JSON para tu worker de la localización privada Synthetics de Datadog.
Una vez finalizada la instalación, puedes dejarla en blanco y ejecutar C:\\Program Files\Datadog-Synthetics\Synthetics\synthetics-pl-worker.exe --config=<PathToYourConfiguration> en la línea de comandos Windows.
Puedes aplicar las siguientes opciones de configuración:
Aplica las reglas de firewall que necesita este programa a Windows Firewall
Permite que el instalador aplique reglas de firewall durante la instalación y las elimine durante la desinstalación.
Aplica reglas para bloquear direcciones IP reservadas en Windows Firewall
Configura reglas de bloqueo para Chrome, Firefox y Edge (si están instalados) y añade reglas para bloquear rangos de direcciones IP reservadas salientes en Windows Firewall.
Habilita el registro de archivos
Permite que el worker de la localización privada Synthetics registre archivos en el directorio de instalación.
Días de rotación de logs
Especifica cuántos días conservar logs antes de eliminarlos del sistema local.
Verbosidad del registro
Especifica la verbosidad de la consola y el registro de archivos para el el worker de la localización privada Synthetics.
Haz clic en Next (Siguiente) e Install (Instalar) para iniciar el proceso de instalación.
Una vez completado el proceso, haz clic en Finish (Finalizar) en la página de finalización de la instalación.
Si introdujiste tu configuración JSON, el servicio de Windows comienza a ejecutarse utilizando esa configuración. Si no introdujiste tu configuración JSON, ejecuta C:\\Program Files\Datadog-Synthetics\Synthetics\synthetics-pl-worker.exe --config=< PathToYourConfiguration > desde un símbolo del sistema o utilice el acceso directo del menú de inicio para iniciar el worker de la localización privada Synthetics.
Aplica las reglas de firewall necesarias para el programa.
1
N/A
0: Deshabilitado 1: Habilitado
APPLYFIREWALLDEFAULTBLOCKRULES
Bloquea las direcciones IP reservadas para cada navegador que tengas instalado (Chrome, Edge y Firefox). El bloqueo de conexiones loopback no es posible en Windows Firewall.
0
N/A
0: Deshabilitado 1: Habilitado
LOGGING_ENABLED
Cuando se habilita, se configura el registro de archivos. Estos logs se almacenan en el directorio de instalación en la carpeta de logs.
0
--enableFileLogging
0: Deshabilitado 1: Habilitado
LOGGING_VERBOSITY
Configura la verbosidad del registro para el programa. Esto afecta a la consola y a los logs de archivo.
Número de días para conservar logs de archivo en el sistema antes de eliminarlos. Puede ser cualquier número cuando se ejecuta una instalación desatendida.
7
--logFileMaxDays
Entero
WORKERCONFIG_FILEPATH
Debe cambiarse por la ruta a tu archivo de configuración JSON del worker de la localización privada Synthetics. Escriba esta ruta entre comillas, si la ruta contiene espacios.
Añade un sondeo de ejecución o preparación para que tu orquestador pueda garantizar el correcto funcionamiento de los workers.
Para los sondeos de preparación, debes habilitar sondeos de estado de localización privada en el puerto 8080 en tu implementación de localización privada. Para obtener más información, consulta Configuración de localizaciones privadas.
Este método de añadir checks de estado de localizaciones privadas ya no es compatible. Datadog recomienda utilizar sondeos de ejecución y preparación.
El archivo /tmp/liveness.date de contenedores de localización privada se actualiza después de cada análisis que se realiza correctamente desde Datadog (por defecto, 2s). Se considera que el estado del contenedor no es adecuado si ha pasado tiempo sin realizar ningún análisis, por ejemplo: sin recuperación en el último minuto.
Utiliza la siguiente configuración para configurar checks de estado en tus contenedores con el livenessProbe:
Para actualizar una localización privada existente, haga clic en el icono del engranaje del panel lateral de la localización privada y haz clic en Installation instructions (Instrucciones de instalación).
Nota: Si estás utilizando docker run para iniciar la imagen de tu localización privada y ya has instalado la imagen de la localización privada utilizando la etiqueta latest, asegúrate de añadir --pull=always al comando docker run para asegurarte de que se extraiga la última versión, en lugar de depender de la versión en caché de la imagen que pueda existir localmente con la misma etiqueta latest.
Una vez que al menos un worker de la localización privada comienza a informar a Datadog, el estado de la localización privada aparece en verde.
Puedes ver el estado de REPORTING y el estado de un monitor asociado mostrados en la lista de localizaciones privadas lista en la página Parámetros.
Empieza realizando un test de tu primer endpoint interno ejecutando un test rápido en uno de tus endpoints internos para ver si obtienes la respuesta esperada:
Nota: Datadog sólo transmite tráfico saliente desde tu localización privada, pero no transmite tráfico entrante.
Crea un test de API, de API de varios pasos o de navegador y selecciona tus Localizaciones privadas elegidas.
Utiliza localizaciones privadas de la misma forma que utilizas tus localizaciones gestionadas de Datadog: asigna tests Synthetic a localizaciones privadas, visualiza resultados de test, obtén métricas de Synthetic, etc.
Dado que puedes ejecutar varios workers para una única localización privada con un único archivo de configuración, puedes escalar horizontalmente tus localizaciones privadas añadiéndoles o quitándoles workers. Al hacerlo, asegúrate de configurar un parámetro concurrency y asignar recursos de worker que correspondan a los tipos y número de tests que quieres que ejecute tu localización privada.
También puedes escalar verticalmente tus localizaciones privadas aumentando la carga que tus workers de localización privada pueden manejar. Del mismo modo, debes utilizar el parámetro concurrency para ajustar el número máximo de tests que tus workers pueden ejecutar y actualizar los recursos asignados a tus workers.
Para utilizar localizaciones privadas para tests continuos, define un valor en el parámetro concurrency para controlar tu paralelización. Para obtener más información, consulta Tests continuos.
Mientras añades inicialmente recursos que se ajustan al número y tipo de tests que se van a ejecutar desde tu localización privada, la forma más sencilla de saber si vas a tener que reducir o ampliar la escala de tu localización privada es monitorizarlos con detalle. En Monitorización de localizaciones privadas encontrarás información sobre el rendimiento y estado de tu localización privada, además de métricas y monitores predefinidos.
De forma predeterminada, sólo los usuarios que tienen el rol de administrador de Datadog pueden crear localizaciones privadas, eliminarlas y acceder a directrices para instalarlas.
Si utilizas la función de rol personalizado, añade tu usuario a un rol personalizado que incluya los permisos synthetics_private_location_read y synthetics_private_location_write.