Déployer le connecteur de systèmes de fichiers Microsoft Windows

Ce guide est destiné aux administrateurs du connecteur de systèmes de fichiers Google Cloud Search, c'est-à-dire à toute personne chargée de télécharger, de configurer, d'exécuter et de surveiller le connecteur. Il fournit des instructions permettant d'effectuer les principales tâches liées au déploiement du connecteur de systèmes de fichiers Microsoft Windows :

  • Télécharger le logiciel du connecteur de systèmes de fichiers Google Cloud Search
  • Configurer le connecteur pour une source de données associée à un système de fichiers spécifique
  • Déployer et exécuter le connecteur

Pour comprendre les concepts de ce document, vous devez connaître les principes fondamentaux de G Suite et du système de fichiers Microsoft Windows.

Présentation du connecteur de systèmes de fichiers Google Cloud Search

Le connecteur de systèmes de fichiers permet à Google Cloud Search d'explorer le contenu de partages Microsoft Windows et de l'indexer dans Cloud Search via l'API d'indexation associée. Une fois indexé, le contenu du partage Microsoft Windows est interrogeable via les clients ou l'API Query de Cloud Search.

Une même instance de connecteur peut traiter plusieurs partages Microsoft Windows. Les espaces de noms et les liens DFS sont compatibles avec le connecteur. Cependant, celui-ci ne traite que les liens DFS d'un espace de noms DFS, pas les dossiers standards de l'espace de noms DFS.

Fichiers de propriétés de configuration

Pour pouvoir explorer le contenu d'un système de fichiers et l'importer dans l'API d'indexation, le connecteur a besoin de paramètres. En tant qu'administrateur, il vous appartient de transmettre ces paramètres au connecteur de systèmes de fichiers dans un fichier de configuration que vous pouvez créer en suivant les étapes décrites dans la procédure de déploiement.

En plus des paramètres du connecteur de systèmes de fichiers, décrits dans ce document, il existe des paramètres de configuration communs à tous les connecteurs Cloud Search. Pour plus d'informations, consultez l'article Paramètres de connecteur fournis par Google.

Autorisations de compte Microsoft Windows requises par le connecteur

Le compte Microsoft Windows avec lequel le connecteur s'exécute doit disposer d'autorisations suffisantes pour effectuer les actions suivantes :

  • Répertorier le contenu des dossiers
  • Lire le contenu des documents
  • Lire les attributs des fichiers et des dossiers
  • Lire les autorisations (LCA) associées aux fichiers et dossiers
  • Écrire des autorisations de base relatives aux attributs

Le connecteur tente de restaurer la date du dernier accès aux documents après avoir lu leur contenu lors d'une exploration. Pour pouvoir rétablir la valeur d'origine de la date de dernier accès, à savoir avant la lecture du contenu, le compte utilisateur avec lequel le connecteur s'exécute doit disposer d'un accès en écriture aux documents. Si le compte ne dispose que d'un accès en lecture, et non en écriture, la date de dernier accès est modifiée lorsque le connecteur lit le contenu des documents lors d'une exploration.

Les comptes Windows appartenant à l'un des groupes suivants disposent des autorisations requises par le connecteur :

  • Administrateurs
  • Utilisateurs avec pouvoir
  • Opérateurs d'impression
  • Opérateurs de serveur

Mises à jour automatiques continues

Par défaut, à son démarrage, le connecteur commence à surveiller les chemins d'accès de départ (valeurs de fs.src) qui sont des partages de fichiers ou des liens DFS. Pour chaque chemin d'accès de départ correspondant à un espace de noms DFS, le connecteur lance une surveillance des liens associés. Si les surveillances ne sont pas lancées au démarrage, elles le sont dès qu'un chemin d'accès de départ ou un lien DFS figurant déjà dans l'index Cloud Search est renvoyé au connecteur à la suite d'une requête d'interrogation. Vous pouvez activer ou désactiver cette fonctionnalité en définissant la valeur de l'option de configuration du connecteur fs.monitorForUpdates, comme décrit dans la section Variables de connector-config.properties.

Contrôle d'accès DFS

Le système DFS met en œuvre un contrôle d'accès à ses liens, et chaque lien DFS a généralement sa propre liste de contrôle d'accès (LCA). L'un des mécanismes utilisés dans ce cadre est l'énumération basée sur l'accès (ABE, Access-based Enumeration). Lorsque l'ABE est déployée, les utilisateurs peuvent uniquement voir un sous-ensemble des liens DFS, et parfois un seul lien, si l'ABE est employée pour isoler des répertoires d'accueil hébergés. Lors du balayage d'un système DFS, le connecteur fournit la LCA de chaque lien DFS exploré, en plus de la LCA du partage ciblé en tant que ressource nommée. Dans ce cas, la LCA du partage hérite de la LCA DFS.

