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

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

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

Постоянные автоматические обновления

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

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

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

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

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

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

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

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

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

Предпосылки

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

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

    • Закрытый ключ Google Workspace (содержащий идентификатор учётной записи сервиса). Информацию о получении закрытого ключа см. в статье Настройка доступа к REST API Google Cloud Search .
    • Идентификатор источника данных Google Workspace. Информацию о получении идентификатора источника данных см. в статье Добавление источника данных для поиска .
    • Идентификатор источника удостоверений. Информацию о том, как получить идентификатор источника удостоверений, см. в статье Создание источника удостоверений . Если вы синхронизируете каталог Google Workspace с Active Directory, настройте источник удостоверений с помощью GCDS .

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

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

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

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

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

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

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

Шаг 1. Установите коннектор Google Cloud Search File Systems

  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, кодируйте их с помощью экранированных символов 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

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

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

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

Установите значение true , чтобы разрешить соединителю сканировать скрытые файлы и папки (в файловых системах Windows файл или папка считаются скрытыми, если установлен атрибут DOS hidden.) Значение по умолчанию — 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 : ГГГГ-ММ-ДД. Например, если указано значение 2010-01-01, коннектор будет сканировать только контент, доступ к которому был осуществлен после начала 2010 года.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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