Soluciona problemas de monitores sintéticos y verificaciones de tiempo de actividad

En este documento, se proporciona información sobre cómo encontrar datos de registro y cómo solucionar fallas del monitor sintético y de la verificación de tiempo de actividad:

Buscar registros

En esta sección, se proporciona información sobre cómo encontrar registros para tus monitores sintéticos y verificaciones de tiempo de actividad:

  1. En la consola de Google Cloud, ve a la página Explorador de registros:

    Ir al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo sea Logging.

  2. Sigue uno de estos pasos:

    • Para encontrar todos los registros asociados con tus monitores sintéticos o verificaciones de tiempo de actividad, consulta por tipo de recurso. Puedes usar el menú Recurso o ingresar una consulta.

      Para las verificaciones de tiempo de actividad, en el menú Recurso, selecciona URL de verificación de tiempo de actividad o ingresa la siguiente consulta en el editor de consultas y, luego, haz clic en Ejecutar consulta:

      resource.type="uptime_url"
      

      Para los monitores sintéticos, en el menú Recurso, selecciona Revisión de Cloud Run o ingresa la siguiente consulta en el editor de consultas y, luego, haz clic en Ejecutar consulta:

      resource.type="cloud_run_revision"
      
    • Los registros de búsqueda que contienen información sobre la respuesta recibida durante un monitor sintético o la ejecución de una verificación de tiempo de actividad, realizan una de las siguientes acciones:

      • Para realizar una consulta mediante el ID del monitor sintético o la verificación de tiempo de actividad, usa el siguiente formato cuando ingreses el ID en el editor de consultas y, luego, haz clic en Ejecutar consulta.

        labels.check_id="my-check-id"
        
      • Si deseas consultar registros que contengan datos de respuesta para solicitudes emitidas por monitores sintéticos y verificaciones de tiempo de actividad, ingresa la siguiente consulta en el editor de consultas y, luego, haz clic en Ejecutar consulta.

        "UptimeCheckResult"
        

        La consulta anterior coincide con todas las entradas de registro que incluyen la string "UptimeCheckResult".

      Estos registros incluyen lo siguiente:

      • El ID del monitor sintético o la verificación de tiempo de actividad, que se almacena en el campo labels.check_id.

      • En el caso de los monitores sintéticos, el nombre de tu Cloud Function, que se almacena en el campo resource.labels.service_name.

      • Cuando se recopilan datos de seguimiento, es el ID de un seguimiento asociado, que se almacena en el campo trace.

    • Para verificar que el servicio haya recibido solicitudes de los servidores de Google Cloud, copia la siguiente consulta en el editor de consultas y, luego, haz clic en Ejecutar consulta:

      "GoogleStackdriverMonitoring-UptimeChecks"
      

      El campo protoPayload.ip contiene una de las direcciones que usan los servidores de verificación de tiempo de actividad. Para obtener información sobre cómo enumerar todas las direcciones IP, consulta Cómo enumerar direcciones IP.

Notificaciones de solución de problemas

En esta sección, se describen algunos errores que puedes encontrar cuando configuras las políticas de alertas y se proporciona información para resolverlos.

Recibiste una notificación y quieres depurar la falla

  1. Para identificar cuándo comenzó la falla, realiza una de las siguientes acciones:

    • Para las verificaciones de tiempo de actividad, a fin de determinar cuándo se produjo la falla, consulta la página Detalles del tiempo de actividad:

      1. 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 sea Monitoring.

      2. Busca y selecciona la verificación de tiempo de actividad.

        El gráfico Verificaciones aprobadas muestra el historial de las verificaciones. Para identificar cuándo falló la verificación de tiempo de actividad por primera vez, es posible que debas modificar el intervalo de tiempo del gráfico. El selector de intervalo de tiempo se encuentra en la barra de herramientas de la página Detalles de tiempo de actividad.

    • En el caso de los monitores sintéticos, para determinar cuándo se produjo la falla, consulta la página Detalles del tiempo de actividad:

      1. En la consola de Google Cloud, ve a la página  Supervisión sintética:

        Ir a Supervisión sintética

        Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo sea Monitoring.

      2. Busca y selecciona el monitor sintético.
  2. Para obtener información sobre cómo encontrar datos de registro asociados, consulta la sección de esta página titulada Cómo buscar registros.

No se te notificará que falló una verificación de tiempo de actividad.

Configuraste una verificación de tiempo de actividad y estás viendo la página Detalles del tiempo de actividad para esa verificación. Notas que en el gráfico Verificaciones aprobadas se muestra que al menos un verificador falló. Sin embargo, no recibiste ninguna notificación.

