Microsoft Windows File Systems コネクタのデプロイ

Google Workspace のコンテンツに加えて、組織の Microsoft Windows 共有から結果を返すように Google Cloud Search を設定できます。Cloud Search File Systems コネクタを使用して、指定された Windows 共有にアクセスするように構成します。1 つのコネクタ インスタンスで複数の Microsoft Windows 共有をサポートできます。

重要な考慮事項

ファイル システム コネクタをデプロイする前に、次の注意事項を確認してください。

継続的な自動更新

デフォルトでは、コネクタは起動時に開始パス(構成ファイルの fs.src の値)を継続的にモニタリングします。ファイル システムがコンテンツまたはアクセス制御の変更を報告すると、コネクタはファイル システムを再クロールします。この再クロールはリソースを大量に消費する可能性があります。モニタリングをオフにするには、fs.monitorForUpdatesfalse に設定します。これにより、リソースの使用量は削減されますが、コネクタが変更を反映するタイミングが遅れます。詳細

DFS のアクセス制御

DFS システムでは、リンクにアクセス制御が適用され、通常は各 DFS リンクに独自の ACL があります。DFS は、アクセスベースの列挙(ABE)を使用して、ユーザーに返されるリンクを制限します。ABE がホーム ディレクトリを分離すると、ユーザーには DFS リンクのサブセットまたは 1 つのリンクのみが表示されることがあります。コネクタは、DFS システムを走査するときに DFS リンクの ACL とターゲットの共有 ACL を尊重します。共有 ACL は DFS ACL から継承されます。

既知の制限事項

このセクションでは、ファイル システム コネクタの既知の制限事項について説明します。

  • ファイル システム: コネクタは、マッピングされたドライブとローカル ドライブをサポートしていません。
  • 分散ファイル システム: UNC DFS にマッピングされたドライブは正しく機能しません。また、一部の ACL が正しく読み取られない可能性があります。
  • コネクタは DFS 名前空間と DFS リンクをサポートしていますが、DFS 名前空間内の通常のフォルダはサポートしていません。
  • ほとんどのブラウザでは、cloudsearch.google.com 内のファイルリンクや Query API から返されたファイルリンクをクリックできません。

システム要件

File Systems コネクタをデプロイする前に、ホストマシンが次の要件を満たしていることを確認してください。

システム要件
オペレーティング システム
  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2
ソフトウェア
  • コネクタを実行するコンピュータに Java JRE 1.8 がインストールされている
ファイル システム プロトコル
  • サーバー メッセージ ブロック(SMB) - SMB1
  • サーバー メッセージ ブロック(SMB) - SMB2
  • 分散ファイル システム(DFS)

サポートされていないもの: ローカル Windows ファイル システム、NFS 2.0、NFS 3.0、ローカル Linux ファイル システム。

コネクタをデプロイする

File Systems コネクタをデプロイする手順は次のとおりです。

前提条件

コネクタをデプロイする前に、環境に次のコンポーネントがあることを確認してください。

必要な Microsoft Windows アカウントの権限

コネクタを実行する Windows アカウントには、次の権限が必要です。

  • フォルダの内容を一覧表示します。
  • ドキュメントの内容を読み取ります。
  • ファイルとフォルダの属性を読み取ります。
  • ファイルとフォルダの権限(ACL)を読み取る。
  • 基本属性を書き込みます。

通常、これらのグループのいずれかのメンバーになると、十分な権限が付与されます。管理者、パワーユーザー、印刷オペレーター、サーバー オペレーター。

ステップ 1. コネクタをインストールする

