Развертывание соединителя файловых систем Microsoft Windows

Вы можете настроить Google Cloud Search так, чтобы он возвращал результаты из общих ресурсов Microsoft Windows вашей организации в дополнение к содержимому Google Workspace. Вы используете соединитель файловых систем Google Cloud Search и настраиваете его для доступа к указанным общим ресурсам Windows. Один экземпляр соединителя может поддерживать несколько общих ресурсов Microsoft Windows.

Важные соображения

Непрерывные автоматические обновления

По умолчанию соединитель постоянно отслеживает пути запуска (значения из fs.src в файле конфигурации соединителя) при запуске соединителя. Когда файловая система сообщает об изменениях в содержимом или элементах управления доступом, соединитель срабатывает для повторного сканирования файловой системы. Такое повторное сканирование может оказаться ресурсоемким. Чтобы отключить мониторинг файловой системы, установите для fs.monitorForUpdates значение false . Вы значительно сокращаете использование ресурсов соединителя, но задерживаетесь, когда соединитель отражает изменения. Узнать больше

Контроль доступа DFS

Система DFS применяет контроль доступа к своим каналам, и обычно каждое соединение DFS имеет собственный список управления доступом. Одним из механизмов, который использует DFS, является перечисление на основе доступа (ABE), которое может ограничивать ссылки DFS, возвращаемые пользователю. Пользователи могут получить только часть ссылок DFS или даже только одну ссылку, когда ABE изолирует размещенные домашние каталоги. Когда соединитель проходит через систему DFS, он учитывает ACL канала DFS и общий ACL целевого ресурса, а общий ACL наследует от ACL DFS.

Известные ограничения

  • Файловая система : соединитель файловых систем не поддерживает подключенные и локальные диски.
  • Распределенная файловая система : подключенный к UNC DFS диск работает неправильно. Некоторые списки ACL читаются неправильно.
  • Соединитель файловых систем поддерживает пространства имен и ссылки распределенной файловой системы (DFS). Однако соединитель поддерживает ссылки DFS только в пространстве имен DFS, а не обычные папки в пространстве имен DFS.
  • Ссылки на файлы, возвращаемые в Cloudsearch.google.com, не доступны для кликов. Ссылки на файлы, возвращаемые API запросов, также недоступны для кликов в большинстве браузеров.

Системные требования

Системные требования
Операционная система
  • Windows Сервер 2016
  • Windows Сервер 2012
  • Windows Сервер 2008 Р2
Программное обеспечение
  • Java JRE 1.8 установлена ​​на компьютере, на котором будет работать соединитель файловых систем Google Cloud Search.
Протоколы файловой системы
  • Блок сообщений сервера (SMB) — SMB1
  • Блок сообщений сервера (SMB) — SMB2
  • Распределенная файловая система (DFS)

Не поддерживаются: локальные файловые системы Windows, сетевая файловая система Sun (NFS) 2.0, сетевая файловая система Sun (NFS) 3.0 или локальная файловая система Linux.

Развертывание соединителя

Предварительные условия

Прежде чем развертывать коннектор файловых систем Cloud Search, убедитесь, что в вашей среде есть все следующие необходимые компоненты:

  • Информация Google Workspace, необходимая для установления связи между Google Cloud Search и источником данных:

    Администратор Google Workspace вашей организации обычно может предоставить вам эти учетные данные.

  • Убедитесь, что учетная запись Windows имеет достаточные разрешения, как описано в следующем разделе.

Необходимые разрешения учетной записи Microsoft Windows

Учетная запись Microsoft Windows, под которой работает соединитель, должна иметь достаточные разрешения для выполнения следующих действий:

  • Перечислить содержимое папок
  • Ознакомьтесь с содержанием документов
  • Чтение атрибутов файлов и папок
  • Разрешения на чтение (ACL) как для файлов, так и для папок.
  • Разрешения на запись основных атрибутов

Членство в одной из следующих групп предоставляет учетной записи Windows достаточные разрешения, необходимые для соединителя:

  • Администраторы
  • Опытные пользователи
  • Операторы печати
  • Операторы сервера