De forma predeterminada, la política de alertas está configurada para crear un incidente y enviar una notificación cuando los verificadores de al menos dos regiones no reciben una respuesta a una verificación de tiempo de actividad. Estas fallas deben ocurrir simultáneamente.

Puedes editar la condición de la política de alertas para que se te notifique cuando una sola región no reciba una respuesta. Sin embargo, te recomendamos que utilices la configuración predeterminada, que reduce la cantidad de notificaciones que podrías recibir debido a fallas transitorias.

Para ver o editar una política de alertas, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página  Alertas:

    Ir a las Alertas

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo sea Monitoring.

  2. Haz clic en Ver todas las políticas en el panel Políticas.
  3. Busca la política que deseas ver o editar y, luego, haz clic en su nombre.

    Puedes ver y editar la política en la página Detalles de la política.

Soluciona problemas de verificaciones de tiempo de actividad públicas

En esta sección, se describen algunos errores que puedes encontrar cuando utilizas las verificaciones de tiempo de actividad públicas y se proporciona información para resolverlos.

Tus verificaciones de tiempo de actividad públicas están fallando

Configuras una verificación de tiempo de actividad pública, pero recibes un error cuando realizas el paso de verificación.

Las siguientes son algunas de las posibles causas de una falla en la verificación del tiempo de actividad:

  • Error de conexión: rechazado: si utilizas el tipo de conexión HTTP predeterminado, verifica que tengas instalado un servidor web que responda a las solicitudes HTTP. Puede ocurrir un error de conexión en una instancia nueva si no instalaste un servidor web. Consulta la Guía de inicio rápido para Compute Engine. Si usas un tipo de conexión HTTPS, es posible que debas realizar pasos de configuración adicionales. Para problemas de firewall, consulta Enumera las direcciones IP del servidor de verificación de tiempo de actividad.
  • Nombre o servicio no encontrado: Es posible que el nombre de host sea incorrecto.
  • 403 Prohibido: El servicio muestra un código de error al verificador de tiempo de actividad. Por ejemplo, la configuración predeterminada de Apache Web Server muestra este código en Amazon Linux, pero aparece el código 200 (Success) en algunas otras versiones de Linux. Consulta el instructivo de LAMP para Amazon Linux o la documentación de tu servidor web.
  • 404 No encontrado: La ruta de acceso podría ser incorrecta.
  • 408 Tiempo de espera de solicitud o no hay respuesta: El número de puerto puede ser incorrecto, el servicio puede no estar ejecutándose, el servicio puede ser inaccesible o el tiempo de espera puede ser demasiado bajo. Comprueba que tu firewall permita el tráfico de los servidores de tiempo de actividad; consulta Enumera las direcciones IP del servidor de verificación de tiempo de actividad. El límite de tiempo de espera se especifica como parte de las opciones de Validación de respuesta.

Para ayudarte a solucionar problemas de verificaciones de tiempo de actividad públicas con errores, puedes configurar tus verificaciones de tiempo de actividad para enviar hasta 3 pings de ICMP durante la verificación. Los pings pueden ayudarte a distinguir entre fallas causadas, por ejemplo, por problemas de conectividad de red y por tiempos de espera en tu aplicación. Para obtener más información, consulta Usa pings de ICMP.

Soluciona problemas de verificaciones de tiempo de actividad privadas

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.

La creación de la verificación de tiempo de actividad falla

La configuración de tu proyecto de Google Cloud puede evitar que se modifiquen las funciones asignadas a la cuenta de servicio que usan las verificaciones de tiempo de actividad para administrar las interacciones con el servicio del Directorio de servicios. En esta situación, la creación de la verificación de tiempo de actividad falla.

En esta sección, se describe cómo puedes otorgar las funciones 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 más información sobre cómo otorgar funciones 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 del Directorio de servicios y recursos privados en un solo proyecto de Google Cloud, la solicitud puede completarse con éxito o fallar. El resultado depende de si inhabilitaste las asignaciones automáticas de funciones para las cuentas de servicio en tu proyecto:

  • La primera creación de una verificación de tiempo de actividad se realiza de forma correcta si tu proyecto permite que se otorguen funciones automáticas a las cuentas de servicio. Se crea una cuenta de servicio para ti a la que se le otorgan los roles necesarios.

  • La primera creación de la verificación de tiempo de actividad falla si el proyecto no permite que se otorguen funciones automáticas a 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:

  1. Autoriza la cuenta de servicio.
  2. Espera unos minutos para que se propaguen los permisos.
  3. Vuelve a 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 se orienta a un servicio del Directorio de servicios en un proyecto supervisado o a recursos privados en un proyecto de Google Cloud diferente, la solicitud falla y genera una cuenta de servicio de Monitoring.