GitHub からコネクタ リポジトリをダウンロードするかクローンを作成し、コネクタ パッケージをビルドします。

  1. GitHub からコネクタ リポジトリを取得してビルドします。

    Windows サーバーで git を使用するには:

    > git clone https://github.com/google-cloudsearch/windows-filesystems-connector.git
    > cd windows-filesystems-connector
    > git checkout tags/v1-0.0.3

    直接ダウンロードするには:

    1. windows-filesystems-connector に移動します。
    2. [Clone or download] > [Download zip] をクリックします。
    3. パッケージを解凍して、ディレクトリに移動します。
  2. Apache Maven を使用してコネクタをビルドします。

    > mvn package
    テストをスキップするには、mvn package -DskipTests を使用します。

  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. パラメータを Key-Value ペアとして追加します。次に例を示します。

    # Required parameters
    api.serviceAccountPrivateKeyFile=/path/to/file.json
    api.sourceId=0123456789abcde
    api.identitySourceId=a1b1c1234567
    
    # File system access
    fs.src=\\\\host\\share;\\\\dfshost\\dfsnamespace
    
    # Optional parameters
    traverse.abortAfterExceptions=500
    fs.monitorForUpdates = true
    fs.preserveLastAccessTime = IF_ALLOWED
    

    ファイル システム固有のパラメータについては、構成パラメータのリファレンスをご覧ください。すべての Cloud Search コネクタで使用される共通パラメータの一覧については、Google 提供のコネクタ パラメータをご覧ください。

ステップ 3. ロギングを有効にする

ログ用のディレクトリを作成し、ロギング構成ファイルを作成します。

  1. コネクタ ディレクトリに logs という名前のフォルダを作成します。
  2. 次の内容のファイルを 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. (省略可)メディアタイプを構成する

コネクタは、デフォルトのメカニズムを使用してファイル メディア タイプの検出を試みます。Windows では、レジストリ エントリに依存します。ファイル拡張子のレジストリ エントリがない場合、コネクタがメディアタイプを正しく検出できないことがあります。メディアタイプが正しく検出されない場合や、拡張機能のデフォルトのタイプをオーバーライドする場合は、次の手順を行います。

  1. コネクタ ディレクトリに mime-type.properties という名前のファイルを作成します。
  2. 拡張機能とタイプを extension=media/type:properties xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet one=application/msonenote txt=text/plain pdf=application/pdf の形式で入力します。

ステップ 5. File Systems コネクタを実行する

ホストマシンからコネクタを起動します。

> 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 という名前の構成ファイルを探します。構成ファイルの名前が異なる場合や、別のディレクトリにある場合は、-Dconfig パラメータを使用してパスを指定します。

構成パラメータのリファレンス

次の表に、ファイル システム コネクタの構成に使用されるパラメータを示します。

データソース アクセス

設定 パラメータ
データソース ID api.sourceId=1234567890abcdef

必須。Cloud Search ソースの ID。

サービス アカウント api.serviceAccountPrivateKeyFile=./PrivateKey.json

必須。サービス アカウント キーファイルのパス。

ID ソースの ID api.identitySourceId=x0987654321

必須。Google Workspace 管理者がセットアップした、GCDS を使用して Active Directory の ID を同期するために必要な Cloud Search ID ソースの ID。

ファイル システムへのアクセス

これらのパラメータを使用して、クロールするファイル システム ソースを指定します。

設定 パラメータ
ソース ファイル システム fs.src=path1[,path2, ...]

必須。ソース ファイル システムは、fs.src.separator で構成された区切り文字で区切られた 1 つ以上の UNC ソースとして指定します。Latin1 にない文字を使用する場合は、Java Unicode エスケープでエンコードします。

パス区切り文字

設定 パラメータ
パス区切り文字 fs.src.separator=separator-character

デフォルトの区切り文字は「;」です。ソースパスにセミコロンが含まれている場合は、パス内の文字と競合せず、プロパティ ファイルの構文自体で予約されていない別の区切り文字(カンマ(「,」)など)を設定できます。

fs.src.separator 値が空の文字列の場合、fs.src 値は単一のパスとして扱われます。

コネクタの動作

これらのパラメータを使用して、コネクタがファイル システムをクロールする方法を調整します。

設定 パラメータ
Windows ドメイン fs.supportedDomain=domain

GCDS を使用して設定されたユーザーが Cloud Search を介してドキュメントにアクセスできるようにするために必要です。Active Directory の単一の NetBIOS ドメイン名として指定します。

ACL にアカウントを含める fs.supportedAccounts=account-1[, account-2,...]

組み込みアカウントであるかどうかにかかわらず、ACL に含めるアカウントのカンマ区切りリスト。

デフォルト値は BUILTIN\\Administrators,Everyone,BUILTIN\\Users, BUILTIN\\Guest,NT AUTHORITY\\INTERACTIVE, NT AUTHORITY\\Authenticated Users です。

