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

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

重要な考慮事項

継続的な自動更新

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

DFS のアクセス制御

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

既知の制限事項

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

システム要件

システム要件
OS
  • 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 Network File System(NFS)2.0、Sun Network File System(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. コネクタ ディレクトリに、mime-type.properties という名前の Latin-1 暗号化ファイルを作成します。
  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 という名前のバイナリと同じディレクトリにある)を指定します。

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

データソース アクセス

設定 パラメータ
データソースの 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

必須。Google Workspace 管理者がセットアップした Cloud Search ID ソースの ID。GCDS を使用して Active Directory の 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 MB の 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 です。

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

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 です。

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

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

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

デフォルトでは、コネクタはアクセス制御リスト(ACL)をインデックス API に送信するときにアクセス制御リスト(ファイル共有の ACL を含む)を保持します。ただし、設定によっては、共有 ACL の読み取りに必要な権限がコネクタにない可能性があります。この場合、そのファイル共有で管理されているファイルはコネクタから返されません。

コンテンツが常に検索結果にコンテンツを返すように、共有 ACL を無視するようにコネクタを設定できます。この場合、Indexing API は実際の共有 ACL ではなく、完全に制限の緩い共有 ACL を取得します。

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

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