Шаг 1. Установите коннектор файловых систем Google Cloud Search.

  1. Получите репозиторий соединителя с GitHub и создайте его.

    Чтобы использовать git на сервере Windows:

    1. Клонируем репозиторий:

      > git clone https://github.com/google-cloudsearch/windows-filesystems-connector.git
      > cd windows-filesystems-connector
    2. Ознакомьтесь с желаемой версией разъема:

      > git checkout tags/v1-0.0.3

    Чтобы загрузить напрямую с GitHub:

    1. Перейдите на https://github.com/google-cloudsearch/windows-filesystems-connector .
    2. Нажмите «Клонировать» или загрузите Загрузите zip-архив .
    3. Разархивируйте пакет.
    4. Перейдите в новый каталог:
      > cd windows-filesystems-connector
  2. Создайте соединитель. При необходимости установите Apache Maven .

    > mvn package

    Чтобы пропустить тесты при сборке соединителя, запустите mvn package -DskipTests вместо mvn package .

  3. Скопируйте zip-файл соединителя в локальный каталог установки:

    > cp target/google-cloudsearch-windows-filesystems-connector-v1-0.0.3.zip installation-dir
    > cd installation-dir
    > unzip google-cloudsearch-windows-filesystems-connector-v1-0.0.3.zip
    > cd google-cloudsearch-windows-filesystems-connector-v1-0.0.3

Шаг 2. Создайте файл конфигурации коннектора.

  1. В том же каталоге, где установлен коннектор, создайте файл и назовите его connector-config.properties .

  2. Добавьте к содержимому файла параметры в виде пар ключ/значение, как показано в следующем примере:

    ### File system connector configuration ###
    
    # Required parameters for Cloud Search data source and identity source access
    api.serviceAccountPrivateKeyFile=/path/to/file.json
    api.sourceId=0123456789abcde
    api.identitySourceId=a1b1c1234567
    
    # Required parameters for file system access
    fs.src=\\\\host\\share;\\\\dfshost\\dfsnamespace;\\\\dfshost\\dfsnamespace\\link
    
    # Optional parameters for file system monitoring
    traverse.abortAfterExceptions=500
    fs.monitorForUpdates = true
    fs.preserveLastAccessTime = IF_ALLOWED
    

    Подробное описание каждого параметра можно найти в справочнике по параметрам конфигурации .

  3. (Необязательно) При необходимости настройте другие параметры соединителя. Подробную информацию см. в разделе «Параметры соединителя, предоставленные Google» .

Шаг 3. Включите ведение журнала

  1. Создайте папку с именем logs в каталоге, содержащем двоичный файл соединителя.
  2. Создайте файл ASCII или UTF-8 с именем logging.properties в каталоге, содержащем двоичный файл соединителя, и добавьте следующее содержимое:

    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
    

Шаг 4. (Необязательно) Настройте типы мультимедиа.

По умолчанию соединитель пытается определить тип носителя для каждого файла с помощью определения типа носителя , предоставляемого JDK . В Microsoft Windows JDK использует реестр Windows для определения типов носителей для файлов. Отсутствие записи в реестре может привести к тому, что для определенных файлов будет указан нулевой тип носителя.

При необходимости вы можете указать тип носителя, который перезаписывает любые существующие привязки или предотвращает использование нулевого типа носителя.

  1. В каталоге соединителя создайте файл, зашифрованный Latin-1, с именем mime-type.properties .
  2. Введите расширения файлов и соответствующие им типы мультимедиа, как показано в следующих примерах:

    xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
    one=application/msonenote
    txt=text/plain
    pdf=application/pdf
    

Шаг 5. Запустите соединитель файловых систем.

После установки и настройки соединителя файловых систем, чтобы запустить его на хост-компьютере, выполните команду, подобную следующему примеру:

> java -jar google-cloudsearch-windows-filesystems-connector-v1-0.0.3.jar -Djava.util.logging.config.file=logging.properties[ -Dconfig=my.config]

Укажите путь к файлу конфигурации, если он отличается от пути по умолчанию (в том же каталоге, что и двоичный файл с именем connector-config.properties ).

Справочник параметров конфигурации

Доступ к источнику данных

Параметр Параметр
Идентификатор источника данных api.sourceId= 1234567890abcdef

