Implementar el conector de sistemas de archivos de Microsoft Windows

Esta guía va dirigida a los administradores de conectores de sistemas de archivos de Google Cloud Search, es decir, a cualquier persona responsable de descargar, configurar, ejecutar y supervisar el conector. En ella se proporcionan instrucciones para realizar tareas clave relacionadas con la implementación del conector:

  • Descargar el software del conector de sistemas de archivos de Google Cloud Search.
  • Configurar el conector para que se pueda usar con una fuente de datos de sistema de archivos concreta.
  • Implementar y ejecutar el conector.

Para comprender los conceptos expuestos en este documento, deberás conocer los aspectos básicos de G Suite y del sistema de archivos de Microsoft Windows.

Descripción general del conector de sistemas de archivos de Google Cloud Search

Este conector permite que Google Cloud Search pueda localizar contenido de sistemas de archivos compartidos de Microsoft Windows e indexarlo en Cloud Search a través de su API Indexing. Una vez que se ha indexado correctamente, el contenido del sistema de archivos compartidos de Microsoft Windows está disponible para búsquedas mediante los clientes de Cloud Search o la API Query de este servicio.

Una sola instancia del conector puede funcionar con varios sistemas de archivos compartidos de Microsoft Windows. Aunque el conector admite los enlaces y los espacios de nombres de un sistema de archivos distribuido (DFS), solo permite enlaces DFS en un espacio de nombres DFS, no carpetas normales.

Archivos de propiedades de configuración

Para que el conector pueda localizar contenido en un sistema de archivos y subirlo a la API Indexing, el administrador del conector debe crear un archivo de configuración en el que se proporcionen los ajustes al conector de sistemas de archivos de Windows, tal como se detalla en estos pasos.

Además de los parámetros del conector de sistemas de archivos descritos en este documento, existen otros parámetros de configuración que utilizan todos los conectores de Cloud Search. Para obtener información detallada al respecto, consulta el capítulo sobre parámetros de configuración proporcionados por Google.

Permisos de la cuenta de Microsoft Windows necesarios para utilizar el conector

La cuenta de Microsoft Windows que se utiliza con el conector debe tener permisos suficientes para realizar las siguientes acciones:

  • Mostrar el contenido de las carpetas.
  • Leer el contenido de los documentos.
  • Leer atributos de archivos y carpetas.
  • Leer permisos en archivos y carpetas mediante listas de control de acceso (LCA).
  • Escribir permisos de atributos básicos.

Después de leer el contenido de los documentos durante un rastreo, el conector intenta restaurar la fecha en que se ha accedido a ellos por última vez. Para que dicha fecha se pueda restaurar al valor original que tenía antes de que se leyera el contenido, la cuenta de usuario asociada con el conector debe tener permiso de escritura en los documentos. Si la cuenta tiene permiso de solo lectura y no de escritura, la fecha de último acceso a los documentos cambiará cuando el conector lea el contenido de los documentos que rastree.

Las cuentas de Windows que pertenezcan a uno de los siguientes grupos tendrán permisos suficientes para utilizar el conector:

  • Administradores
  • Usuarios avanzados
  • Operadores de impresión
  • Operadores de servidores

Actualizaciones automáticas continuas

De manera predeterminada, el conector empieza a supervisar las rutas de inicio (valores de fs.src) que son sistemas de archivos compartidos o enlaces DFS al inicio. Si una ruta de inicio es un espacio de nombres DFS, el conector iniciará una operación de supervisión por cada enlace que haya dentro del espacio de nombres. Si las operaciones de supervisión no comienzan al inicio, se ejecutarán cuando se devuelva al conector una ruta de inicio o un enlace DFS que ya se encuentre en el índice de Cloud Search como resultado de una solicitud de sondeo. Si quieres activar o desactivar esta función, asigna el valor deseado en la opción de configuración del conector fs.monitorForUpdates, tal como se describe en el apartado sobre variables de connector-config.properties.