La forma de autorizar la cuenta de servicio depende de la cantidad de proyectos de Google Cloud que usas y sus relaciones. Puedes tener hasta cuatro proyectos involucrados:

  • El proyecto en el que definiste la verificación de tiempo de actividad privada.
  • El proyecto supervisado en el que configuraste el servicio del Directorio de servicios.
  • El proyecto en el que configuraste la red de VPC.
  • El proyecto en el que se configuran los recursos de red, como las VM o los balanceadores de cargas. Este proyecto no tiene una 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:

  1. Autoriza la cuenta de servicio.
  2. Espera unos minutos para que se propaguen los permisos.
  3. Vuelve a crear la verificación de tiempo de actividad privada.

Acceso denegado

Tus verificaciones de tiempo de actividad fallan con los resultados de VPC_ACCESS_DENIED. Este resultado significa que algún aspecto de la configuración de 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 permisos o un proyecto supervisado, como se describe en Falla la creación de verificaciones de tiempo de actividad.

Para obtener más información sobre el acceso a redes privadas, consulta Configura el proyecto de red.

Resultados anómalos de verificaciones de tiempo de actividad privadas

Tienes un servicio de Directorio de servicios con varias VM, y la configuración del servicio contiene varios extremos. Cuando cierras una de las VMs, la verificación de tiempo de actividad sigue indicando que se realizó de forma correcta.

Cuando la configuración del 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 de forma correcta aunque una de las VM esté inactiva.

Encabezados predeterminados

Tus verificaciones de tiempo de actividad muestran errores o resultados inesperados. Esto puede ocurrir si anulaste los valores de encabezado predeterminados.

Cuando se envía una solicitud de 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 posteriores al tiempo de actividad

Si intentas anular estos valores, podría suceder lo siguiente:

  • La verificación de tiempo de actividad informa errores
  • Los valores de anulación se descartan y se reemplazan por los valores de la tabla

No hay datos visibles

No verás ningún dato en el panel de verificación de tiempo de actividad cuando la verificación de tiempo de actividad se encuentre en un proyecto de Google Cloud diferente al del servicio del Directorio de servicios.

Asegúrate de que el proyecto de Google Cloud que contiene la verificación de tiempo de actividad supervise el proyecto de Google Cloud que contiene el servicio del 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.

Cómo solucionar problemas relacionados con monitores sintéticos

En esta sección, se proporciona información que puedes usar para solucionar problemas de monitores sintéticos.

Mensaje de error después de habilitar las APIs

Abres el flujo de creación de un monitor sintético y se te solicita que habilites al menos una API. Después de habilitar las APIs, se mostrará un mensaje similar al siguiente:

An error occurred during fetching available regions: Cloud Functions API has
not been used in project PROJECT_ID before or it is disabled.

En el mensaje de error, se recomienda que verifiques que la API esté habilitada y, luego, te aconseja que esperes y vuelvas a intentar la acción.

Para verificar que la API esté habilitada, ve a la página APIs y servicios de tu proyecto:

Ir a APIs y servicios.

Después de verificar que la API está habilitada, puedes continuar con el flujo de creación. La condición se resuelve automáticamente después de que la habilitación de la API se propaga a través del backend.

No se hace un seguimiento de las solicitudes HTTP salientes

Configura el monitor sintético para recopilar datos de seguimiento de las solicitudes HTTP de salida. En los datos de seguimiento, solo se muestra un intervalo, similar a la siguiente captura de pantalla:

Cloud Trace muestra solo un seguimiento.

Para resolver esta situación, asegúrate de que tu cuenta de servicio tenga la función de agente de Cloud Trace (roles/cloudtrace.agent). Una función de editor (roles/editor) también es suficiente.

Para ver los roles otorgados a tu cuenta de servicio, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página IAM:

    Ir a IAM

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es IAM y administrador.

  2. Selecciona Incluir asignaciones de roles proporcionadas por Google.
  3. Si la cuenta de servicio que usa tu monitor sintético no aparece en la lista o si no se le otorgó una función que incluya los permisos en la función de agente de Cloud Trace (roles/cloudtrace.agent), otorga esta función a tu cuenta de servicio.

    Si no conoces el nombre de tu cuenta de servicio, en el menú de navegación, selecciona Cuentas de servicio.

Estado En curso

En la página Monitores sintéticos, se muestra un monitor sintético con el estado In progress. Un estado de In progress significa que el monitor sintético se creó recientemente y que no hay datos para mostrar, o que no se pudo implementar la función.