Необходимый. Идентификатор источника Google Cloud Search, установленный администратором Google Workspace.

Путь к файлу закрытого ключа сервисного аккаунта api.serviceAccountPrivateKeyFile= ./PrivateKey.json

Необходимый. Ключевой файл учетной записи службы Google Cloud Search, обеспечивающий доступность коннектора файловых систем Google Cloud Search.

Идентификатор источника идентификационной информации api.identitySourceId= x0987654321

Необходимый. Идентификатор источника удостоверений Cloud Search, настроенный администратором Google Workspace для синхронизации удостоверений Active Directory с помощью GCDS .

Доступ к файловой системе

Параметр Параметр
Исходные файловые системы fs.src= path1 [, path2 , ...]

Необходимый. Укажите исходные файловые системы как один или несколько источников UNC, разделенных разделителем, настроенным fs.src.separator . Если вы используете символы не из Latin1, закодируйте их с помощью escape-символов Java Unicode.

Символ-разделитель пути

Параметр Параметр
Символ-разделитель пути fs.src.separator= separator-character

Разделителем по умолчанию является «;». Если исходные пути содержат точки с запятой, вы можете установить другой разделитель, например запятую («,»), который не будет конфликтовать с символами в ваших путях и не зарезервирован самим синтаксисом файла свойств.

Если значение fs.src.separator представляет собой пустую строку, то значение fs.src рассматривается как один путь.

Поведение соединителя

Параметр Параметр
Домен Windows fs.supportedDomain= domain

Требуется, чтобы пользователи, настроенные с помощью GCDS, могли получать доступ к документам через Cloud Search. Укажите одно доменное имя NetBIOS Active Directory.

Включить учетные записи в ACLS fs.supportedAccounts= account-1[, account-2,...]

Список учетных записей, разделенных запятыми, которые необходимо включить в списки ACL, независимо от того, являются ли они встроенными учетными записями.

Значение по умолчанию: BUILTIN\\Administrators,Everyone,BUILTIN\\Users, BUILTIN\\Guest,NT AUTHORITY\\INTERACTIVE, NT AUTHORITY\\Authenticated Users

Исключить встроенные учетные записи из списков управления доступом fs.builtinGroupPrefix= prefix

Укажите префикс встроенных учетных записей. Учетная запись, имя которой начинается с этого префикса, считается встроенной учетной записью и будет исключена из списков ACL.

Значение по умолчанию — BUILTIN\\

Разрешить индексацию скрытых файлов и папок fs.crawlHiddenFiles= boolean

Установите значение true чтобы разрешить соединителю выполнять обход скрытых файлов и папок (в файловых системах Windows файл или папка считаются скрытыми, если установлен атрибут скрытый DOS). Значение по умолчанию — false .

Разрешить индексирование списков папок для обхода и перечислений пространства имен DFS. fs.indexFolders= boolean

Если установлено значение true (по умолчанию), когда соединитель просматривает папку, он создает объект CONTAINER_ITEM. Если установлено значение false, соединитель вместо этого создает объект VIRTUAL_CONTAINER_ITEM.

Включить мониторинг изменений файловой системы fs.monitorForUpdates= boolean

Если установлено значение true (по умолчанию), изменения в содержимом или элементах управления доступом вызывают повторное сканирование соединителя. Если вы отключите мониторинг (установите значение false ), вы значительно сократите использование ресурсов соединителя, но задержите момент, когда соединитель отразит изменения.

Установить максимальный размер кэша каталогов fs.directoryCacheSize= number-of-entries

Максимальный размер кэша каталога. Соединитель использует кэш для определения скрытых папок, чтобы избежать индексации файлов и папок в скрытых папках.

По умолчанию установлено 50 000 записей, которые обычно занимают 10–15 мегабайт ОЗУ.

Сохранение временных меток и контроль сканирования

Параметр Параметр
Сохранять временную метку последнего доступа fs.preserveLastAccessTime= value

Когда соединитель выполняет обход файлов и папок, он может изменить метку времени последнего доступа к файлам и папкам на время обхода. Если время последнего доступа не сохраняется, системы резервного копирования и архивирования могут не переместить соответствующие файлы и папки во вторичное хранилище из-за посещения соединителя.

