Triển khai trình kết nối Hệ thống tệp của Microsoft Windows

Bạn có thể thiết lập Google Cloud Search để trả về kết quả từ các thư mục dùng chung của Microsoft Windows trong tổ chức, ngoài nội dung trên Google Workspace. Bạn sử dụng trình kết nối Hệ thống tệp của Cloud Search và định cấu hình trình kết nối này để truy cập vào các thư mục dùng chung được chỉ định trên Windows. Một phiên bản trình kết nối duy nhất có thể hỗ trợ nhiều thư mục chia sẻ trên Microsoft Windows.

Điểm quan trọng cần lưu ý

Trước khi triển khai trình kết nối Hệ thống tệp, hãy xem xét những điều sau.

Tự động cập nhật liên tục

Theo mặc định, trình kết nối liên tục giám sát các đường dẫn khởi động (giá trị từ fs.src trong tệp cấu hình) khi khởi động. Khi hệ thống tệp báo cáo các thay đổi đối với nội dung hoặc quyền kiểm soát truy cập, trình kết nối sẽ thu thập lại dữ liệu hệ thống tệp. Việc thu thập lại dữ liệu này có thể tốn nhiều tài nguyên. Để tắt tính năng theo dõi, hãy đặt fs.monitorForUpdates thành false. Điều này làm giảm mức sử dụng tài nguyên nhưng trì hoãn thời điểm mà trình kết nối phản ánh các thay đổi. Tìm hiểu thêm

Kiểm soát quyền truy cập vào DFS

Hệ thống DFS áp dụng quyền kiểm soát truy cập trên các đường liên kết của hệ thống này và thường thì mỗi đường liên kết DFS đều có ACL riêng. DFS sử dụng tính năng Liệt kê dựa trên quyền truy cập (ABE) để hạn chế các đường liên kết được trả về cho người dùng. Người dùng có thể chỉ thấy một số ít đường liên kết DFS hoặc chỉ thấy một đường liên kết khi ABE cô lập thư mục chính. Khi duyệt qua hệ thống DFS, trình kết nối sẽ tuân theo ACL liên kết DFS và ACL chia sẻ của mục tiêu; ACL chia sẻ sẽ kế thừa từ ACL DFS.

Các hạn chế đã biết

Phần này liệt kê các hạn chế đã biết của trình kết nối hệ thống tệp.

  • Hệ thống tệp: Trình kết nối không hỗ trợ ổ đĩa được liên kết hoặc ổ đĩa cục bộ.
  • Hệ thống tệp phân tán: Ổ đĩa được liên kết với một DFS UNC không hoạt động đúng cách và một số ACL có thể không được đọc chính xác.
  • Trình kết nối này hỗ trợ các vùng tên và đường liên kết DFS nhưng không hỗ trợ các thư mục thông thường trong vùng tên DFS.
  • Đường liên kết đến tệp trong cloudsearch.google.com hoặc do Query API trả về không thể nhấp vào trong hầu hết các trình duyệt.

Yêu cầu hệ thống

Trước khi triển khai trình kết nối Hệ thống tệp, hãy đảm bảo rằng máy chủ đáp ứng các yêu cầu sau:

Yêu cầu hệ thống
Hệ điều hành
  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2
Phần mềm
  • Java JRE 1.8 được cài đặt trên máy tính chạy trình kết nối
Giao thức hệ thống tệp
  • Khối thông báo của máy chủ (SMB) – SMB1
  • Khối thông báo của máy chủ (SMB) – SMB2
  • Hệ thống tệp phân tán (DFS)

Không được hỗ trợ: Hệ thống tệp cục bộ của Windows, NFS 2.0, NFS 3.0 hoặc hệ thống tệp cục bộ của Linux.

Triển khai trình kết nối

Hãy làm theo các bước sau để triển khai trình kết nối Hệ thống tệp.

Điều kiện tiên quyết

Trước khi triển khai trình kết nối, hãy đảm bảo môi trường của bạn có các thành phần sau:

Các quyền bắt buộc đối với tài khoản Microsoft Windows

Tài khoản Windows chạy trình kết nối phải có các quyền sau:

  • Liệt kê nội dung trong thư mục.
  • Đọc nội dung tài liệu.
  • Đọc các thuộc tính của tệp và thư mục.
  • Quyền đọc (ACL) đối với tệp và thư mục.
  • Viết các thuộc tính cơ bản.

