Microsoft Windows 파일 시스템 커넥터 배포

Google Workspace 콘텐츠 외에도 조직의 Microsoft Windows 공유에서 결과를 반환하도록 Google Cloud Search를 설정할 수 있습니다. Cloud Search 파일 시스템 커넥터를 사용하고 지정된 Windows 공유에 액세스하도록 구성합니다. 단일 커넥터 인스턴스가 여러 Microsoft Windows 공유를 지원할 수 있습니다.

중요 고려사항

파일 시스템 커넥터를 배포하기 전에 다음 고려사항을 검토하세요.

연속 자동 업데이트

기본적으로 커넥터는 시작 시 시작 경로 (구성 파일의 fs.src 값)를 지속적으로 모니터링합니다. 파일 시스템에서 콘텐츠 또는 액세스 제어의 변경사항을 보고하면 커넥터가 파일 시스템을 다시 크롤링합니다. 이 재크롤링은 리소스를 많이 사용할 수 있습니다. 모니터링을 사용 중지하려면 fs.monitorForUpdatesfalse로 설정합니다. 이렇게 하면 리소스 사용량이 줄어들지만 커넥터가 변경사항을 반영하는 시간이 지연됩니다. 자세히 알아보기

DFS 액세스 제어

DFS 시스템은 링크에 액세스 제어를 적용하며 일반적으로 각 DFS 링크에는 자체 ACL이 있습니다. DFS는 액세스 기반 열거 (ABE)를 사용하여 사용자에게 반환되는 링크를 제한합니다. ABE가 홈 디렉터리를 격리하면 사용자에게 DFS 링크의 일부만 표시되거나 하나의 링크만 표시될 수 있습니다. DFS 시스템을 순회할 때 커넥터는 DFS 링크 ACL과 대상의 공유 ACL을 따릅니다. 공유 ACL은 DFS ACL에서 상속됩니다.

알려진 제한사항

이 섹션에는 파일 시스템 커넥터의 알려진 제한사항이 나열되어 있습니다.

  • 파일 시스템: 커넥터는 매핑된 드라이브 또는 로컬 드라이브를 지원하지 않습니다.
  • 분산 파일 시스템: UNC DFS에 매핑된 드라이브가 올바르게 작동하지 않으며 일부 ACL을 올바르게 읽지 못할 수 있습니다.
  • 커넥터는 DFS 네임스페이스 및 링크를 지원하지만 DFS 네임스페이스의 일반 폴더는 지원하지 않습니다.
  • cloudsearch.google.com의 파일 링크 또는 Query API에서 반환된 파일 링크는 대부분의 브라우저에서 클릭할 수 없습니다.

시스템 요구사항

파일 시스템 커넥터를 배포하기 전에 호스트 머신이 다음 요구사항을 충족하는지 확인하세요.

시스템 요구사항
운영체제
  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2
소프트웨어
  • 커넥터를 실행하는 컴퓨터에 자바 JRE 1.8 설치
파일 시스템 프로토콜
  • 서버 메시지 블록(SMB) - SMB1
  • 서버 메시지 블록(SMB) - SMB2
  • 분산 파일 시스템(DFS)

지원되지 않음: 로컬 Windows 파일 시스템, NFS 2.0, NFS 3.0 또는 로컬 Linux 파일 시스템

커넥터 배포

다음 단계에 따라 파일 시스템 커넥터를 배포하세요.

기본 요건

커넥터를 배포하기 전에 환경에 다음 구성요소가 있는지 확인하세요.

  • 연결을 설정하기 위한 Google Workspace 정보:

    일반적으로 Google Workspace 관리자가 이러한 사용자 인증 정보를 제공할 수 있습니다.

  • Windows 계정에 충분한 권한이 있는지 확인합니다.

필수 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. 클론 또는 다운로드 > 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. 매개변수를 키-값 쌍으로 추가합니다. 예를 들면 다음과 같습니다.

    # 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단계: 파일 시스템 커넥터 실행

호스트 머신에서 커넥터를 실행합니다.

> 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를 사용하여 활성 디렉터리 ID를 동기화하기 위해 설정한 Cloud Search ID 소스 ID입니다.

파일 시스템 액세스

이러한 매개변수를 사용하여 크롤링할 파일 시스템 소스를 지정합니다.

설정 매개변수
소스 파일 시스템 fs.src=path1[,path2, ...]

필수 항목입니다. fs.src.separator로 구성된 구분자로 구분된 하나 이상의 UNC 소스로 소스 파일 시스템을 지정합니다. Latin1에 없는 문자를 사용하는 경우 자바 유니코드 이스케이프 문자를 사용하여 인코딩합니다.

경로 구분자 문자

설정 매개변수
경로 구분자 문자 fs.src.separator=separator-character

기본 구분 기호는 ';'입니다. 소스 경로에 세미콜론이 포함된 경우 경로의 문자와 충돌하지 않고 속성 파일 구문 자체에 예약되지 않은 다른 구분 기호(예: 쉼표(','))를 설정할 수 있습니다.

fs.src.separator 값이 빈 문자열이면 fs.src 값이 단일 경로로 처리됩니다.

커넥터 동작

이러한 매개변수를 사용하여 커넥터가 파일 시스템을 크롤링하는 방식을 조정합니다.

설정 매개변수
Windows 도메인 fs.supportedDomain=domain

GCDS로 설정된 사용자가 Cloud Search를 통해 문서에 액세스할 수 있도록 하려면 필요합니다. Active Directory의 단일 NetBIOS 도메인 이름으로 지정합니다.

ACLS에 계정 포함 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~15MB의 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입니다.