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

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

重要な考慮事項

継続的な自動更新

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

DFS のアクセス制御

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

既知の制限事項

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

システム要件

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

サポート対象外: ローカル Windows ファイル システム、Sun ネットワーク ファイル システム(NFS)2.0、Sun ネットワーク ファイル システム(NFS)3.0、ローカル Linux ファイル システム。

コネクタをデプロイする

前提条件

Cloud Search File Systems コネクタをデプロイする前に、次に示す前提条件となるコンポーネントがすべて環境にあることを確認してください。

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

コネクタを実行する Microsoft Windows アカウントには、次の操作を行うための十分な権限が必要です。

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

次のいずれかのグループのメンバーになると、コネクタで必要となる十分な権限が Windows アカウントに付与されます。

  • 管理者
  • Power Users
  • Print Operators
  • Server Operators

ステップ 1. Google Cloud Search File Systems コネクタをインストールする

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

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

    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. [Clone or download] [Download zip] をクリックします。
    3. パッケージを解凍します。
    4. 新しいディレクトリに移動します。
      > cd windows-filesystems-connector
  2. コネクタをビルドします。必要に応じて、Apache Maven をインストールします。

    > mvn package

    コネクタをビルドするときにテストをスキップするには、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 ペアとしてファイルの内容に追加します。

    ### 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. コネクタ バイナリを含むディレクトリに logging.properties という名前の ASCII または UTF-8 ファイルを作成し、次の内容を追加します。

    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 レジストリに基づいてファイルのメディアタイプを特定します。レジストリ エントリがない場合、特定のファイルのメディアタイプが null になることがあります。

必要に応じて、既存のバインディングを上書きするメディアタイプを指定したり、null メディアタイプを防いだりできます。

  1. コネクタ ディレクトリに、Latin-1 で暗号化された mime-type.properties という名前のファイルを作成します。
  2. 次の例のように、ファイル拡張子と対応するメディアタイプを入力します。

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

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

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 という名前のバイナリと同じディレクトリに配置します)。

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

データソース アクセス

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

必須。Google Workspace 管理者がセットアップした、Google Cloud Search ソースの ID。

サービス アカウントの秘密鍵ファイルへのパス api.serviceAccountPrivateKeyFile=./PrivateKey.json

必須。Google Cloud Search File Systems コネクタへのアクセスに必要な Google Cloud Search サービス アカウント キー ファイル。

ID ソースの ID api.identitySourceId=x0987654321

必須。GCDS を使用して Active Directory の ID を同期するために、Google Workspace 管理者がセットアップした 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 に設定すると、コネクタは隠しファイルと隠しフォルダをクロールできるようになります(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 メガバイトの RAM を消費します。

タイムスタンプの保持とクロール制御

設定 パラメータ
最終アクセス タイムスタンプを保持する fs.preserveLastAccessTime=value

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

デフォルトでは、コネクタは最終アクセス時刻を保持しようとします(fs.preserveLastAccessTimeALWAYS に設定されます)。走査ユーザーにファイル属性を書き込むための十分な権限がない場合、コネクタはファイルの最終アクセス時刻を復元できないことがあります。ALWAYS に設定すると、コネクタはファイルの最終アクセス タイムスタンプが変更されないように、ファイル システムのクロール リクエストを拒否します。

考えられる値は次のとおりです。

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

最終アクセス日時が指定した日付より後の場合のみ、コンテンツをクロールします。デフォルト値は disabled です。

日付は ISO8601 日付形式(YYYY-MM-DD)で指定します。たとえば、値が 2010-01-01 の場合、コネクタは 2010 年の初め以降にアクセスされたコンテンツのみをクロールします。

fs.lastAccessedDate を指定した場合、fs.lastAccessedDays の値を設定することもできません。

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

最終アクセス日時が指定した日数以内の場合のみ、コンテンツをクロールします。デフォルト値は disabled です。

このプロパティを使用すると、以前にインデックス登録されたコンテンツがしばらくアクセスされていない場合、そのコンテンツを期限切れにできます。たとえば、365 に設定すると、過去 1 年間にアクセスされたコンテンツのみがクロールされます。

fs.lastAccessedDays を指定した場合、fs.lastAccessedDate の値を設定することもできません。

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

最終更新日時が指定された日付より後の場合のみ、コンテンツをクロールします。デフォルト値は disabled です。

日付は ISO8601 日付形式(YYYY-MM-DD)で指定します。たとえば、値が 2010-01-01 の場合、コネクタは 2010 年の初め以降に変更されたコンテンツのみをクロールします。

fs.lastModifiedDate を指定した場合、fs.lastModifiedDays の値を設定することもできません。

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

最終更新日が指定した日数以内である場合にのみコンテンツをクロールします。デフォルト値は disabled です。

このプロパティは、以前にインデックス登録されたコンテンツがしばらく変更されていない場合に期限切れにするために使用します。たとえば、365 に設定すると、過去 1 年間に変更されたコンテンツのみがクロールされます。

fs.lastModifiedDays を指定した場合、fs.lastModifiedDate の値を設定することもできません。

ファイル共有のアクセス制御をスキップする

デフォルトでは、コネクタは、ファイル共有の ACL など、アクセス制御リスト(ACL)をインデックス API に送信するときにアクセス制御の整合性を維持します。ただし、構成によっては、コネクタに共有 ACL を読み取る十分な権限がない場合があります。このような場合、コネクタは、そのファイル共有に保持されているファイルを検索結果に返しません。

共有 ACL を無視するようにコネクタを設定すると、コンテンツが常に検索結果に返されるようになります。この場合、インデックス API は実際の共有 ACL ではなく、まったく制限のない共有 ACL を取得します。

設定 パラメータ
ファイル共有のアクセス制御をスキップする fs.skipShareAccessControl=boolean

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