Thành viên của một trong những nhóm này thường có đủ quyền: Quản trị viên, Người dùng nâng cao, Nhân viên vận hành máy in hoặc Nhân viên vận hành máy chủ.

Bước 1. Cài đặt trình kết nối

Tải xuống hoặc sao chép kho lưu trữ trình kết nối trên GitHub, sau đó tạo gói trình kết nối.

  1. Lấy kho lưu trữ trình kết nối trên GitHub và tạo kho lưu trữ đó.

    Cách sử dụng git trên máy chủ Windows:

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

    Cách tải trực tiếp:

    1. Chuyển đến windows-filesystems-connector.
    2. Nhấp vào Sao chép hoặc tải xuống > Tải tệp zip xuống.
    3. Giải nén gói và di chuyển đến thư mục.
  2. Tạo trình kết nối bằng Apache Maven:

    > mvn package
    Để bỏ qua các bài kiểm thử, hãy dùng mvn package -DskipTests.

  3. Giải nén tệp zip của trình kết nối vào thư mục cài đặt:

    > 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

Bước 2. Tạo tệp cấu hình

Sau khi cài đặt trình kết nối, hãy tạo một tệp cấu hình chứa các chế độ cài đặt cho trình kết nối.

  1. Trong thư mục trình kết nối, hãy tạo một tệp có tên connector-config.properties.
  2. Thêm các tham số dưới dạng cặp khoá-giá trị. Ví dụ:

    # 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
    

    Hãy xem Tài liệu tham khảo về các tham số cấu hình để biết các tham số dành riêng cho hệ thống tệp. Để xem danh sách các thông số phổ biến mà tất cả các trình kết nối Cloud Search đều sử dụng, hãy xem Các thông số trình kết nối do Google cung cấp.

Bước 3. Bật tính năng ghi nhật ký

Tạo một thư mục cho nhật ký và tạo một tệp cấu hình ghi nhật ký.

  1. Tạo một thư mục có tên logs trong thư mục trình kết nối.
  2. Tạo một tệp có tên logging.properties với nội dung sau:

    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
    

Bước 4. (Không bắt buộc) Định cấu hình các loại nội dung nghe nhìn

Trình kết nối cố gắng phát hiện các loại tệp đa phương tiện bằng cơ chế mặc định. Cơ chế này dựa vào các mục đăng ký trên Windows. Nếu thiếu một mục đăng ký cho đuôi tệp, thì trình kết nối có thể không phát hiện được đúng loại nội dung nghe nhìn. Nếu các loại nội dung nghe nhìn không được phát hiện chính xác hoặc nếu bạn muốn ghi đè loại mặc định cho một tiện ích, hãy làm theo các bước sau:

  1. Tạo một tệp có tên mime-type.properties trong thư mục trình kết nối.
  2. Nhập tiện ích và loại dưới dạng extension=media/type: properties xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet one=application/msonenote txt=text/plain pdf=application/pdf

Bước 5. Chạy trình kết nối Hệ thống tệp

Khởi chạy trình kết nối từ máy chủ lưu trữ:

> java -jar google-cloudsearch-windows-filesystems-connector-v1-0.0.3.jar -Djava.util.logging.config.file=logging.properties[ -Dconfig=my.config]

Theo mặc định, trình kết nối sẽ tìm một tệp cấu hình có tên là connector-config.properties trong thư mục nơi trình kết nối chạy. Nếu tệp cấu hình của bạn có tên khác hoặc nằm trong một thư mục khác, hãy sử dụng tham số -Dconfig để chỉ định đường dẫn của tệp đó.

Tài liệu tham khảo về thông số cấu hình

Các bảng sau đây liệt kê và mô tả các tham số dùng để định cấu hình trình kết nối Hệ thống tệp.

Truy cập nguồn dữ liệu

Cài đặt Tham số
Mã nguồn dữ liệu api.sourceId=1234567890abcdef

Bắt buộc. Mã nguồn của Cloud Search.

Tài khoản dịch vụ api.serviceAccountPrivateKeyFile=./PrivateKey.json

Bắt buộc. Đường dẫn đến tệp khoá tài khoản dịch vụ.

Mã nguồn nhận dạng api.identitySourceId=x0987654321

Bắt buộc. Mã nguồn nhận dạng Cloud Search do quản trị viên Google Workspace thiết lập để đồng bộ hoá danh tính trong Active Directory bằng GCDS.

Quyền truy cập vào hệ thống tệp

Sử dụng các tham số này để chỉ định các nguồn hệ thống tệp cần thu thập thông tin.

