En este documento, se describe cómo configurar una verificación de tiempo de actividad privada. Las verificaciones de tiempo de actividad privadas habilitan las solicitudes HTTP o TCP en una red de nube privada virtual (VPC) del cliente, mientras se aplican las restricciones de Administración de identidades y accesos (IAM) y los perímetros de los Controles del servicio de VPC. Las verificaciones de tiempo de actividad privadas pueden enviar solicitudes a través de la red privada a recursos como una máquina virtual (VM) o un balanceador de cargas interno (ILB) de L4.
Los servicios del Directorio de servicios registran las direcciones IP internas de los recursos en la red privada con el acceso a la red privada habilitado. Para usar verificaciones de tiempo de actividad privadas, debes configurar el acceso a la red privada con el producto Directorio de servicios.
El proyecto Google Cloud que almacena la verificación de tiempo de actividad privada y el proyecto Google Cloud que almacena el servicio de Directorio de servicios pueden ser proyectos diferentes. Cloud Monitoring te permite supervisar recursos en variosGoogle Cloud proyectos desde un solo proyecto con un permiso de métricas. El proyecto en el que se define la verificación de tiempo de actividad es el proyecto de permisos de un permiso de métricas. El permiso de métricas es una lista de todos los proyectos que supervisa el proyecto de permisos. El servicio de Service Directory se puede definir en el proyecto de alcance o en un proyecto del alcance de las métricas. Para obtener más información sobre los permisos de métricas, consulta Descripción general de los permisos de métricas.
La red privada y sus recursos, como las VMs o los balanceadores de cargas, también pueden estar en un proyecto de Google Cloud diferente. Este proyecto no tiene que estar en el alcance de las métricas del proyecto de alcance de la verificación de tiempo de actividad. El servicio de Service Directory recopila las métricas de tiempo de actividad, por lo que debe estar en el alcance de las métricas, pero los recursos que encapsula no.
En este documento, se describe cómo configurar una red privada y configurar los recursos de Directorio de servicios para ella con la consola de Google Cloud o la API. En los ejemplos de la API, se supone que la red privada y el servicio de Directorio de servicios se encuentran en el proyecto de alcance de la verificación de tiempo de actividad. Sin embargo, en Crea una verificación de tiempo de actividad privada, también se describe cómo usar la API para crear una verificación de tiempo de actividad que use un servicio de Directorio de servicios en el alcance de las métricas.
Para obtener información sobre cómo configurar verificaciones de tiempo de actividad que usan direcciones IP públicas, consulta Crea verificaciones de tiempo de actividad públicas. Para obtener información sobre cómo administrar y supervisar tus verificaciones de tiempo de actividad, consulta la sección Próximos pasos de este documento.
Esta función solo se admite para proyectos de Google Cloud . Para las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de administración de la carpeta habilitada para la app.
Antes de comenzar
Habilita las siguientes APIs:
- API de Cloud Monitoring:
monitoring.googleapis.com
- API de Service Directory:
servicedirectory.googleapis.com
- API de Service Networking:
servicenetworking.googleapis.com
- API de Compute Engine:
compute.googleapis.com
Puedes habilitar las APIs con gcloud CLI o laGoogle Cloud consola. En las siguientes pestañas, se describe cómo instalar gcloud CLI y habilitar la API de Cloud Monitoring:
Consola de Google Cloud
En la consola de Google Cloud , selecciona el proyecto de Google Cloud para el que deseas habilitar la API y, luego, ve a la página APIs & Services:
Haz clic en el botón Habilitar las API y el servicio.
Busca “Monitoring”.
En los resultados de la búsqueda, haz clic en "API de Monitoring" de Stackdriver.
Si se muestra "API habilitada", significa que la API ya está habilitada. De lo contrario, haz clic en Habilitar.
gcloud CLI
Si aún no instalaste Google Cloud CLI en tu estación de trabajo, consulta Instala la CLI de gcloud.
Para ver si la API de Monitoring está habilitada, ejecuta el siguiente comando en tu estación de trabajo después de reemplazar PROJECT_ID por el ID del proyecto para el que deseas habilitar la API:
gcloud services list --project=PROJECT_ID
Si
monitoring.googleapis.com
aparece en el resultado, la API está habilitada.Si la API no está habilitada, ejecuta el siguiente comando para habilitarla:
gcloud services enable monitoring --project=PROJECT_ID
Para obtener más información, consulta
gcloud services
Puedes seguir los mismos pasos para habilitar las otras APIs:
- Para usar la consola de Google Cloud , busca el nombre visible, por ejemplo, "API de Service Directory".
- Para usar gcloud CLI, especifica el primer elemento del nombre
googleapis.com
, por ejemplo,servicedirectory
.
- API de Cloud Monitoring:
Configura los canales de notificación que deseas usar para recibir notificaciones. Te recomendamos que crees varios tipos de canales de notificaciones. Para obtener más información, consulta Cómo crear y administrar canales de notificaciones.
Configura una red privada y una VM o un ILB para que tengan acceso a esa red privada. Para obtener más información, consulta Acceso privado a servicios.
Las verificaciones privadas que tienen como objetivo los ILB se limitan a las regiones con verificadores de tiempo de actividad. La región de verificación de tiempo de actividad
USA
incluye las regionesUSA_OREGON
,USA_IOWA
yUSA_VIRGINIA
. Cada una de las regiones deUSA_*
tiene un verificador, yUSA
incluye los tres. Las otras regiones de verificación de tiempo de actividad,EUROPE
,SOUTH_AMERICA
yASIA_PACIFIC
, tienen un verificador cada una. Para quitar esta limitación, debes configurar el acceso global a tu balanceador de cargas. Para obtener más información sobre cómo configurar el acceso global, consulta la pestaña ILB en la sección Configura recursos del Directorio de servicios de este documento.Si planeas verificar un ILB que no permite el acceso global, selecciona una de las siguientes regiones para tu ILB:
us-east4
us-central1
us-west1
europe-west1
southamerica-east1
asia-southeast1
Determina qué interfaz usar:
Google Cloud console: Te permite crear una verificación de tiempo de actividad cuando una VM procesa solicitudes. Esta interfaz te guía para configurar los recursos de Directorio de servicios, autorizar la cuenta de servicio y configurar las reglas del firewall de red.
Interfaces de línea de comandos: Puedes usar Google Cloud CLI y la API de Cloud Monitoring para crear verificaciones privadas de tiempo de actividad cuando los ILB y las VM atienden solicitudes.
Si planeas usar la línea de comandos para configurar tus verificaciones de tiempo de actividad privadas, completa los pasos de requisitos previos.
Crea una verificación de tiempo de actividad privada
En esta sección, se explica cómo crear y configurar verificaciones privadas de tiempo de actividad de los servicios de Directorio de servicios:
Para usar la consola de Google Cloud , selecciona la pestaña consola deGoogle Cloud .
Para usar la API de Cloud Monitoring y configurar el servicio de Directorio de servicios de modo que se encuentre en el mismo proyecto Google Cloud que la verificación de disponibilidad, selecciona la pestaña API: Proyecto de alcance.
Para usar la API de Cloud Monitoring y configurar el servicio de Directorio de servicios para que se encuentre en un proyecto supervisado por el permiso de métricas del proyecto de la verificación de disponibilidad, selecciona la pestaña API: Proyecto supervisado.
Consola de Google Cloud
Para crear una verificación de tiempo de actividad con la Google Cloud consola, haz lo siguiente:
-
En la consola de Google Cloud , ve a la página
Verificaciones de tiempo de actividad:
Ve a Verificaciones de tiempo de actividad
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Monitoring.
- En la barra de herramientas de la consola de Google Cloud , selecciona tu proyecto de Google Cloud . Para las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de administración de la carpeta habilitada para la app.
Haga clic en Crear una verificación de tiempo de actividad.
Especifica una verificación de tiempo de actividad privada:
Selecciona el protocolo, que puede ser HTTP, HTTPS o TCP.
Elige el tipo de recurso IP interna.
Si no tienes un servicio de Directorio de servicios configurado para tu proyecto o si quieres crear uno, haz clic en Ver y completa el panel Requisitos previos de la verificación privada de tiempo de actividad:
Si se te solicita, habilita la API de Compute Engine o la API de Service Directory. Habilitar las APIs puede tardar un minuto en completarse.
Expande arrow_drop_down Cuenta de servicio, si se muestra, y, luego, haz clic en Crear cuenta de servicio.
Cuando no existe una cuenta de servicio de Monitoring, se crea una. Luego, Monitoring otorga a la cuenta de servicio dos roles de Directorio de servicios.
Expande el menú arrow_drop_down Service Directory y, luego, haz lo siguiente:
- Expande arrow_drop_down Región y, luego, selecciona la región de la VM que entrega solicitudes.
- Expande arrow_drop_down Espacio de nombres y, luego, selecciona un espacio de nombres existente del Directorio de servicios o haz clic en Crear espacio de nombres y crea uno.
- Haz clic en Nombre del servicio y, luego, ingresa un nombre. Los servicios son los destinos de las verificaciones privadas de tiempo de actividad.
- Haz clic en Nombre del extremo y, luego, ingresa un nombre para el extremo. Un extremo es un par de valores de dirección IP y puerto que un servicio puede usar para controlar solicitudes. Cuando tu servicio contiene varios extremos, se elige uno al azar.
- Expande arrow_drop_down Red y, luego, selecciona tu red privada.
- Expande arrow_drop_down Instancia y, luego, selecciona la VM en la red privada que atiende las solicitudes. Después de seleccionar la instancia, se muestra su dirección IP interna.
- Haz clic en Listo.
Expande arrow_drop_down Reglas de firewall:
Expande arrow_drop_down Red y selecciona la red a la que se adjunta la regla de red.
Haz clic en Crear reglas de firewall.
La regla de firewall habilita el tráfico de TCP entrante desde las rutas 35.199.192.0/19. Una ruta desde 35.199.192.0/19 admite la conectividad a destinos de reenvío que usan enrutamiento privado. Para obtener más información, consulta Rutas de VPC.
En el panel Verificación de tiempo de actividad privada, para especificar el servicio del Directorio de servicios que se usará, realiza una de las siguientes acciones:
Selecciona Usar un nombre de servicio completamente calificado y, luego, ingresa el nombre completamente calificado del servicio:
projects/SERVICE_DIRECTORY_PROJECT_ID/locations/REGION/namespaces/PRIVATE_NAMESPACE/services/PRIVATE_SERVICE
Selecciona la Región, el Espacio de nombres y el Servicio con los menús. Si creaste un servicio, estos campos se seleccionarán automáticamente.
En el panel Verificación de tiempo de actividad privada, completa la descripción del destino de la verificación de tiempo de actividad:
Opcional: Ingresa un componente de ruta de acceso para la solicitud.
Las verificaciones de tiempo de actividad privadas que usan el protocolo HTTP o HTTPS envían una solicitud a
http://target/path
. En esta expresión,target
es la dirección IP interna configurada en el extremo del Directorio de servicios.Si dejas el campo Ruta de acceso en blanco o si estableces el valor en
/
, la solicitud se emitirá enhttp://target/
.Opcional: Para establecer la frecuencia con la que se ejecuta la verificación de tiempo de actividad, usa el campo Frecuencia de verificación.
Opcional: Para seleccionar regiones de verificador o configurar la autenticación, los encabezados para las verificaciones HTTP y HTTPS, y otros valores, haz clic en Más opciones de destino:
- Regiones: selecciona las regiones en las que las verificaciones de tiempo de actividad son para recibir solicitudes. Una verificación de tiempo de actividad debe tener al menos tres verificadores. Hay un verificador en todas las regiones, excepto en Estados Unidos, que tiene tres. La configuración predeterminada, Global, incluye todas las regiones.
- Método de solicitud: Selecciona
GET
oPOST
. - Cuerpo: Para las verificaciones de
POST
HTTP, ingresa el cuerpo codificado en URL. Debes realizar la codificación por tu cuenta. Para todas las demás verificaciones, deja este campo vacío. - Encabezado del host: No establezcas este campo cuando configures verificaciones de tiempo de actividad privadas.
- Puerto: Cualquier valor que establezcas aquí anula el puerto en la configuración del extremo del Directorio de servicios. No establezcas un valor aquí si deseas que se use la configuración del extremo.
- Encabezados personalizados: Proporciona encabezados personalizados y, de manera opcional, encripta los encabezados. La encriptación oculta los valores del encabezado en el formulario. Usa la encriptación para los encabezados relacionados con la autenticación que no quieres que otros vean.
- Autenticación: Proporciona un nombre de usuario y contraseña únicos. Estos valores se envían como un encabezado de autorización. Si estableces valores aquí, no establezcas un encabezado de autorización por separado; si estableces un encabezado de autorización, no establezcas valores aquí. Las contraseñas siempre están ocultas en el formulario.
Haz clic en Continuar y configura los requisitos de respuesta. Todos los parámetros de configuración de esta sección tienen valores predeterminados:
Para establecer un período de espera para la verificación de tiempo de actividad, usa el campo Tiempo de espera de respuesta. Una verificación de tiempo de actividad falla si no se recibe respuesta de más de una ubicación en este período.
Para configurar la verificación de tiempo de actividad para que realice la coincidencia de contenido, asegúrate de que la etiqueta de activar o desactivar sea Coincidencia de contenido habilitada:
- Selecciona Tipo de concordancia del contenido de la respuesta en el menú de opciones.
Este campo determina cómo se compara el contenido de la respuesta con los datos que se muestran. Por ejemplo, supongamos que el contenido de la respuesta es
abcd
y el tipo de coincidencia del contenido es Contiene. La verificación de tiempo de actividad se realiza correctamente solo cuando los datos de respuesta contienenabcd
. Para obtener más información, consulta Valida los datos de respuesta. - Ingresa el Contenido de la respuesta. El contenido de la respuesta debe ser una cadena de no más de 1,024 bytes. En la API, este campo es el objeto
ContentMatcher
.
- Selecciona Tipo de concordancia del contenido de la respuesta en el menú de opciones.
Este campo determina cómo se compara el contenido de la respuesta con los datos que se muestran. Por ejemplo, supongamos que el contenido de la respuesta es
Para evitar que se creen entradas de registro debido a las verificaciones de tiempo de actividad, desmarca Registrar fallas en la verificación.
Para las verificaciones de tiempo de actividad HTTP, configura los códigos de respuesta aceptables. De forma predeterminada, las verificaciones de tiempo de actividad HTTP marcan cualquier respuesta
2xx
como una respuesta correcta.
Haz clic en Continuar y configura las políticas de alertas y las notificaciones.
Para recibir una notificación cuando falle una verificación de tiempo de actividad, crea una política de alertas y configura canales de notificaciones para esa política:
- Opcional: Actualiza el nombre de la política de alertas.
- Opcional: En el campo Duración, selecciona por cuánto tiempo deben fallar las verificaciones de tiempo de actividad antes de que se envíen las notificaciones. De forma predeterminada, las notificaciones se envían cuando al menos dos regiones informan fallas en la verificación de tiempo de actividad durante al menos un minuto.
En el cuadro etiquetado como Canales de notificaciones, expande arrow_drop_down Menú, selecciona los canales que deseas agregar y, luego, haz clic en Aceptar.
En el menú, los canales de notificaciones se agrupan alfabéticamente por cada tipo de canal.
Si no deseas crear una política de alertas, asegúrate de que el texto del botón de activación sea No crear una alerta.
Haz clic en Continuar y completa la verificación de tiempo de actividad:
Ingresa un título descriptivo para la verificación de tiempo de actividad.
Opcional: Para agregar etiquetas definidas por el usuario a tu verificación de tiempo de actividad, haz lo siguiente:
- Haz clic en expand_more Mostrar etiquetas de usuarios.
- En el campo Clave, ingresa un nombre para la etiqueta.
Los nombres de las etiquetas deben comenzar con una letra en minúscula y pueden contener letras en minúscula, números, guiones bajos y guiones. Por ejemplo, ingresa
severity
. - En el campo Valor, ingresa un valor para tu etiqueta. Los valores de etiquetas pueden contener letras minúsculas, números, guiones bajos y guiones. Por ejemplo, ingresa
critical
. - Para cada etiqueta adicional, haz clic en Agregar etiqueta del usuario y, luego, ingresa la clave y el valor de la etiqueta.
Para verificar la configuración de verificación de tiempo de actividad, haz clic en Probar (Test). Si el resultado no es el esperado, consulta Solución de problemas, corrige tu configuración y repite el paso de verificación.
Haz clic en Crear.
API: Proyecto de permisos
Para crear la configuración de una verificación de tiempo de actividad privada, debes crear un objeto UptimeCheckConfig
y pasarlo al método uptimeCheckConfigs.create
en la API de Cloud Monitoring.
El objeto UptimeCheckConfig
para una verificación de tiempo de actividad privada difiere del objeto para una verificación de tiempo de actividad pública de las siguientes maneras:
El recurso supervisado especificado en la configuración de la verificación de tiempo de actividad debe ser del tipo
servicedirectory_service
. Este tipo de recurso tiene las siguientes etiquetas:project_id
: Es el ID del proyecto asociado con el servicio de Directorio de servicios.location
: Es la región de Cloud asociada al servicio.namespace_name
: Es el espacio de nombres del Directorio de servicios.service_name
: Es el nombre del servicio de Directorio de servicios.
No es necesario que especifiques un valor de
port
en la configuración de la verificación de tiempo de actividad. El valor del puerto del extremo del Directorio de servicios anula cualquier valor establecido en la configuración de la verificación de tiempo de actividad, y la verificación falla si no se especifica ningún puerto en la configuración del Directorio de servicios.La configuración de la verificación de tiempo de actividad debe especificar el campo
checker_type
con el valorVPC_CHECKERS
. Este valor es obligatorio para las verificaciones de tiempo de actividad privadas. De forma predeterminada, las verificaciones de tiempo de actividad son públicas, por lo que no es necesario especificar este campo.
El siguiente código JSON ilustra un objeto UptimeCheckConfig
para una verificación de tiempo de actividad privada que usa los recursos de Directorio de servicios configurados para una instancia de VM en una red privada:
{ "displayName": "private-check-demo", "monitoredResource": { "type": "servicedirectory_service", "labels": { "project_id": "SERVICE_DIRECTORY_PROJECT_ID", "service_name": "PRIVATE_SERVICE", "namespace_name": "PRIVATE_NAMESPACE", "location": "REGION" } }, "httpCheck": { "requestMethod": "GET" }, "period": "60s", "timeout": "10s", "checker_type": "VPC_CHECKERS" }'
Para crear una verificación de tiempo de actividad privada cuando el servicio de Directorio de servicios se encuentra en el mismo proyecto Google Cloud que la verificación de tiempo de actividad, haz lo siguiente:
Configura el proyecto Google Cloud predeterminado para gcloud CLI:
gcloud config set project PROJECT_ID
Crea una variable de entorno para almacenar tu ID del proyecto:
export PROJECT_ID=$(gcloud config get-value core/project)
Crea una variable de entorno para almacenar un token de acceso:
export TOKEN=`gcloud auth print-access-token`
Usa la herramienta
curl
para invocar el métodouptimeCheckConfigs.create
y publicar un objeto de configuración en él:curl https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/uptimeCheckConfigs \ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ --request POST --data '{ "displayName": "private-check-demo", "monitoredResource": { "type": "servicedirectory_service", "labels": { "project_id": "'"$PROJECT_ID"'", "service_name": "PRIVATE_SERVICE", "namespace_name": "PRIVATE_NAMESPACE", "location": "REGION" } }, "httpCheck": { "requestMethod": "GET" }, "period": "60s", "timeout": "10s", "checker_type": "VPC_CHECKERS" }'
Si falla la creación de la verificación de tiempo de actividad, verifica que la cuenta de servicio tenga los roles necesarios. Para obtener más información, consulta Falla la creación de la verificación de tiempo de actividad.
API: Proyecto supervisado
Para crear la configuración de una verificación de tiempo de actividad privada, debes crear un objeto UptimeCheckConfig
y pasarlo al método uptimeCheckConfigs.create
en la API de Cloud Monitoring.
El objeto UptimeCheckConfig
para una verificación de tiempo de actividad privada difiere del objeto para una verificación de tiempo de actividad pública de las siguientes maneras:
El recurso supervisado especificado en la configuración de la verificación de tiempo de actividad debe ser del tipo
servicedirectory_service
. Este tipo de recurso tiene las siguientes etiquetas:project_id
: Es el ID del proyecto asociado con el servicio de Directorio de servicios.location
: Es la región de Cloud asociada al servicio.namespace_name
: Es el espacio de nombres del Directorio de servicios.service_name
: Es el nombre del servicio de Directorio de servicios.
No es necesario que especifiques un valor de
port
en la configuración de la verificación de tiempo de actividad. El valor del puerto del extremo del Directorio de servicios anula cualquier valor establecido en la configuración de la verificación de tiempo de actividad, y la verificación falla si no se especifica ningún puerto en la configuración del Directorio de servicios.La configuración de la verificación de tiempo de actividad debe especificar el campo
checker_type
con el valorVPC_CHECKERS
. Este valor es obligatorio para las verificaciones de tiempo de actividad privadas. De forma predeterminada, las verificaciones de tiempo de actividad son públicas, por lo que no es necesario especificar este campo.
El siguiente código JSON ilustra un objeto UptimeCheckConfig
para una verificación de tiempo de actividad privada que usa los recursos de Directorio de servicios configurados para una instancia de VM en una red privada:
{ "displayName": "private-check-demo", "monitoredResource": { "type": "servicedirectory_service", "labels": { "project_id": "SERVICE_DIRECTORY_PROJECT_ID", "service_name": "PRIVATE_SERVICE", "namespace_name": "PRIVATE_NAMESPACE", "location": "REGION" } }, "httpCheck": { "requestMethod": "GET" }, "period": "60s", "timeout": "10s", "checker_type": "VPC_CHECKERS" }'
Para crear una verificación de tiempo de actividad privada cuando el servicio de Directorio de servicios se encuentra en un Google Cloud proyecto que supervisa el permiso de métricas delGoogle Cloud proyecto de la verificación de tiempo de actividad, haz lo siguiente:
Configura gcloud CLI para que use de forma predeterminada el proyecto Google Cloud en el que se creará la verificación de tiempo de actividad:
gcloud config set project PROJECT_ID
Crea una variable de entorno para almacenar tu ID del proyecto:
export PROJECT_ID=$(gcloud config get-value core/project)
Crea una variable de entorno para almacenar el ID del proyecto deGoogle Cloud project en el que se define el servicio de Directorio de servicios:
export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
Este proyecto debe estar en el alcance de las métricas del proyecto de la verificación de tiempo de actividad.
Crea una variable de entorno para almacenar un token de acceso:
export TOKEN=`gcloud auth print-access-token`
Usa la herramienta
curl
para invocar el métodouptimeCheckConfigs.create
y publicar un objeto de configuración en él:curl https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/uptimeCheckConfigs \ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ --request POST --data '{ "displayName": "private-check-demo", "monitoredResource": { "type": "servicedirectory_service", "labels": { "project_id": "'"$MONITORED_PROJECT_ID"'", "service_name": "PRIVATE_SERVICE", "namespace_name": "PRIVATE_NAMESPACE", "location": "REGION" } }, "httpCheck": { "requestMethod": "GET" }, "period": "60s", "timeout": "10s", "checker_type": "VPC_CHECKERS" }'
Si falla la creación de la verificación de tiempo de actividad, verifica que la cuenta de servicio tenga los roles necesarios. Para obtener más información, consulta Falla la creación de la verificación de tiempo de actividad.
Puede haber un retraso de hasta 5 minutos antes de que comience el flujo de los resultados de la verificación de tiempo de actividad en Monitoring. Durante ese tiempo, el panel de verificación de tiempo de actividad informa el estado como "sin datos disponibles".
Pasos previos
Si planeas usar la interfaz de la consola de Google Cloud , ve a Crea una verificación de tiempo de actividad privada. La consola deGoogle Cloud te guía por todos los pasos previos necesarios.
Si planeas usar la línea de comandos para configurar tus verificaciones de tiempo de actividad privadas, debes completar los siguientes pasos antes de poder crear la verificación de tiempo de actividad:
Configura recursos del Directorio de servicios
Las verificaciones de tiempo de actividad privadas determinan la disponibilidad de un recurso a través de una dirección IP interna que registra un servicio del Directorio de servicios. Puedes configurar un Directorio de servicios para los siguientes recursos:
- VMs en una red privada
- Balanceadores de cargas internos (ILB) L4
Para usar verificaciones de tiempo de actividad privadas, debes configurar los siguientes recursos del Directorio de servicios:
- Extremo: Un extremo es un par de valores de dirección IP y puerto que un servicio puede usar para controlar solicitudes. Cuando tu servicio contiene varios extremos, se elige uno al azar.
- Servicio: Un servicio es un conjunto de extremos que proporcionan un conjunto de comportamientos. Los servicios son los destinos de las verificaciones privadas de tiempo de actividad.
- Espacio de nombres: Un espacio de nombres contiene un conjunto de nombres de servicio y sus extremos asociados. Los espacios de nombres te permiten agrupar servicios para una administración coherente.
Puedes configurar estos recursos con gcloud CLI o laGoogle Cloud consola. Cuando usas la consola, los pasos de configuración se incluyen en el diálogo Crear verificación de tiempo de actividad.
Consola de Google Cloud
Cuando usas la consola de Google Cloud , después de seleccionar IP interna como el tipo de recurso para una verificación de tiempo de actividad, se te solicita que crees un Directorio de servicios y un servicio.
gcloud CLI: VM
Para obtener información sobre los comandos que se usan en este documento para los servicios, los espacios de nombres y los extremos, consulta el grupo de comandos de gcloud service-directory
.
Para crear recursos de Directorio de servicios para una VM, haz lo siguiente:
Configura Google Cloud CLI para que use de forma predeterminada el proyecto Google Cloud en el que se crearán los recursos de Directorio de servicios:
gcloud config set project PROJECT_ID
Crea variables de entorno para almacenar el ID y el número del proyecto:
export PROJECT_ID=$(gcloud config get-value core/project) export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
Crea un espacio de nombres del Directorio de servicios:
gcloud service-directory namespaces create PRIVATE_NAMESPACE --location=REGION
Crea un servicio de Directorio de servicios en el espacio de nombres:
gcloud service-directory services create PRIVATE_SERVICE \ --namespace PRIVATE_NAMESPACE --location=REGION
Crea una variable de entorno para almacenar la dirección IP de la VM en la red privada:
export INTERNAL_IP=$(gcloud compute instances describe --zone=ZONE \ PRIVATE_SERVICE_INSTANCE --format='get(networkInterfaces[0].networkIP)')
Crea un extremo de Directorio de servicios que contenga la dirección IP interna y un puerto:
gcloud service-directory endpoints create PRIVATE_ENDPOINT \ --location=REGION --namespace=PRIVATE_NAMESPACE \ --service=PRIVATE_SERVICE \ --network=projects/$PROJECT_NUMBER/locations/global/networks/PRIVATE_CHECK_NETWORK \ --address=$INTERNAL_IP --port=80
Gcloud CLI: ILB de L4
Para obtener información sobre los comandos que se usan en este documento para los servicios, los espacios de nombres y los extremos, consulta el grupo de comandos de gcloud service-directory
.
Puedes usar verificaciones de tiempo de actividad privadas para supervisar la disponibilidad de un balanceador de cargas interno (ILB) de L4 creando recursos de Directorio de servicios para el ILB de L4.
Cuando creas nuevos ILB de L4, puedes usar la integración automática que proporciona el Directorio de servicios. Para obtener más información, consulta Configura balanceadores de cargas internos en el Directorio de servicios.
Si tienes ILB de L4 que se crearon sin usar la integración automática que proporciona el Directorio de servicios, puedes configurar manualmente los recursos del Directorio de servicios de la siguiente manera:
Configura Google Cloud CLI para que use de forma predeterminada el proyecto Google Cloud en el que se crearán los recursos de Directorio de servicios:
gcloud config set project PROJECT_ID
Crea variables de entorno para almacenar el ID y el número del proyecto:
export PROJECT_ID=$(gcloud config get-value core/project) export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
Para permitir que todos los verificadores de tiempo de actividad transfieran datos a tu ILB de nivel 4, habilita el acceso global al ILB:
gcloud compute forwarding-rules update ILB_FORWARDING_RULE_NAME \ --region=ILB_REGION --allow-global-access
Si tu ILB de nivel 4 no permite el acceso global, las métricas de tiempo de actividad solo estarán disponibles si ILB_REGION es uno de los siguientes:
us-east4
us-central1
us-west1
europe-west1
southamerica-east1
asia-southeast1
Crea un espacio de nombres del Directorio de servicios:
gcloud service-directory namespaces create PRIVATE_NAMESPACE_FOR_ILB\ --location=REGION
Crea un servicio de Directorio de servicios en el espacio de nombres:
gcloud service-directory services create PRIVATE_SERVICE_FOR_ILB \ --namespace PRIVATE_NAMESPACE_FOR_ILB --location=REGION
Crea una variable de entorno para almacenar la dirección IP del balanceador de cargas en la red privada:
export INTERNAL_IP=$( gcloud compute forwarding-rules describe ILB_FORWARDING_RULE_NAME\ --region=ILB_REGION --format='get(IPAddress)')
Crea un extremo de Directorio de servicios que contenga la dirección IP interna y un puerto:
gcloud service-directory endpoints create PRIVATE_ENDPOINT_FOR_ILB \ --location=ILB_REGION --namespace=PRIVATE_NAMESPACE_FOR_ILB \ --service=PRIVATE_SERVICE_FOR_ILB \ --network=projects/$PROJECT_NUMBER/locations/global/networks/PRIVATE_CHECK_NETWORK \ --address=$INTERNAL_IP --port=80
Autoriza la cuenta de servicio
Las verificaciones de tiempo de actividad usan una cuenta de servicio propiedad de Monitoring para administrar las interacciones con el servicio de Directorio de servicios. El nombre de la cuenta de servicio tiene el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-monitoring-notification.iam.gserviceaccount.com
Cuando esta cuenta de servicio no existe, Monitoring la crea cuando creas la verificación de disponibilidad privada. No puedes crear esta cuenta de servicio.
Cuando creas una verificación de disponibilidad privada, Monitoring intenta otorgarle a la cuenta de servicio dos roles de Directorio de servicios. Sin embargo, cuando usas la API, la configuración de tu proyecto Google Cloud puede impedir que Monitoring otorgue roles a la cuenta de servicio. En esta situación, falla la creación de la verificación de tiempo de actividad.
En esta sección, se describe cómo puedes otorgar los roles necesarios a una cuenta de servicio existente:
Consola de Google Cloud
Cuando usas la consola de Google Cloud , después de seleccionar IP interna como el tipo de recurso para una verificación de tiempo de actividad, se te solicita que autorices la cuenta de servicio.
API: Proyecto de permisos
Para otorgar los roles de Service Directory a una cuenta de servicio existente, haz lo siguiente:
Configura gcloud CLI para que use de forma predeterminada el proyecto Google Cloud en el que se creará la verificación de tiempo de actividad:
gcloud config set project PROJECT_ID
Crea variables de entorno para almacenar el ID y el número del proyecto:
export PROJECT_ID=$(gcloud config get-value core/project) export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
Ejecuta los siguientes comandos:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \ --role='roles/servicedirectory.viewer'
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \ --role='roles/servicedirectory.pscAuthorizedService'
Los comandos anteriores otorgan los siguientes roles a la cuenta de servicio:
roles/servicedirectory.viewer
roles/servicedirectory.pscAuthorizedService
API: Proyecto supervisado
Para otorgar los roles de Service Directory a una cuenta de servicio existente, haz lo siguiente:
Configura gcloud CLI para que use de forma predeterminada el proyecto Google Cloud en el que se creará la verificación de tiempo de actividad:
gcloud config set project PROJECT_ID
Crea variables de entorno para almacenar el ID y el número del proyecto:
export PROJECT_ID=$(gcloud config get-value core/project) export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='get(projectNumber)')
Crea una variable de entorno para almacenar el ID del proyecto en el que se define el servicio de Directorio de servicios:
export MONITORED_PROJECT_ID=MONITORED_PROJECT_ID
Este proyecto debe estar en el alcance de las métricas del proyecto de la verificación de tiempo de actividad.
Crea una variable de entorno para retener el ID del proyecto en el que se define la red:
export NETWORK_PROJECT_ID=NETWORK_PROJECT_ID
Este proyecto no necesita estar en el alcance de las métricas del proyecto de la verificación de tiempo de actividad.
Ejecuta los siguientes comandos:
gcloud projects add-iam-policy-binding $MONITORED_PROJECT_ID \ --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \ --role='roles/servicedirectory.viewer'
gcloud projects add-iam-policy-binding $NETWORK_PROJECT_ID \ --member='serviceAccount:service-'$PROJECT_NUMBER'@gcp-sa-monitoring-notification.iam.gserviceaccount.com' \ --role='roles/servicedirectory.pscAuthorizedService'
Los comandos anteriores otorgan los siguientes roles a la cuenta de servicio:
roles/servicedirectory.viewer
para el proyecto supervisado en el que se configura el servicio de Directorio de servicios,$SERVICE_MONITORED_PROJECT_ID
.roles/servicedirectory.pscAuthorizedService
para el proyecto en el que se configura la red privada,$NETWORK_PROJECT_ID
.
Configura reglas de firewall
Debes crear una regla de firewall que habilite el tráfico TCP entrante desde las rutas 35.199.192.0/19. Una ruta de 35.199.192.0/19 admite la conectividad a destinos de reenvío que usan enrutamiento privado. Para obtener más información, consulta Rutas de VPC.
Consola de Google Cloud
Cuando usas la consola de Google Cloud , después de seleccionar IP interna como el tipo de recurso para una verificación de tiempo de actividad, se te solicita que configures las reglas de firewall.
gcloud CLI
Para crear una regla de firewall que permita el tráfico TCP entrante a través del firewall para el acceso a la red privada, ejecuta el siguiente comando:
Configura gcloud CLI para que use de forma predeterminada el proyecto Google Cloud en el que se creará la verificación de tiempo de actividad:
gcloud config set project PROJECT_ID
Crea variables de entorno para almacenar el ID y el número del proyecto:
export PROJECT_ID=$(gcloud config get-value core/project)
Crea la regla de red:
gcloud compute firewall-rules create PRIVATE_CHECK_NETWORK_HOPE_RULE \ --network="PRIVATE_CHECK_NETWORK" \ --action=allow --direction=ingress --source-ranges="35.199.192.0/19" \ --rules=tcp --project="$PROJECT_ID"
En el comando anterior, PRIVATE_CHECK_NETWORK es la red a la que se adjunta esta regla, mientras que PRIVATE_CHECK_NETWORK_HOPE_RULE es el nombre de la regla de firewall.
Para obtener más información sobre este paso, consulta Cómo configurar el proyecto de red.
Limitaciones
Cuando se usan verificaciones de tiempo de actividad privadas, se inhabilita la validación de certificados SSL, independientemente de la configuración.
Las verificaciones privadas de tiempo de actividad no admiten extremos que tengan redireccionamientos.
Soluciona problemas
En esta sección, se describen algunos errores que puedes encontrar cuando usas verificaciones de tiempo de actividad privadas y se proporciona información para resolverlos.
Falla la creación de la verificación de tiempo de actividad
La configuración de tu proyecto Google Cloud puede impedir la modificación de los roles asignados a la cuenta de servicio que usan las verificaciones de tiempo de actividad para administrar las interacciones con el servicio de Directorio de servicios. En esta situación, falla la creación de la verificación de tiempo de actividad.
En esta sección, se describe cómo puedes otorgar los roles que requiere la cuenta de servicio:
Consola de Google Cloud
Cuando usas la consola de Google Cloud para crear la verificación de tiempo de actividad privada, la consola de Google Cloud emite los comandos para otorgar los roles del Directorio de servicios a la cuenta de servicio.
Para obtener información sobre cómo otorgar roles a una cuenta de servicio, consulta Autoriza la cuenta de servicio.
API: Proyecto de permisos
La primera vez que crees una verificación de tiempo de actividad privada para un servicio de Directorio de servicios y recursos privados en un solo proyecto Google Cloud , es posible que la solicitud se realice correctamente o no. El resultado depende de si inhabilitaste la concesión automática de roles para las cuentas de servicio en tu proyecto:
La primera creación de una verificación de tiempo de actividad se realiza correctamente si tu proyecto permite el otorgamiento automático de roles para las cuentas de servicio. Se crea una cuenta de servicio para ti y se le otorgan los roles necesarios.
La primera creación de una verificación de tiempo de actividad falla si tu proyecto no permite la asignación automática de roles para las cuentas de servicio. Se crea una cuenta de servicio, pero no se otorgan roles.
Si falla la creación de la verificación de tiempo de actividad, haz lo siguiente:
- Autoriza la cuenta de servicio.
- Espera unos minutos para que se propaguen los permisos.
- Vuelve a intentar crear la verificación de tiempo de actividad privada.
API: Proyecto supervisado
La primera vez que creas una verificación de tiempo de actividad privada que tiene como objetivo un servicio de Directorio de servicios en un proyecto supervisado o recursos privados en un proyecto Google Cloud diferente, la solicitud falla y se crea una cuenta de servicio de Monitoring.
La forma en que autorizas la cuenta de servicio depende de la cantidad de proyectos deGoogle Cloud que usas y sus relaciones. Es posible que haya hasta cuatro proyectos involucrados:
- Es el proyecto en el que definiste la verificación de tiempo de actividad privada.
- Es el proyecto supervisado en el que configuraste el servicio de Directorio de servicios.
- Es el proyecto en el que configuraste la red de VPC.
- Es el proyecto en el que se configuran los recursos de red, como las VMs o los balanceadores de cargas. Este proyecto no tiene ninguna función en la autorización de la cuenta de servicio que se analiza aquí.
Cuando falla la creación de la primera verificación de tiempo de actividad, haz lo siguiente:
- Autoriza la cuenta de servicio.
- Espera unos minutos para que se propaguen los permisos.
- Vuelve a intentar crear la verificación de tiempo de actividad privada.
Acceso denegado
Tus verificaciones de tiempo de actividad fallan con resultados de VPC_ACCESS_DENIED
. Este resultado significa que algún aspecto de la configuración de tu red o de la autorización de la cuenta de servicio no es correcto.
Verifica la autorización de tu cuenta de servicio para usar un proyecto de alcance o un proyecto supervisado, como se describe en Falla la creación de la verificación de tiempo de actividad.
Para obtener más información sobre cómo acceder a redes privadas, consulta Configura el proyecto de red.
Resultados anómalos de las verificaciones de tiempo de actividad privadas
Tienes un servicio de Directorio de servicios con varias VMs, y la configuración del servicio contiene varios extremos. Cuando apagas una de las VMs, la verificación de tiempo de actividad sigue indicando que se realizó correctamente.
Cuando la configuración de tu servicio contiene varios extremos, se elige uno al azar. Si la VM asociada con el extremo elegido está en ejecución, la verificación de tiempo de actividad se realiza correctamente, aunque una de las VMs esté inactiva.
Encabezados predeterminados
Tus verificaciones de tiempo de actividad devuelven errores o resultados inesperados. Esto puede ocurrir si anulaste los valores predeterminados de los encabezados.
Cuando se envía una solicitud para una verificación de tiempo de actividad privada a un extremo de destino, la solicitud incluye los siguientes encabezados y valores:
Encabezado | Valor |
---|---|
HTTP_USER_AGENT |
GoogleStackdriverMonitoring-UptimeChecks(https://cloud.google.com/monitoring) |
HTTP_CONNECTION |
keep-alive |
HTTP_HOST |
IP del extremo del Directorio de servicios |
HTTP_ACCEPT_ENCODING |
gzip , deflate , br |
CONTENT_LENGTH |
Se calcula a partir de los datos de publicaciones sobre el tiempo de actividad |
Si intentas anular estos valores, puede ocurrir lo siguiente:
- La verificación de tiempo de actividad informa errores
- Se descartan los valores de anulación y se reemplazan por los valores de la tabla.
No se ven datos
No ves ningún dato en el panel de la verificación de tiempo de actividad cuando esta se encuentra en un proyecto Google Cloud diferente del servicio de Directorio de servicios.
Asegúrate de que el proyecto Google Cloud que contiene la verificación de tiempo de actividad supervise el proyecto Google Cloud que contiene el servicio de Directorio de servicios.
Para obtener más información sobre cómo enumerar los proyectos supervisados y agregar otros, consulta Configura un permiso de métricas para varios proyectos.
¿Qué sigue?
- Administra las verificaciones de tiempo de actividad
- Crea políticas de alertas para las verificaciones de tiempo de actividad
- Cómo generar un gráfico de las métricas de verificación del tiempo de actividad
- Precios y límites