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:

Cómo buscar registros

En esta sección, se proporciona información sobre cómo encontrar registros para tus supervisores 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 es Logging.

  2. Sigue uno de estos pasos:

    • Para encontrar todos los registros asociados con tus supervisores sintéticos o verificaciones de tiempo de actividad, realiza consultas 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 supervisores 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 alguna de las siguientes acciones:

      • Para realizar una consulta con 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"
        
      • Para consultar los registros que contienen datos de respuesta a las solicitudes que emiten los supervisores sintéticos y las 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 de la verificación de tiempo de actividad, que se almacena en el campo labels.check_id.

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

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

    • Para verificar que tu servicio recibió 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 Enumera las direcciones IP.

Cómo solucionar problemas con las notificaciones

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

Recibiste una notificación y quieres depurar el error

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

    • Para las verificaciones de tiempo de actividad, consulta la página Detalles del tiempo de actividad para determinar cuándo se produjo el error:

      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 es Monitoring.

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

        En el gráfico Verificaciones aprobadas (Passed checks), se 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 del tiempo de actividad.

    • En el caso de los supervisores sintéticos, para determinar cuándo se produjo el error, consulta la página Detalles de 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 es 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 Busca registros.

No se te notifica que falló una verificación de tiempo de actividad

Configuraste una verificación de tiempo de actividad y visualizas la página Detalles de tiempo de actividad de esa verificación. Notas que en el gráfico Verificaciones aprobadas se muestra que falló al menos un verificador. 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 de forma simultánea.

Puedes editar la condición de la política de alertas para recibir notificaciones cuando una sola región no reciba una respuesta. Sin embargo, te recomendamos que uses la configuración predeterminada, que reduce la cantidad de notificaciones que puedes 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 es 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 el nombre de la política.

    Puedes ver y editar la política desde 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 usas verificaciones de tiempo de actividad públicas y se proporciona información para resolverlos.

Tus verificaciones de tiempo de actividad públicas fallan

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. Un error de conexión puede ocurrir en una instancia nueva si no has instalado 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 de los servidores de verificación de tiempo de actividad.
  • Nombre o servicio no encontrado: El nombre de host puede ser 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. Verifica que tu firewall permita el tráfico de los servidores de tiempo de actividad. Consulta Enumera las direcciones IP de los servidores 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 que envíen 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 Cómo usar 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.

Falla la creación de las verificaciones de tiempo de actividad

Es posible que la configuración del proyecto de Google Cloud impida la modificación de 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 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, esta emite los comandos para otorgar las funciones del Directorio de servicios a la cuenta de servicio.

Para obtener 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 creas 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 correctamente o fallar. El resultado depende de si inhabilitaste las asignaciones de funciones automáticas para cuentas de servicio en tu proyecto:

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

  • La creación de la primera verificación de tiempo de actividad falla si tu proyecto no permite asignaciones de funciones automáticas para cuentas de servicio. Se crea una cuenta de servicio, pero no se otorgan roles.

Si la creación de la verificación de tiempo de actividad falla, 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 diferentes proyectos de Google Cloud, la solicitud falla y da como resultado la creación de una cuenta de servicio de Monitoring.

La forma en que autorizas 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 VM o balanceadores de cargas. Este proyecto no tiene función en la autorización de cuenta de servicio que se analiza aquí.

Cuando falle 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 y arrojan VPC_ACCESS_DENIED resultados. 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 las verificaciones de tiempo de actividad privadas

Tienes un servicio del Directorio de servicios con varias VMs y la configuración del servicio contiene varios extremos. Cuando apagas una de las VMs, tu verificación de tiempo de actividad sigue indicando que la operación fue exitosa.

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 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 posteriores al tiempo de actividad

Si intentas anular estos valores, puede ocurrir 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 ves ningún dato en el panel de verificación de tiempo de actividad cuando la verificación de tiempo de actividad se encuentra 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.

Soluciona problemas de monitores sintéticos

En esta sección, se proporciona información que puedes usar para solucionar problemas de tus 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 muestra 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.

El mensaje de error 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 que hayas verificado 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 de salida

Configura el monitor sintético para que recopile datos de seguimiento de las solicitudes HTTP de salida. Los datos de seguimiento solo muestran un intervalo, similar a la siguiente captura de pantalla:

Se muestra un solo seguimiento en Cloud Trace.

Para resolver esta situación, asegúrate de que a tu cuenta de servicio se le haya otorgado 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 el 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), otórgale 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 Supervisión sintética, se muestra una lista de monitores sintéticos con el estado In progress. El estado In progress significa que el monitor sintético se creó recientemente y no hay datos para mostrar, o que la función no se pudo implementar.

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

  • Asegúrate de que el nombre de tu Cloud Function no contenga un guion bajo. Si hay un guion bajo, 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 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, la función no se pudo implementar.

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

    Para resolver esta falla, 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

La función Supervisión sintética muestra una lista de monitores sintéticos con el estado Warning. Un estado de Warning significa que los resultados de la ejecución son incoherentes. Esto puede indicar un problema de diseño con tu prueba o que lo que se está probando tiene un comportamiento incoherente.

Estado de error

La función Supervisión sintética muestra una lista de monitores sintéticos con el estado 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, el destino de la solicitud HTTP rechazó el comando. Para solucionar este error, debes cambiar el destino del monitor sintético.

    El extremo https://www.google.com rechaza las solicitudes que realizan los supervisores 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 solucionar este error, edita tu Cloud Function, aumenta la memoria a, al menos, 2 GiB y establece el campo de CPU en 1.

Borrar falla en un monitor sintético

Usa 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, borra el monitor sintético.

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 si deseas 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, la consola de Google Cloud no muestra los campos de configuración.

Para solucionar 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 es Monitoring.

  2. Ubica el monitor sintético que deseas editar, haz clic en Más opciones y, luego, selecciona Editar.
  3. Haz clic en Editar función.
  4. Edita el objeto options en el archivo index.js y, luego, 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.

Pantallas de la consola de Google Cloud que fallan cuando se guardan las capturas de pantalla

Creaste un verificador de vínculos rotos 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 solucionar estos errores, intenta 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 y escribir buckets de Cloud Storage, así como acceder a ellos.