Soluciona problemas de transferencia en entornos locales

En este documento, se describe cómo solucionar y resolver problemas de transferencia y de agentes, y dónde encontrar los registros de agente para ayudarte a solucionar problemas.

Soluciona problemas de errores de transferencia en Cloud Console

En la siguiente tabla, se describen los mensajes de error de las transferencias y cómo resolverlos:

Mensaje de error Tipo de error Qué significa el error Cómo resolver el error
Modificado durante la transferencia FILE_MODIFIED_FAILURE El archivo de origen se modificó durante la carga cada vez que el servicio de transferencia de datos locales intentó subir el archivo de origen. Evita las escrituras en el archivo especificado durante la próxima operación del servicio de transferencia de datos locales.
No se pudo transferir PRECONDITION_FAILURE El objeto de Cloud Storage asociado con el archivo de origen se modificó cada vez que el servicio de transferencia para datos locales intentó subir ese archivo. Evita que varios trabajos de transferencia escriban el mismo archivo en el mismo depósito de Cloud Storage mediante el uso de prefijos únicos de objetos de Cloud Storage cuando crees trabajos de transferencia.
No se encontró el directorio de origen SOURCE_DIR_NOT_FOUND La ruta de acceso de origen especificada es incorrecta, o la ruta es correcta, pero no todos los agentes tienen acceso a la ruta. Verifica la configuración del trabajo de transferencia y verifica lo siguiente:
No se encontró el archivo FILE_NOT_FOUND_FAILURE Se encontró el archivo fuente, pero se borró antes de transferirlo a Cloud Storage. Si el archivo se borró por error, restablécelo para que el próximo trabajo de transferencia pueda subirlo.
No se encontró el depósito de destino BUCKET_NOT_FOUND El depósito de destino no existe en Cloud Storage. Verifica que la ortografía del depósito de destino sea correcta y que este exista.
No se pudo encontrar un objeto de metadatos interno METADATA_OBJECT_NOT_FOUND_FAILURE El servicio de transferencia para datos locales almacena metadatos en el depósito de destino con el prefijo storage-transfer. Si se borran los archivos de metadatos antes de que se completen las operaciones de transferencia correspondientes, se muestra este error. Evita borrar objetos con el prefijo storage-transfer/ en el depósito de destino hasta que se completen todos los trabajos de transferencia.
Error por un nombre de archivo no válido INVALID_FILE_NAME La ruta de acceso de un archivo de origen no es válida. Verifica y repara la ruta del archivo especificado. Verifica que la ruta use caracteres compatibles con Cloud Storage.
No se pudo completar la operación debido a los permisos PERMISSION_FAILURE Un agente no tenía los permisos suficientes para realizar una operación. Hay dos causas posibles para este error:
  • Un agente no tenía los permisos suficientes de Google Cloud.
  • Un agente no pudo leer un archivo o un directorio debido a permisos insuficientes en el sistema de archivos de origen.
Verifica lo siguiente:
  • Asegúrate de que los agentes tengan las siguientes funciones de IAM:
    • roles/pubsub.editor
    • roles/storage.admin para todos los depósitos de destino
    Cualquiera de estas funciones se puede otorgar a una cuenta de servicio que usan los agentes, o un usuario con estas funciones puede usar sus credenciales predeterminadas cuando instala agentes.
  • Asegúrate de que todos los agentes puedan leer todas las rutas en el sistema de archivos de origen.
El servicio carecía de los permisos suficientes SERVICE_PERMISSION_FAILURE El servicio de transferencia de datos locales no tenía los permisos suficientes para realizar una operación. El servicio de transferencia de datos locales usa la cuenta de servicio cloud-ingest-dcp@cloud-ingest.iam.gserviceaccount.com para acceder a los recursos. Verifica que la cuenta de servicio tenga las siguientes funciones:
  • roles/pubsub.editor para el proyecto
  • roles/storage.admin para todos los depósitos de destino
El agente no es compatible AGENT_UNSUPPORTED_VERSION La versión del agente ya no es compatible con el servicio de transferencia para datos locales. Este es un error temporal, relacionado con una actualización incorrecta del agente. Si ocurre, haz lo siguiente:
  1. Detén todos los agentes.
  2. Extrae la última imagen de Docker mediante la ejecución de sudo docker pull gcr.io/cloud-ingest/tsop-agent.
  3. Envía el comando run de Docker para iniciar todos los contenedores de agentes.