Control de acceso del sistema DFS

El sistema DFS usa el control de acceso cuando se desplaza por sus enlaces, y generalmente cada enlace DFS tiene su propia LCA. Uno de los mecanismos que utiliza es la enumeración basada en el acceso (ABE). Cuando ABE está implementado, es posible que los usuarios solamente vean algunos de los enlaces DFS (y posiblemente solo uno si ABE se usa para aislar directorios de inicio alojados). Al barrer el sistema DFS y rastrear los enlaces DFS, el conector suministra la LCA del enlace DFS junto con la del sistema de archivos compartidos de destino como recurso con nombre. En este caso, la LCA del sistema de archivos compartidos se hereda de la LCA del DFS.

Sistemas operativos compatibles

El conector de sistemas de archivos de Cloud Search se debe instalar en uno de los siguientes sistemas operativos Windows compatibles:

  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2

El conector de sistemas de archivos de Cloud Search no se puede ejecutar en Linux.

Protocolos de sistemas de archivos compatibles

En la siguiente tabla se detallan los protocolos de sistemas de archivos que se usan para comunicarse con los sistemas de archivos compartidos y se especifica si son compatibles con el conector.

Protocolo de sistema de archivos Sistema operativo donde se comunica con los sistemas de archivos compartidos ¿Es compatible?
Bloque de mensajes del servidor (SMB) - SMB1 Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
Bloque de mensajes del servidor (SMB) - SMB2 Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
Sistema de archivos distribuido (DFS) Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
Sistema de archivos de Windows local Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
No
Sistema de archivos de red (NFS) 2.0 de Sun No
Sistema de archivos de red (NFS) 3.0 de Sun No
Sistema de archivos de Linux local No

Limitaciones conocidas

  • Sistema de archivos: esta versión del conector de sistemas de archivos no admite las unidades asignadas ni locales.
  • Sistema de archivos distribuido: una unidad asignada a un DFS UNC no funciona correctamente. Algunas LCA no se leerán bien.

Requisitos

Antes de implementar el conector de sistemas de archivos de Cloud Search, asegúrate de que tu entorno dispone de lo siguiente:

  • Windows Server 2016.
  • Java JRE 1.8 instalado en el ordenador donde se utilice el conector.
  • La información de G Suite necesaria para establecer las relaciones entre Google Cloud Search y la fuente de datos:

    Por lo general, el administrador de G Suite del dominio podrá proporcionarte estas credenciales.

  • La cuenta de Windows debe tener los permisos suficientes, tal como se describe en la siguiente sección.

  • Cuando se comparte una carpeta desde una plataforma Windows, los permisos se pueden conceder en la LCA del sistema de archivos compartidos y en la LCA NTFS de la carpeta. Ambas LCA necesitan conceder el permiso de acceso adecuado al conector, que también lee las dos listas. Para evitar que se intente leer la LCA del sistema de archivos compartidos, el administrador puede asignar el valor "true" a la opción de configuración fs.skipShareAccessControl.

Pasos de la implementación

Para implementar el conector de sistemas de archivos de Google Cloud Search, sigue estos pasos:

  1. Instalar el conector de sistemas de archivos de Cloud Search
  2. Especificar la configuración del conector de sistemas de archivos
  3. Configurar el acceso a la fuente de datos de Google Cloud Search
  4. Configurar el acceso a los sistemas de archivos
  5. Configurar el carácter separador de rutas
  6. Configurar controles de comportamiento del conector
  7. Configurar controles de último acceso
  8. Restringir el acceso a carpetas y documentos rastreados
  9. Saltarse el control de acceso del sistema de archivos compartidos
  10. Activar el registro
  11. Configurar mime-type.properties

1. Instalar el conector de sistemas de archivos de Cloud Search

Google proporciona el software de instalación del conector en este archivo:

google-cloudsearch-filesystem-connector-v1-0.0.2.zip

Descarga y descomprime el conector de sistemas de archivos de Windows, y guárdalo en un directorio de trabajo local donde se ejecute el conector. Este directorio también puede contener todos los archivos relevantes necesarios para la ejecución, incluidos el archivo de configuración y el archivo de clave de la cuenta de servicio.

2. Especificar la configuración del conector de sistemas de archivos

Para que el conector pueda acceder correctamente a un sistema de archivos e indexar el contenido pertinente, primero es necesario crear su archivo de configuración. Los parámetros que definas en este archivo te permitirán controlar el comportamiento y los atributos del conector de sistemas de archivos, en concreto, estos aspectos:

Para crear un archivo de configuración:

  1. Abre el editor de texto que prefieras y dale un nombre al archivo de configuración. Añade pares clave=valor al contenido del archivo, tal como se describe en las secciones siguientes.
  2. Dale un nombre al archivo de configuración y guárdalo. Te recomendamos asignarle el nombre connector-config.properties. De este modo, no serán necesarios más parámetros de la línea de comandos para ejecutar el conector.

3. Configurar el acceso a la fuente de datos de Google Cloud Search

Los primeros parámetros que se deben especificar en cualquier archivo de configuración son los necesarios para acceder a la fuente de datos de Cloud Search, tal como se muestra en la siguiente tabla. Normalmente, necesitarás el ID de la fuente de datos, el ID de la cuenta de servicio y la ruta al archivo de clave privada de esta cuenta para poder configurar el acceso del conector a Cloud Search. En el artículo Añadir fuentes de datos en las que se buscará se describen los pasos necesarios para configurar una fuente de datos.

Ajuste Parámetro
ID de fuente de datos api.sourceId=1234567890abcdef
Obligatorio. El ID de la fuente de Google Cloud Search configurado por el administrador de G Suite.
Ruta al archivo de clave privada de la cuenta de servicio api.serviceAccountPrivateKeyFile=./PrivateKey.json
Obligatorio. El archivo de clave de la cuenta de servicio de Google Cloud Search que se utilizará para acceder al conector de sistemas de archivos de Google Cloud Search.
ID de fuente de identidad api.identitySourceId=x0987654321
Obligatorio. El ID de la fuente de identidad de Cloud Search configurado por el administrador de G Suite para sincronizar identidades de Active Directory mediante Google Cloud Directory Sync (GCDS).

4. Configurar el acceso a los sistemas de archivos

Para que el conector pueda acceder a un sistema de archivos y extraer datos para indexarlos, primero debes configurar el acceso al sistema de archivos de origen. Utiliza los parámetros indicados a continuación para añadir información de acceso al archivo de configuración.

Ajuste Parámetro
Sistemas de archivos de origen fs.src=filename1,filename2
Si quieres definir varios sistemas de archivos de origen para la propiedad fs.src, proporciona una lista de fuentes UNC separadas por el delimitador configurado por fs.src.separator. Se pueden usar caracteres UNICODE y distintos de ASCII en fs.src. Para incluir dichos caracteres, es necesario guardar el archivo de configuración del conector en codificación UTF-8.

5. Configurar el carácter separador de rutas

Utiliza el parámetro siguiente para añadir información del separador al archivo de configuración.

Ajuste Parámetro
Carácter separador de rutas fs.src.separator=,
El separador predeterminado es ";" y se define de forma similar a como se haría con la variable de entorno PATH o CLASS_PATH. Sin embargo, si las rutas de origen especificadas contienen puntos y comas, puedes configurar un delimitador distinto que no entre en conflicto con esos caracteres y que no se haya reservado para la sintaxis del archivo de propiedades.

Si se asigna una cadena vacía a fs.src.separator, el valor de fs.src se considerará un nombre de ruta individual.

6. Configurar controles de comportamiento del conector