Cài đặt Tham số
Hệ thống tệp nguồn fs.src=path1[,path2, ...]

Bắt buộc. Chỉ định các hệ thống tệp nguồn dưới dạng một hoặc nhiều nguồn UNC được phân tách bằng dấu phân cách do fs.src.separator định cấu hình. Nếu bạn sử dụng các ký tự không có trong Latin1, hãy mã hoá các ký tự đó bằng mã thoát Unicode của Java.

Ký tự phân cách đường dẫn

Cài đặt Tham số
Ký tự phân cách đường dẫn fs.src.separator=separator-character

Dấu phân cách mặc định là ";". Nếu đường dẫn nguồn chứa dấu chấm phẩy, bạn có thể đặt một dấu phân cách khác, chẳng hạn như dấu phẩy (","), không xung đột với các ký tự trong đường dẫn và không được cú pháp của tệp thuộc tính dành riêng.

Nếu giá trị fs.src.separator là một chuỗi trống, thì giá trị fs.src sẽ được coi là một đường dẫn duy nhất.

Hành vi của trình kết nối

Sử dụng các tham số này để điều chỉnh cách trình kết nối thu thập dữ liệu hệ thống tệp.

Cài đặt Tham số
Miền Windows fs.supportedDomain=domain

Bắt buộc để cho phép những người dùng được thiết lập bằng GCDS truy cập vào tài liệu thông qua Cloud Search. Chỉ định dưới dạng một tên miền NetBIOS duy nhất của Active Directory.

Thêm tài khoản vào ACL fs.supportedAccounts=account-1[, account-2,...]

Danh sách tài khoản được phân tách bằng dấu phẩy để đưa vào ACL, bất kể đó là tài khoản tích hợp sẵn hay không.

Giá trị mặc định là BUILTIN\\Administrators,Everyone,BUILTIN\\Users, BUILTIN\\Guest,NT AUTHORITY\\INTERACTIVE, NT AUTHORITY\\Authenticated Users

Loại trừ các tài khoản tích hợp khỏi ACL fs.builtinGroupPrefix=prefix

Chỉ định tiền tố của tài khoản tích hợp. Tài khoản bắt đầu bằng tiền tố này được coi là tài khoản tích hợp và sẽ bị loại trừ khỏi danh sách kiểm soát truy cập (ACL).

Giá trị mặc định là BUILTIN\\

Cho phép lập chỉ mục các tệp và thư mục ẩn fs.crawlHiddenFiles=boolean

Đặt thành true để thu thập dữ liệu các tệp ẩn. Giá trị mặc định là false.

Cho phép lập chỉ mục danh sách thư mục được thu thập dữ liệu và các chế độ liệt kê Không gian tên DFS fs.indexFolders=boolean

Khi được đặt thành true (mặc định), khi trình kết nối thu thập dữ liệu một thư mục, trình kết nối sẽ tạo một đối tượng CONTAINER_ITEM. Khi được đặt thành false, trình kết nối sẽ tạo một đối tượng VIRTUAL_CONTAINER_ITEM.

Bật tính năng giám sát thay đổi hệ thống tệp fs.monitorForUpdates=boolean

Khi được đặt thành true (mặc định), trình kết nối sẽ tự động thu thập lại dữ liệu khi nội dung hoặc chế độ kiểm soát quyền truy cập thay đổi. Khi bạn đặt giá trị này thành false, mức sử dụng tài nguyên sẽ giảm nhưng các thay đổi sẽ chậm xuất hiện trong kết quả tìm kiếm.

Đặt kích thước tối đa của bộ nhớ đệm thư mục fs.directoryCacheSize=number-of-entries

Kích thước tối đa của bộ nhớ đệm thư mục. Trình kết nối sử dụng bộ nhớ đệm để xác định các thư mục ẩn nhằm tránh lập chỉ mục các tệp và thư mục trong thư mục ẩn.

Mặc định là 50.000 mục, thường tiêu thụ 10 – 15 MB RAM.

Giữ lại dấu thời gian

Sử dụng các tham số này để chỉ định cách trình kết nối xử lý việc giữ lại dấu thời gian.

Cài đặt Tham số
Giữ lại thời gian truy cập fs.preserveLastAccessTime=value