Systèmes d'exploitation compatibles

Le connecteur de systèmes de fichiers Cloud Search doit être installé sur l'un des systèmes d'exploitation Windows compatibles suivants :

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

Le connecteur de systèmes de fichiers Cloud Search ne s'exécute pas sous Linux.

Protocoles de système de fichiers compatibles

Le tableau suivant répertorie les protocoles de système de fichiers permettant de communiquer avec les partages de fichiers et indique s'ils sont compatibles avec le connecteur.

Protocole de système de fichiers Communication avec des partages sur des systèmes d'exploitation Compatible
Protocole SMB (Server Message Block) : SMB1 Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
Oui
Protocole SMB (Server Message Block) : SMB2 Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
Oui
Système DFS (Distributed File System) Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
Oui
Système de fichiers Windows local Windows Server 2016
Windows Server 2012
Windows Server 2008 R2
Non
Système de fichiers réseau Sun (NFS) 2.0 Non
Système de fichiers réseau Sun (NFS) 3.0 Non
Système de fichiers Linux local Non

Limitations connues

  • Système de fichiers : cette version du connecteur de systèmes de fichiers n'est pas compatible avec les lecteurs mappés et les lecteurs locaux.
  • Système de fichiers distribué : un lecteur mappé sur un DFS UNC ne fonctionnera pas correctement. Certaines LCA ne seront pas lues correctement.

Conditions préalables

Avant de déployer le connecteur de systèmes de fichiers Cloud Search, assurez-vous que votre environnement comporte tous les composants prérequis suivants :

  • Windows Server 2016
  • Java JRE 1.8 installé sur l'ordinateur qui exécute le connecteur
  • Informations G Suite requises pour établir des relations entre Google Cloud Search et la source de données :

    En règle générale, l'administrateur G Suite du domaine peut vous fournir ces identifiants.

  • Assurez-vous que le compte Windows dispose des autorisations suffisantes, telles que décrites dans la section suivante.

  • Lors du partage d'un dossier à partir d'une plate-forme Windows, une autorisation peut être accordée au niveau de la LCA du partage et de la LCA NTFS du dossier. Ces deux LCA doivent accorder un accès approprié au connecteur. Elles sont également lues par le connecteur. L'administrateur peut passer l'étape de lecture de la LCA du partage en définissant l'option de configuration fs.skipShareAccessControl sur true.

Procédure de déploiement

Pour déployer le connecteur de systèmes de fichiers Google Cloud Search, suivez les étapes ci-dessous :

  1. Installer le connecteur de systèmes de fichiers Cloud Search
  2. Spécifier la configuration du connecteur de systèmes de fichiers
  3. Configurer l'accès à la source de données Google Cloud Search
  4. Configurer l'accès aux systèmes de fichiers
  5. Configurer le caractère de séparateur de chemin
  6. Configurer les contrôles de comportement du connecteur
  7. Configurer les contrôles de dernier accès
  8. Restreindre l'accès aux documents et aux dossiers explorés
  9. Ignorer le contrôle d'accès du partage de fichiers
  10. Activer la journalisation
  11. Configurer mime-type.properties

1. Installer le connecteur de systèmes de fichiers Cloud Search

Google fournit le logiciel d'installation du connecteur dans le fichier suivant :

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

Téléchargez le connecteur de systèmes de fichiers Windows et extrayez-le dans le répertoire de travail local où il s'exécutera. Ce répertoire peut également contenir tous les fichiers nécessaires à l'exécution du connecteur, y compris le fichier de configuration et le fichier contenant la clé du compte de service.

2. Spécifier la configuration du connecteur de systèmes de fichiers

Pour que le connecteur puisse accéder à un système de fichiers et indexer des contenus pertinents, vous devez créer un fichier de configuration. Vous pouvez contrôler le comportement et les attributs du connecteur de systèmes de fichiers à l'aide des paramètres définis dans son fichier de configuration. Les paramètres configurables permettent de contrôler les éléments suivants :

Pour créer un fichier de configuration :

  1. Ouvrez un éditeur de texte de votre choix et attribuez un nom au fichier de configuration. Ajoutez des paires clé=valeur au contenu du fichier comme expliqué dans les sections suivantes.
  2. Attribuez un nom au fichier de configuration et enregistrez-le. Google vous recommande de nommer ce fichier connector-config.properties pour pouvoir exécuter le connecteur via la ligne de commande sans aucun paramètre supplémentaire.