Utiliza el parámetro siguiente para añadir información relativa al comportamiento del conector al archivo de configuración.

Ajuste Parámetro
Incluir cuentas en LCAs fs.supportedAccounts=BUILTIN\\Administrators,\\Everyone,BUILTIN\\Users

Las cuentas que se encuentren en supportedAccounts se incluirán en LCAs tanto si están integradas como si no.

El valor predeterminado es BUILTIN\\Administrators,Everyone,BUILTIN\\Users, \ BUILTIN\\Guest,NT AUTHORITY\\INTERACTIVE, \ NT AUTHORITY\\Authenticated Users.

Excluir cuentas integradas de LCAs fs.builtinGroupPrefix=BUILTIN\\

Las cuentas integradas se excluyen de las LCA que se aplican en la API Indexing. Una cuenta que empieza por este prefijo se considera una cuenta integrada y se excluye de las LCA.

El valor predeterminado es BUILTIN\\.

Permitir o impedir la indexación de carpetas y archivos ocultos fs.crawlHiddenFiles=true

La definición de las carpetas y los archivos que están ocultos depende de la plataforma. En los sistemas de archivos Windows, una carpeta o archivo se considera oculto cuando se ha definido el atributo "hidden" de DOS. De forma predeterminada, no se indexan los archivos ocultos ni el contenido de las carpetas ocultas. Si asignas a fs.crawlHiddenFiles el valor true, el conector podrá rastrear las carpetas y archivos ocultos.

El valor predeterminado es false.

Permitir o impedir la indexación de listas de carpetas rastreadas y enumeraciones de espacios de nombres DFS fs.indexFolders=false

Cuando se rastrea una carpeta, el conector crea un objeto CONTAINER_ITEM. Sin embargo, cuando el valor asignado a indexFolders es "false", el conector crea un objeto VIRTUAL_CONTAINER_ITEM en lugar del anterior.

El valor predeterminado es true.

Activar o desactivar la supervisión de cambios en el sistema de archivos fs.monitorForUpdates=false

Cuando la supervisión está desactivada, las actualizaciones o cambios que se hacen en el contenido o los controles de acceso no se envían inmediatamente a la API Indexing con una solicitud de nuevo rastreo. Si se desactiva la supervisión, se reducirá de manera significativa el uso de recursos del conector.

El valor predeterminado es true.

Definir el tamaño máximo de la caché de directorios fs.directoryCacheSize=25000

Define el tamaño máximo de la caché de directorios encontrados. Esta caché se usa actualmente para identificar qué carpetas están ocultas o visibles y así evitar la indexación de archivos y carpetas con antecedentes ocultos. Una carpeta se considera oculta cuando se ha definido el atributo "hidden" de DOS.

El tamaño máximo predeterminado de la caché es de 50.000 entradas, que normalmente consumirían de 10 a 15 megabytes de memoria RAM.

7. Configurar controles de último acceso

Utiliza el parámetro siguiente para añadir al archivo de configuración información sobre el último acceso a las carpetas y archivos rastreados.

Ajuste Parámetro
Conservar la marca de tiempo de último acceso fs.preserveLastAccessTime=NEVER

Esta propiedad de configuración controla en qué nivel se aplica la conservación de la marca de tiempo de último acceso de las carpetas y archivos rastreados. Si no se conserva la hora de último acceso, los sistemas de archivo y copia de seguridad pueden creer erróneamente que un usuario ha accedido recientemente a un archivo o carpeta, lo que impedirá que los elementos menos utilizados se trasladen a un almacenamiento secundario.

Si el conector no puede restaurar la hora de último acceso del archivo, es probable que el usuario que hace el barrido no tenga privilegios suficientes para escribir sus atributos. Como medida de precaución, el conector rechaza las solicitudes de rastreo del sistema de archivos para evitar alterar las marcas de tiempo de último acceso en lo que podrían ser miles de archivos.