ACL から組み込みアカウントを除外する fs.builtinGroupPrefix=prefix

組み込みアカウントの接頭辞を指定します。この接頭辞で始まるアカウントは組み込みアカウントとみなされ、ACL から除外されます。

デフォルト値は BUILTIN\\ です。

隠しファイルと隠しフォルダのインデックス登録を許可する fs.crawlHiddenFiles=boolean

非表示ファイルをクロールするには、true に設定します。デフォルトは 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 メガバイトの RAM を消費します。

タイムスタンプの保持

これらのパラメータを使用して、コネクタがタイムスタンプの保存を処理する方法を指定します。

設定 パラメータ
アクセス日時を保持する fs.preserveLastAccessTime=value

ファイルとフォルダをクロールするときに、コネクタは最終アクセス タイムスタンプをクロール時に変更できます。最終アクセス時刻が保持されない場合、コネクタがアクセスしたため、バックアップ システムやアーカイブ システムが適切なファイルやフォルダをセカンダリ ストレージに移動しない可能性があります。

デフォルトでは、fs.preserveLastAccessTimeALWAYS に設定されています。つまり、コネクタは最終アクセス時刻を保持しようとします。コネクタを実行しているユーザー アカウントにファイル属性を書き込む権限がない場合、コネクタは最終アクセス時刻を復元できません。ALWAYS に設定されていて、コネクタが最終アクセス時刻を保持できない場合、ファイル タイムスタンプが変更されないように、ファイル システムに対するクロール リクエストを拒否します。

有効な値は次のとおりです。

  • ALWAYS: コネクタは、ファイルとフォルダをクロールする際に、最終アクセス時刻を保持しようとします。最終アクセス時刻を保持できない場合、タイムスタンプの変更を防ぐため、ファイル システムに対する後続のクロール リクエストをすべて拒否します。
  • IF_ALLOWED: コネクタは、ファイルとフォルダをクロールする際に、最終アクセス時刻を保持しようとします。一部のタイムスタンプが保持されない場合でも、クロールは続行されます。
  • NEVER: コネクタは、最終アクセス時刻を保持しようとしません。
特定の日付以降にアクセスされたファイルのみをクロールする fs.lastAccessedDate=YYYY-MM-DD

最終アクセス日時が指定した日付(YYYY-MM-DD、ISO8601 形式)より後の場合にのみ、コンテンツをクロールします。デフォルトは disabled です。たとえば、2010-01-01 は 2010 年の始まり以降にアクセスされたコンテンツをクロールします。fs.lastAccessedDays と併用することはできません。

過去の指定した日数以内にアクセスされたファイルのみをクロールする fs.lastAccessedDays=number-of-days

最終アクセス時刻が現在から指定した日数以内の場合にのみ、コンテンツをクロールします。デフォルトは disabled です。古いコンテンツの有効期限切れに便利です。例: 365 は、過去 1 年間にアクセスされたコンテンツをクロールします。fs.lastAccessedDate と併用することはできません。

特定の日付以降に変更されたファイルのみをクロールする fs.lastModifiedDate=YYYY-MM-DD

最終更新日時が指定した日付(YYYY-MM-DD、ISO8601 形式)以降の場合にのみコンテンツをクロールします。デフォルトは disabled です。たとえば、2010-01-01 は 2010 年の開始以降に変更されたコンテンツをクロールします。fs.lastModifiedDays と併用することはできません。

過去の日数以内に変更されたファイルのみをクロールする fs.lastModifiedDays=number-of-days

最終更新日時が現在から指定した日数以内のコンテンツのみをクロールします。デフォルトは disabled です。古いコンテンツの有効期限切れに便利です。例: 365 は、過去 1 年間に変更されたコンテンツをクロールします。fs.lastModifiedDate と併用できません。

ファイル共有の ACL をスキップする

共有 ACL を読み取る権限がない場合、コネクタが共有 ACL を無視するように設定できます。コンテンツは、許可型の共有 ACL とともに返されます。

設定 パラメータ
共有 ACL をスキップ fs.skipShareAccessControl=boolean

共有 ACL を無視するには、true に設定します。デフォルトは false です。