Si el problema persiste, comunícate con tu equipo de asistencia.
Falló debido a una falla de coincidencia de hash HASH_MISMATCH_FAILURE Cada vez que el servicio de transferencia para datos locales intentó subir este archivo, los bytes subidos se dañaron. Esto provocó que el hash del archivo local no coincidiera con el hash del objeto de Cloud Storage resultante. Este error puede deberse a una serie de problemas. Si ves un pequeño porcentaje de fallas de coincidencia de hash (menos del 1%) en una transferencia grande, vuelve a intentar los archivos fallidos. Si ves un gran porcentaje de fallas de coincidencia de hash (del 1% o más), recomendamos investigar posibles fallas de memoria, CPU u otras fallas de hardware en la máquina del agente.
Falló debido a un modo de archivo no compatible UNSUPPORTED_FILE_MODE El servicio de transferencia para datos locales encontró un archivo con un modo no compatible, como un dispositivo, un socket, una canalización con nombre o un archivo irregular. Quita estos tipos de archivos especiales del directorio de origen.
Falló debido a un error en el sistema de archivos FILESYSTEM_ERROR Un agente encontró un error de sistema de archivos o de sistema operativo cuando realizó una operación del sistema de archivos, como lectura, búsqueda o estadística. Lee la descripción del error para comprender qué operación del sistema de archivos falló. Asegúrate de que el agente local pueda acceder al sistema de archivos y que el sistema de archivos responda a las operaciones de archivo básicas.
Falló debido a una falla desconocida UNKNOWN_FAILURE Se produjo un error inesperado. Lee la descripción de la falla. Si la descripción de la falla no contiene información suficiente para resolver el problema, comunícate con el equipo de asistencia.
Falló debido a que se recibió una especificación que no es válida INVALID_SPEC El agente recibió una especificación interna que está dañada. Verifica que no se hayan dañado los datos en los hosts de los agentes y comunícate con el equipo de asistencia si no encuentras daños.

Visualiza registros del agente

Los registros del agente contienen información relevante para los procesos del agente y pueden ayudarte a solucionar problemas de conexión del agente. Si tus agentes figuran como conectados en Google Cloud Console, y experimentas fallas de transferencia, consulta Visualiza errores para ver una muestra de errores de transferencia. Para ver los registros que contienen cada archivo que el Servicio de transferencia de almacenamiento consideró durante una transferencia, consulta Visualiza registros de transferencia.

De forma predeterminada, los registros del agente se almacenan en /tmp. Puedes cambiar la ubicación mediante la opción de línea de comandos de --log-dir=logs-directory.

Los registros se nombran de la siguiente manera:

agent.hostname.username.log.log-level.timestamp

En el ejemplo anterior, se ilustra lo siguiente:

  • hostname: El nombre de host en el que se ejecuta el agente.
  • username: El nombre de usuario que ejecuta el agente.
  • log-level es uno de los siguientes:
    • INFO: Mensajes informativos
    • ERROR: Errores detectados durante la transferencia, pero que no impiden que el trabajo de transferencia continúe
    • FATAL: Errores detectados que impiden que el trabajo de transferencia continúe
  • timestamp: Una marca de tiempo en formato YYYYMMDD-hhmmss.thread-id

El directorio de registros contiene symlinks a los registros más recientes para cada uno de los niveles de prioridad:

  • agent.ERROR
  • agent.FATAL
  • agent.INFO

Soluciona problemas de errores de agentes

En las siguientes secciones, se describe cómo solucionar y resolver problemas de transferencia para errores de agentes locales:

Los agentes no están conectados

Si los agentes de la transferencia locales no se muestran como conectados en Google Cloud Console, haz lo siguiente:

  1. Verifica que los agentes puedan conectarse a las API de Cloud Storage y las API de Pub/Sub, y que no haya problemas de red ni de autenticación:

    1. Ejecuta el siguiente comando desde la misma máquina que se usó con el agente de transferencia para probar la conexión del agente a las API de Cloud Storage:

      gsutil cp test.txt gs://my-bucket

      Reemplaza lo siguiente:

      my-bucket por el nombre del depósito de Cloud Storage.

    2. Ejecuta el siguiente comando desde la misma máquina que el agente de transferencia para probar la conexión del agente a las API de Pub/Sub:

      gcloud pubsub topics list --project=project-id

      Reemplaza lo siguiente:

      project-id por el nombre del proyecto de Google Cloud.

  2. Si tu proyecto usa los Controles del servicio de VPC, consulta los registros del agente para ver si hay errores. Si los Controles del servicio de VPC están mal configurados, los registros del agente INFO contendrán el siguiente error:

    Request is prohibited by organization's policy. vpcServiceControlsUniqueIdentifier: id

    En este resultado, se ilustra lo siguiente:

Los agentes están conectados, pero los trabajos fallan

Si los agentes se muestran como conectados, pero los trabajos de transferencia fallan, verifica los detalles de error de los trabajos fallidos.