La propiedad fs.preserveLastAccessTime puede tener tres valores:

  • ALWAYS: el conector intentará conservar la hora de último acceso de todos los archivos y carpetas rastreados. En cuanto no sea posible conservarla, el conector se verá forzado a rechazar todas las posteriores solicitudes de rastreo del sistema de archivos para evitar alterar las marcas de tiempo de último acceso en posiblemente miles de archivos.
  • IF_ALLOWED: el conector intentará conservar la hora de último acceso de todos los archivos y carpetas rastreados, aunque algunas marcas de tiempo quizás no se conserven.
  • NEVER: el conector no hará ningún intento de conservar la hora de último acceso de los archivos y carpetas rastreados. El nivel predeterminado de aplicación de la conservación de las marcas de tiempo de último acceso es ALWAYS.
Desactivar el rastreo de archivos cuya una hora de último acceso es anterior a una fecha especificada fs.lastAccessedDate=2010-01-01

La fecha de corte se define en el formato de fecha ISO8601 AAAA-MM-DD.

Si se asigna a fs.lastAccessedDate un valor 2010-01-01, solo se rastreará el contenido al que se haya accedido desde principios del 2010. Solo se puede especificar uno, fs.lastAccessedDate o fs.lastAccessedDays. El valor predeterminado es disabled.

Desactivar el rastreo de archivos a los que no se ha accedido en una cantidad especificada de días fs.lastAccessedDays=365

A diferencia de la fecha de corte absoluta que se utiliza con fs.lastAccessedDate, esta propiedad se puede usar para poner una fecha de vencimiento al contenido indexado previamente si no se ha accedido a él durante un tiempo. El intervalo de fechas de vencimiento se especifica como entero positivo expresado en número de días. Si se asigna a fs.lastAccessedDays un valor 365, solamente se rastreará el contenido al que se haya accedido en el último año. Solo se puede especificar uno, fs.lastAccessedDate o fs.lastAccessedDays. El valor predeterminado es disabled.

8. Restringir el acceso a carpetas y documentos rastreados

Utiliza los parámetros siguientes para añadir al archivo de configuración información que permita restringir el acceso a las carpetas y archivos rastreados.

Ajuste Parámetro
Desactivar el rastreo de archivos cuya una hora de último acceso es anterior a una fecha especificada fs.lastModifiedDate=2010-01-01

La fecha de corte se define en el formato de fecha ISO 8601 AAAA-MM-DD.

Si se asigna a fs.lastModifiedDate un valor 2010-01-01, únicamente se rastreará el contenido que se haya modificado desde principios del 2010. Solo se puede especificar uno, fs.lastModifiedDate o fs.lastModifiedDays. El valor predeterminado es disabled.

Desactivar el rastreo de archivos que no se han modificado en una cantidad especificada de días fs.lastModifiedDays=365

A diferencia de la fecha de corte absoluta que se utiliza con fs.lastModifiedDate, esta propiedad se puede usar para poner una fecha de vencimiento al contenido indexado previamente si no se ha modificado durante un tiempo. El intervalo de fechas de vencimiento se especifica como entero positivo expresado en número de días. Si se asigna a fs.lastModifiedDays un valor 365, solamente se rastreará el contenido que se haya modificado en el último año. Solo se puede especificar uno, fs.lastModifiedDate o fs.lastModifiedDays. El valor predeterminado es disabled.

9. Saltarse el control de acceso del sistema de archivos compartidos

El conector intenta conservar la integridad del control de acceso al enviar las LCA a la API Indexing. En general, solo los usuarios que tienen acceso a un sistema de archivos compartidos pueden acceder a los archivos que contiene, por lo que el conector incluye la LCA del sistema de archivos compartidos entre las listas enviadas a la API Indexing. Sin embargo, en algunas configuraciones, es posible que el conector no tenga permisos suficientes para leer la LCA del sistema de archivos compartidos. En estos casos, la LCA rota del sistema de archivos compartidos impedirá que todos los archivos que contiene aparezcan en los resultados de búsqueda. Si el conector no puede leer la LCA del sistema de archivos compartidos, el administrador puede hacer que se omita el intento de lectura de dicha lista asignando un valor "true" a la opción de configuración fs.skipShareAccessControl. Con ello, se envía una LCA de sistema de archivos compartidos completamente permisiva a la API Indexing, en lugar de la LCA real.