Para determinar si no se pudo implementar la función, prueba lo siguiente:

  • Asegúrate de que el nombre de tu Cloud Function no contenga un guion bajo. Si hay un guion bajo presente, quítalo y vuelve a implementar la Cloud Function.

  • Abre la página Detalles del monitor sintético.

    Si ves el siguiente mensaje, borra el monitor sintético.

    Cloud Function not found for this Synthetic monitor. Please confirm it exists or delete this monitor.
    

    El mensaje de error indica que se borró la función y, por lo tanto, el monitor sintético no puede ejecutarla.

  • Abre la página de Cloud Functions de la función. Para abrir esta página desde la página Detalles del monitor sintético, haz clic en Código y, luego, en el nombre de la función.

    Si ves un mensaje similar al siguiente, quiere decir que no se pudo implementar la función.

    This function has failed to deploy and will not work correctly. Please edit and redeploy
    

    Para resolver este error, revisa el código de la función y corrige los errores que impiden que la función se compile o se implemente.

Cuando creas un monitor sintético, es posible que la función tarde varios minutos en implementarse y ejecutarse.

Estado de advertencia

En Monitores sintéticos, se muestra un monitor sintético con un estado de Warning. Un estado de Warning significa que los resultados de la ejecución no son coherentes. Esto puede indicar un problema de diseño con tu prueba o que lo que se está probando tiene un comportamiento inconsistente.

Estado de error

En Monitores sintéticos, se muestra un monitor sintético con un estado de Failing. Para obtener más información sobre el motivo de la falla, consulta el historial de ejecuciones más reciente.

  • Si se muestra el mensaje de error Request failed with status code 429, significa que el destino de la solicitud HTTP rechazó el comando. Para resolver este error, debes cambiar el objetivo del monitor sintético.

    El extremo https://www.google.com rechaza las solicitudes que realizan los monitores sintéticos.

  • Si la falla muestra un tiempo de ejecución de 0ms, es posible que la Cloud Function se esté quedando sin memoria. Para resolver este error, edita tu Cloud Function, aumenta la memoria a al menos 2 GiB y establece el campo de CPU en 1.

La eliminación falla de un monitor sintético

Usas la API de Cloud Monitoring para borrar un monitor sintético, pero la llamada a la API falla con una respuesta similar a la siguiente:

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.DebugInfo",
        "detail": "[ORIGINAL ERROR] generic::invalid_argument: Cannot delete check 1228258045726183344. One or more alerting policies is using it.Delete the alerting policy with id projects/myproject/alertPolicies/16594654141392976482 and any other policies using this uptime check and try again."
      }
    ]
  }
}

Para resolver la falla, borra las políticas de alertas que supervisan los resultados del monitor sintético y, luego, bórralo.

No se puede editar la configuración de un verificador de vínculos rotos

Creaste un verificador de vínculos rotos con la consola de Google Cloud y deseas cambiar los elementos HTML que se prueban o modificar el tiempo de espera del URI, los reintentos, la espera del selector y las opciones por vínculo. Sin embargo, cuando editas el verificador de vínculos rotos, Google Cloud Console no muestra los campos de configuración.

Para resolver este error, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página  Supervisión sintética:

    Ir a Supervisión sintética

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo sea Monitoring.

  2. Busca el monitor sintético que quieras editar, haz clic en More options y, luego, selecciona Edit.
  3. Haz clic en Editar función.
  4. Edita el objeto options en el archivo index.js y haz clic en Aplicar función.

    Para obtener información sobre los campos y la sintaxis de este objeto, consulta broken-links-ok/index.js.

  5. Haz clic en Guardar.

La consola de Google Cloud muestra que no se pueden guardar capturas de pantalla.

Creaste un verificador de vínculos roto y lo configuraste para guardar capturas de pantalla. Sin embargo, la consola de Google Cloud muestra uno de los siguientes mensajes de advertencia junto con información más detallada:

  • InvalidStorageLocation
  • StorageValidationError
  • BucketCreationError
  • ScreenshotFileUploadError

Para resolver estos errores, haz lo siguiente:

  • Si ves el mensaje InvalidStorageLocation, verifica la existencia del bucket de Cloud Storage especificado en el campo llamado options.screenshot_options.storage_location.

  • Visualiza los registros relacionados con tu Cloud Function. Para obtener más información, consulta Busca registros.

  • Verifica que la cuenta de servicio que se usa en la Cloud Function correspondiente tenga una función de Identity and Access Management que le permita crear buckets de Cloud Storage, así como acceder a ellos y escribirlos.