Khi thu thập dữ liệu tệp và thư mục, trình kết nối có thể thay đổi dấu thời gian truy cập gần đây nhất thành thời gian thu thập dữ liệu. Nếu thời gian truy cập gần đây nhất không được giữ lại, thì các hệ thống sao lưu và lưu trữ có thể không di chuyển các tệp và thư mục thích hợp sang bộ nhớ thứ cấp vì trình kết nối đã truy cập vào các tệp và thư mục đó.

Theo mặc định, fs.preserveLastAccessTime được đặt thành ALWAYS, tức là trình kết nối sẽ cố gắng giữ lại thời gian truy cập gần đây nhất. Nếu tài khoản người dùng chạy trình kết nối không có đặc quyền ghi thuộc tính tệp, thì trình kết nối không thể khôi phục thời gian truy cập gần đây nhất. Nếu được đặt thành ALWAYS và trình kết nối không thể giữ lại thời gian truy cập gần đây nhất, thì trình kết nối sẽ từ chối các yêu cầu thu thập dữ liệu cho hệ thống tệp để không làm thay đổi dấu thời gian của tệp.

Các giá trị có thể là:

  • ALWAYS: Trình kết nối cố gắng giữ lại thời gian truy cập gần đây nhất khi thu thập dữ liệu các tệp và thư mục. Nếu không thể giữ lại thời gian truy cập gần đây nhất, thì nó sẽ từ chối tất cả các yêu cầu thu thập dữ liệu tiếp theo cho hệ thống tệp để ngăn việc thay đổi dấu thời gian.
  • IF_ALLOWED: Trình kết nối cố gắng giữ lại thời gian truy cập gần đây nhất khi thu thập dữ liệu các tệp và thư mục. Công cụ này vẫn tiếp tục thu thập dữ liệu ngay cả khi một số dấu thời gian có thể không được giữ lại.
  • NEVER: Trình kết nối không cố gắng giữ lại thời gian truy cập gần đây nhất.
Chỉ thu thập thông tin về những tệp được truy cập sau một ngày nhất định fs.lastAccessedDate=YYYY-MM-DD

Chỉ thu thập dữ liệu nội dung nếu thời gian truy cập gần đây nhất là sau ngày được chỉ định (YYYY-MM-DD, định dạng ISO8601). Giá trị mặc định là disabled. Ví dụ: 2010-01-01 thu thập dữ liệu nội dung được truy cập sau khi bắt đầu năm 2010. Không thể dùng với fs.lastAccessedDays.

Chỉ thu thập dữ liệu những tệp đã được truy cập trong số ngày qua fs.lastAccessedDays=number-of-days

Chỉ thu thập dữ liệu nội dung nếu thời gian truy cập gần nhất nằm trong số ngày được chỉ định kể từ hiện tại. Mặc định là disabled. Hữu ích khi nội dung cũ sắp hết hạn; ví dụ: 365 thu thập dữ liệu nội dung được truy cập trong năm qua. Không thể dùng với fs.lastAccessedDate.

Chỉ thu thập thông tin những tệp được sửa đổi sau một ngày nhất định fs.lastModifiedDate=YYYY-MM-DD

Chỉ thu thập dữ liệu nội dung nếu thời gian sửa đổi gần đây nhất là sau ngày được chỉ định (YYYY-MM-DD, định dạng ISO8601). Giá trị mặc định là disabled. Ví dụ: 2010-01-01 thu thập dữ liệu nội dung được sửa đổi sau khi bắt đầu năm 2010. Không thể dùng với fs.lastModifiedDays.

Chỉ thu thập thông tin những tệp đã được sửa đổi trong số ngày vừa qua fs.lastModifiedDays=number-of-days

Chỉ thu thập thông tin nội dung nếu thời gian sửa đổi gần đây nhất nằm trong số ngày được chỉ định kể từ hiện tại. Mặc định là disabled. Hữu ích khi nội dung cũ sắp hết hạn; ví dụ: 365 thu thập dữ liệu về nội dung đã được sửa đổi trong năm qua. Không dùng được với fs.lastModifiedDate.

Bỏ qua danh sách kiểm soát truy cập (ACL) chia sẻ tệp

Bạn có thể đặt trình kết nối để bỏ qua ACL chia sẻ nếu trình kết nối không có quyền đọc các ACL đó. Sau đó, nội dung sẽ được trả về cùng với ACL chia sẻ cho phép.

Cài đặt Tham số
Bỏ qua danh sách kiểm soát quyền truy cập (ACL) chia sẻ fs.skipShareAccessControl=boolean

Đặt thành true để bỏ qua ACL chia sẻ. Giá trị mặc định là false.