Utiliza el parámetro siguiente para añadir al archivo de configuración información que permita saltarse el control de acceso del sistema de archivos compartidos.

Ajuste Parámetro
Saltarse el control de acceso del sistema de archivos compartidos fs.skipShareAccessControl=true

Esta propiedad de configuración booleana activa o desactiva el envío de la LCA del sistema de archivos compartidos a la API Indexing.

El valor predeterminado es false (las LCA del sistema de archivos compartidos se envían a la API Indexing).

Ejemplo de archivo de configuración

En el siguiente archivo de configuración de ejemplo se muestran los pares clave=valor de los parámetros que definen el comportamiento de un conector de ejemplo.

api.serviceAccountPrivateKeyFile=/path/to/file.json
api.sourceId=0123456789abcde
api.identitySourceId=a1b1c1234567
traverse.abortAfterExceptions=500
fs.src=\\\\host\\share;\\\\dfshost\\dfsnamespace;\\\\dfshost\\dfsnamespace\\link
fs.monitorForUpdates = true
fs.preserveLastAccessTime = IF_ALLOWED

10. Activar el registro

Crea una carpeta llamada logs en el mismo directorio que contiene el archivo binario del conector. Crea un archivo ASCII o UTF-8 llamado logging.properties en el mismo directorio y añade el siguiente contenido:

handlers = java.util.logging.ConsoleHandler,java.util.logging.FileHandler
# Default log level
.level = WARNING
com.google.enterprise.cloudsearch.level = INFO
com.google.enterprise.cloudsearch.fs.level = INFO

# uncomment line below to increase logging level to enable API trace
#com.google.api.client.http.level = FINE
java.util.logging.ConsoleHandler.level = INFO
java.util.logging.FileHandler.pattern=logs/connector-fs.%g.log
java.util.logging.FileHandler.limit=10485760
java.util.logging.FileHandler.count=10
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter

11. Configurar mime-type.properties

Si quieres, puedes crear un archivo ASCII o UTF-8 llamado mime-type.properties en el directorio del conector. En este archivo, especifica los tipos de extensiones multipropósito de correo de Internet (MIME) de cada tipo de archivo. Si no especificas los tipos MIME, el conector intentará detectar el de cada archivo. El conector se basa en la detección de tipos MIME proporcionada por el JDK. En Microsoft Windows, el JDK se basa en el registro de Windows para determinar los tipos MIME de los archivos. Cuando falta una entrada del registro, se puede generar un tipo MIME nulo en ciertos archivos.

Las aplicaciones estándar tienen sus tipos MIME estándar. La finalidad de mime-type.properties es solo sobrescribir cualquier vinculación que se quiera cambiar. El archivo mime-type.properties debería estar en el mismo directorio de nivel superior que connector-config.properties y logging.properties. El formato de la especificación es el siguiente: extensión de archivo y su tipo MIME. Por ejemplo:

xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
one=application/msonenote

Ejemplo de archivo de tipos MIME

A continuación, se ofrece un ejemplo de archivo de tipos MIME.

txt=text/plain
pdf=application/pdf

Ejecutar el conector de sistemas de archivos de Cloud Search

Después de instalar el conector de sistemas de archivos de Cloud Search, puedes usar un comando como el que se indica en el siguiente ejemplo para ejecutarlo:

java -Djava.util.logging.config.file=logging.properties -jar google-cloudsearch-filesystem-connector-v1-0.0.2-withlib.jar