По умолчанию соединитель пытается сохранить время последнего доступа (для fs.preserveLastAccessTime установлено значение ALWAYS ). Соединитель может быть неспособен восстановить время последнего доступа к файлу, если у пользователя обхода недостаточно прав для записи атрибутов файла. Если установлено значение ALWAYS , соединитель отклоняет запросы на сканирование файловой системы, чтобы не изменять временные метки последнего доступа к файлам.

Возможные значения:

  • ALWAYS : соединитель пытается сохранить время последнего доступа при обходе файлов и папок. Когда соединитель в первый раз не может сохранить время последнего доступа, он отклоняет все последующие запросы на сканирование файловой системы, чтобы предотвратить изменение временных меток последнего доступа.
  • IF_ALLOWED : соединитель пытается сохранить время последнего доступа при обходе файлов и папок. Он продолжает сканировать даже тогда, когда некоторые временные метки могут не сохраниться.
  • NEVER : соединитель не пытается сохранить время последнего доступа при обходе файлов и папок.
Сканировать только те файлы, к которым был осуществлен доступ после определенной даты. fs.lastAccessedDate= YYYY-MM-DD

Сканировать контент только в том случае, если время последнего доступа было после указанной даты. Значение по умолчанию disabled .

Укажите дату в формате даты ISO8601 : ГГГГ-ММ-ДД. Например, если значение равно 01.01.2010, соединитель сканирует только контент, доступ к которому осуществлялся после начала 2010 года.

Если вы укажете fs.lastAccessedDate , вы также не сможете установить значение для fs.lastAccessedDays .

Сканировать только те файлы, к которым обращались в течение последних дней. fs.lastAccessedDays= number-of-days

Сканировать контент только в том случае, если время последнего доступа находится в пределах количества дней, предшествующих текущему. Значение по умолчанию disabled .

Используйте это свойство, чтобы истечь срок действия ранее проиндексированного контента, к которому давно не было доступа. Например, установите значение 365, чтобы сканировать контент только в том случае, если к нему обращались в прошлом году.

Если вы укажете fs.lastAccessedDays , вы также не сможете установить значение для fs.lastAccessedDate .

Сканировать только файлы, которые были изменены после определенной даты. fs.lastModifiedDate= YYYY-MM-DD

Сканировать контент только в том случае, если время последнего изменения произошло после указанной даты. Значение по умолчанию disabled .

Укажите дату в формате даты ISO8601 : ГГГГ-ММ-ДД. Например, если значение — 01.01.2010, соединитель сканирует только контент, измененный после начала 2010 года.

Если вы укажете fs.lastModifiedDate , вы также не сможете установить значение для fs.lastModifiedDays .

Сканировать только те файлы, которые были изменены за последние несколько дней. fs.lastModifiedDays= number-of-days

Сканировать контент только в том случае, если время последнего изменения находится в пределах количества дней, предшествующих текущему. Значение по умолчанию disabled .

Используйте это свойство, чтобы истечь срок действия ранее проиндексированного содержимого, которое не менялось в течение некоторого времени. Например, установите значение 365 для сканирования контента, только если он был изменен за последний год.

Если вы укажете fs.lastModifiedDays , вы также не сможете установить значение для fs.lastModifiedDate .

Пропустить контроль доступа к общему файловому ресурсу

По умолчанию соединитель сохраняет целостность управления доступом при отправке списков управления доступом (ACL) в API индексирования, включая списки ACL в общем файловом ресурсе. Однако в некоторых конфигурациях соединитель может не иметь достаточных разрешений для чтения общего списка управления доступом. В таких случаях соединитель не возвращает в результатах поиска файлы, хранящиеся в этом файловом ресурсе.

Вы можете настроить соединитель на игнорирование общего списка управления доступом, чтобы содержимое всегда возвращалось в результатах поиска. В этом случае API индексирования получает полностью разрешающий общий список управления доступом, а не фактический общий список управления доступом.

Параметр Параметр
Пропустить контроль доступа к общему файловому ресурсу fs.skipShareAccessControl= boolean

Установите значение false (по умолчанию), чтобы обеспечить соблюдение общих списков управления доступом. Установите значение true , чтобы игнорировать общие списки ACL.