3. Configurer l'accès à la source de données Google Cloud Search

Les premiers paramètres à spécifier dans chaque fichier de configuration sont les paramètres d'accès à la source de données Cloud Search, comme indiqué dans le tableau suivant. En règle générale, vous avez besoin de l'ID de la source de données, de l'ID du compte de service et du chemin d'accès au fichier contenant la clé privée du compte de service pour configurer l'accès du connecteur à Cloud Search. Les étapes de configuration d'une source de données sont décrites dans l'article Ajouter une source de données pour les recherches.

Élément Paramètre
ID de la source de données api.sourceId=1234567890abcdef
Obligatoire. ID de la source Google Cloud Search créée par l'administrateur G Suite.
Chemin d'accès au fichier contenant la clé privée du compte de service api.serviceAccountPrivateKeyFile=./PrivateKey.json
Obligatoire. Fichier contenant la clé du compte de service Google Cloud Search nécessaire à l'accessibilité du connecteur de système de fichiers Google Cloud Search.
ID de la source d'identité api.identitySourceId=x0987654321
Obligatoire. ID de la source d'identité Cloud Search créée par l'administrateur G Suite pour la synchronisation des identités Active Directory avec GCDS.

4. Configurer l'accès à des systèmes de fichiers

Pour permettre au connecteur d'accéder à un système de fichiers et d'en extraire des données pour l'indexation, vous devez configurer l'accès au système de fichiers source. Le paramètre suivant permet d'ajouter des informations d'accès dans le fichier de configuration.

Élément Paramètre
Systèmes de fichiers sources fs.src=filename1,filename2
Vous pouvez spécifier plusieurs systèmes de fichiers sources dans la propriété fs.src en fournissant une liste de sources UNC séparées par le délimiteur configuré par le paramètre fs.src.separator. Les caractères UNICODE et non-ASCII sont acceptés dans fs.src. Pour utiliser ces caractères, vous devez enregistrer le fichier de configuration du connecteur avec un encodage UTF-8.

5. Configurer le caractère de séparateur de chemin

Le paramètre suivant permet de définir le séparateur dans le fichier de configuration.

Élément Paramètre
Caractère de séparateur de chemin fs.src.separator=,
Le séparateur par défaut est ";" (comme pour la variable d'environnement PATH ou CLASS_PATH). Toutefois, si les chemins d'accès de la source spécifiée contiennent des points-virgules, vous pouvez configurer un autre délimiteur qui n'entre pas en conflit avec les caractères figurant dans vos chemins et qui n'est pas réservé par la syntaxe du fichier de propriétés.

Si fs.src.separator est défini sur une chaîne vide, la valeur fs.src est considérée comme un nom de chemin unique.

6. Configurer les contrôles de comportement du connecteur

Les paramètres suivants permettent de définir le comportement du connecteur dans le fichier de configuration.

Élément Paramètre
Inclure des comptes dans les LCA fs.supportedAccounts=BUILTIN\\Administrators,\\Everyone,BUILTIN\\Users

Les comptes mentionnés dans le paramètre supportedAccounts seront inclus dans les LCA, qu'ils soient intégrés ou non.

La valeur par défaut est : BUILTIN\\Administrators,Everyone,BUILTIN\\Users, \ BUILTIN\\Guest,NT AUTHORITY\\INTERACTIVE, \ NT AUTHORITY\\Authenticated Users

Exclure des comptes intégrés des LCA fs.builtinGroupPrefix=BUILTIN\\

Comptes intégrés qui sont exclus des LCA transmises à l'API d'indexation. Un compte commençant par ce préfixe est considéré comme un compte intégré et sera exclu des LCA.

La valeur par défaut est BUILTIN\\

Autoriser ou interdire l'indexation des fichiers et dossiers cachés fs.crawlHiddenFiles=true

La définition des fichiers et dossiers cachés diffère selon la plate-forme. Sur les systèmes de fichiers Windows, un fichier ou un dossier est considéré comme caché lorsque l'attribut DOS correspondant est défini. Par défaut, les fichiers cachés et le contenu des dossiers cachés ne sont pas indexés. Si vous définissez le paramètre fs.crawlHiddenFiles sur true, les fichiers et dossiers cachés seront explorés par le connecteur.

La valeur par défaut est false.

Autoriser ou interdire l'indexation des listes de dossiers explorés et des énumérations d'espaces de noms DFS fs.indexFolders=false

Lorsqu'un dossier est exploré, le connecteur crée un objet CONTAINER_ITEM. Si le paramètre indexFolders est défini sur false, le connecteur crée un objet VIRTUAL_CONTAINER_ITEM.

La valeur par défaut est true.

Activer ou désactiver la surveillance des modifications du système de fichiers fs.monitorForUpdates=false

Lorsque la surveillance est désactivée, les mises à jour ou modifications du contenu ou des contrôles d'accès ne sont pas envoyées immédiatement à l'API d'indexation avec une demande de réexploration. La désactivation de la surveillance réduit considérablement l'utilisation des ressources par le connecteur.

La valeur par défaut est true.

Définir la taille maximale du cache des répertoires fs.directoryCacheSize=25000

Définit la taille maximale du cache des répertoires rencontrés. Ce cache permet actuellement d'identifier les dossiers cachés et non cachés pour éviter d'indexer des fichiers et des dossiers dont l'ancêtre est caché. Un dossier est considéré comme caché lorsque l'attribut DOS correspondant est défini.

Par défaut, la taille maximale du cache est de 50 000 entrées, ce qui consomme généralement 10 à 15 Mo de mémoire RAM.

7. Configurer les contrôles de dernier accès

Les paramètres suivants permettent de définir la date du dernier accès aux fichiers et dossiers explorés dans le fichier de configuration.

Élément Paramètre
Conserver l'horodatage du dernier accès fs.preserveLastAccessTime=NEVER

Cette propriété de configuration indique à quel niveau la conservation de l'horodatage du dernier accès aux fichiers et dossiers explorés est appliquée. Si vous ne conservez pas l'horodatage du dernier accès aux fichiers et dossiers, les systèmes de sauvegarde et d'archivage penseront à tort qu'un utilisateur a récemment accédé aux fichiers ou dossiers concernés, empêchant ainsi leur déplacement vers un espace stockage secondaire destiné aux éléments qui ont été peu utilisés récemment.

Si le connecteur ne parvient pas à restaurer la date et l'heure du dernier accès au fichier, il est probable que l'utilisateur exécutant le balayage ne dispose pas de droits d'accès suffisants pour écrire les attributs du fichier. Par mesure de précaution, le connecteur refuse d'exécuter les demandes d'exploration du système de fichiers afin d'éviter de modifier l'horodatage du dernier accès d'un nombre de fichiers potentiellement important.

La propriété fs.preserveLastAccessTime accepte trois valeurs :

  • ALWAYS : le connecteur tentera de conserver la date et l'heure du dernier accès pour tous les fichiers et dossiers explorés. En cas d'échec, le connecteur refusera d'exécuter les demandes d'exploration suivantes du système de fichiers, pour éviter de modifier l'horodatage du dernier accès d'un nombre de fichiers potentiellement important.
  • IF_ALLOWED : le connecteur tentera de conserver la date et l'heure du dernier accès pour tous les fichiers et dossiers explorés, même si certains horodatages ne sont pas conservés.
  • NEVER : le connecteur ne tentera pas de conserver la date et l'heure du dernier accès pour les fichiers et les dossiers explorés. Par défaut, le paramètre de conservation des horodatages de dernier accès est défini sur ALWAYS.
Désactiver l'exploration des fichiers dont l'horodatage de dernier accès est antérieur à une date spécifique fs.lastAccessedDate=2010-01-01

La date limite est spécifiée au format ISO 8601 : AAAA-MM-JJ.

Si vous définissez fs.lastAccessedDate sur 2010-01-01, seul le contenu consulté à partir du début de l'année 2010 sera exploré. Vous pouvez définir fs.lastAccessedDate ou fs.lastAccessedDays, mais pas ces deux paramètres simultanément. La valeur par défaut est disabled.

Désactiver l'exploration des fichiers qui n'ont pas été consultés pendant la période correspondant au nombre de jours spécifié fs.lastAccessedDays=365

Contrairement à la date limite absolue associée au paramètre fs.lastAccessedDate, cette propriété permet d'attribuer une date d'expiration aux contenus précédemment indexés qui n'ont pas été consultés depuis un certain temps. Le délai d'expiration est spécifié sous la forme d'un entier positif représentant un nombre de jours. Si vous définissez fs.lastAccessedDays sur 365, seul le contenu consulté au cours de l'année écoulée sera exploré. Vous pouvez définir fs.lastAccessedDate ou fs.lastAccessedDays, mais pas ces deux paramètres simultanément. La valeur par défaut est disabled.

8. Restreindre l'accès aux documents et aux dossiers explorés

Les paramètres suivants permettent de définir dans le fichier de configuration une restriction d'accès aux fichiers et dossiers explorés.

Élément Paramètre
Désactiver l'exploration des fichiers dont l'horodatage de dernier accès est antérieur à une date spécifique fs.lastModifiedDate=2010-01-01

La date limite est spécifiée au format ISO 8601 : AAAA-MM-JJ.

Si vous définissez fs.lastModifiedDate sur 2010-01-01, seul le contenu modifié à partir du début de l'année 2010 sera exploré. Vous pouvez définir fs.lastModifiedDate ou fs.lastModifiedDays, mais pas ces deux paramètres simultanément. La valeur par défaut est disabled.

Désactiver l'exploration des fichiers qui n'ont pas été modifiés pendant la période correspondant au nombre de jours spécifié fs.lastModifiedDays=365

Contrairement à la date limite absolue associée au paramètre fs.lastModifiedDate, cette propriété permet d'attribuer une date d'expiration aux contenus précédemment indexés qui n'ont pas été modifiés depuis un certain temps. Le délai d'expiration est spécifié sous la forme d'un entier positif représentant un nombre de jours. Si vous définissez fs.lastModifiedDays sur 365, seul le contenu modifié au cours de l'année écoulée sera exploré. Vous pouvez définir fs.lastModifiedDate ou fs.lastModifiedDays, mais pas ces deux paramètres simultanément. La valeur par défaut est disabled.

9. Ignorer le contrôle d'accès du partage de fichiers

Le connecteur tente de préserver l'intégrité du contrôle d'accès lors de l'envoi des LCA à l'API d'indexation. En général, seuls les utilisateurs ayant accès à un partage de fichiers ont accès aux fichiers stockés sur ce partage. Le connecteur inclut donc la LCA du partage avec les fichiers envoyés à l'API d'indexation. Toutefois, dans certaines configurations, le connecteur ne dispose pas des autorisations requises pour lire la LCA du partage. Dans ce cas, la LCA du partage ne pouvant pas être prise en compte, les fichiers stockés sur le partage n'apparaissent pas dans les résultats de recherche. Si le connecteur ne peut pas lire la LCA du partage, l'administrateur peut ignorer la tentative de lecture de celle-ci en définissant l'option de configuration fs.skipShareAccessControl sur true. Cette option transmet à l'API d'indexation une LCA de partage qui accorde à cette dernière une autorisation d'accès intégral, en remplacement de la véritable LCA du partage.

Les paramètres suivants permettent de définir la prise en compte des contrôles d'accès au partage de fichiers dans le fichier de configuration.

Élément Paramètre
Ignorer le contrôle d'accès du partage de fichiers fs.skipShareAccessControl=true

Cette propriété de configuration booléenne active ou désactive l'envoi de la LCA du partage de fichiers à l'API d'indexation.

La valeur par défaut est false (les LCA du partage sont envoyées à l'API d'indexation).

Exemple de fichier de configuration

L'exemple de fichier de configuration suivant indique les paires clé/valeur des paramètres définissant le comportement d'un connecteur.

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. Activer la journalisation

Créez un dossier nommé logs dans le répertoire contenant le binaire du connecteur. Créez un fichier ASCII ou UTF-8 nommé logging.properties dans le même répertoire et ajoutez le contenu suivant :

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. Configurer mime-type.properties

Vous pouvez également créer un fichier ASCII ou UTF-8 nommé mime-type.properties dans le répertoire du connecteur afin d'y spécifier les types MIME (Multipurpose Internet Mail Extensions) associés aux différents types de fichiers. Si vous ne le spécifiez pas, le connecteur tentera de détecter le type MIME de chaque fichier. Il utilisera pour ce faire le système de détection fourni par JDK. Sur Microsoft Windows, JDK s'appuie sur le registre Windows pour déterminer le type MIME des fichiers et peut donc leur attribuer la valeur null si l'entrée de registre correspondante est manquante.

Les applications standards ont des types MIME standards. Les propriétés mime-type.properties ont pour seul objet de remplacer les associations que vous souhaitez modifier. Le fichier mime-type.properties doit se trouver dans le même répertoire racine que les fichiers connector-config.properties et logging.properties. Le format de la spécification est : extension de fichier et type MIME associé. Exemple :

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

Exemple de fichier de types MIME

L'exemple suivant indique un fichier répertoriant des types MIME.

txt=text/plain
pdf=application/pdf

Exécuter le connecteur de systèmes de fichiers Cloud Search

Une fois le connecteur de systèmes de fichiers Cloud Search installé, vous pouvez l'exécuter sur la machine hôte à l'aide d'une commande semblable à celle de l'exemple suivant :

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