פריסת המחבר של Microsoft Windows File Systems

אתם יכולים להגדיר את Google Cloud Search כך שיציג תוצאות מהשיתופים של הארגון ב-Microsoft Windows, בנוסף לתוכן שלכם ב-Google Workspace. משתמשים במחבר של מערכות הקבצים של Google Cloud Search ומגדירים אותו לגשת לשיתופי Windows ספציפיים. מכונה אחת של המחבר יכולה לתמוך בכמה שיתופי Microsoft Windows.

שיקולים חשובים

עדכונים אוטומטיים רציפים

כברירת מחדל, המחבר עוקב באופן רציף אחרי נתיבי ההתחלה (ערכים מ-fs.src בקובץ התצורה של המחבר) כשהמחבר מופעל. כשמערכת הקבצים מדווחת על שינויים בתוכן או באמצעי בקרת הגישה, המחבר מופעל כדי לסרוק מחדש את מערכת הקבצים. הסריקה מחדש עשויה להיות צורכת משאבים רבים. כדי להשבית את המעקב אחרי מערכת הקבצים, מגדירים את fs.monitorForUpdates לערך false. הפעולה הזו מפחיתה באופן משמעותי את השימוש במשאבים של המחבר, אבל היא גורמת לעיכוב בהצגת השינויים במחבר. מידע נוסף

בקרת גישה ב-DFS

מערכת ה-DFS מחילה בקרת גישה על הקישורים שלה, ובדרך כלל לכל קישור DFS יש רשימת ACL משלו. אחד המנגנונים שבהם נעשה שימוש ב-DFS הוא Access-based Enumeration‏ (ABE), שיכול להגביל את הקישורים של DFS שמוחזרים למשתמש. יכול להיות שמשתמשים יקבלו רק קבוצת משנה של קישורי ה-DFS, או אפילו רק קישור אחד כש-ABE מבודד ספריות בית מתארחות. כשהמחבר חוצה מערכת DFS, הוא מתייחס לרשימת ה-ACL של הקישור ב-DFS ולרשימת ה-ACL של השיתוף ביעד, ורשימת ה-ACL של השיתוף עוברת בירושה מרשימת ה-ACL של DFS.

מגבלות ידועות

  • מערכת קבצים: המחבר של מערכת הקבצים לא תומך בכוננים ממופה ובכוננים מקומיים.
  • Distributed File System: כונן ממופה ל-UNC DFS לא פועל כמו שצריך. חלק מרשימות ACL לא נקראו בצורה נכונה.
  • המחבר של מערכות הקבצים תומך במרחבי שמות ובקישורים של מערכת קבצים מבוזרת (DFS). עם זאת, המחבר תומך בקישורי DFS רק במרחב שמות של DFS, ולא בתיקיות הרגילות במרחב השמות של DFS.
  • אי אפשר ללחוץ על קישורי הקבצים שמוחזרים בכתובת cloudsearch.google.com. גם הקישורים לקובצים שמוחזרים על ידי Query API לא ניתנים ללחיצה ברוב הדפדפנים.

דרישות מערכת

דרישות מערכת
מערכת הפעלה
  • Windows Server 2016
  • Windows Server 2012
  • Windows Server 2008 R2
תוכנה
  • Java JRE 1.8 מותקנת במחשב שבו ירוץ המחבר של מערכות הקבצים של Google Cloud Search
פרוטוקולים של מערכת קבצים
  • Server Message Block ‏ (SMB) – SMB1
  • Server Message Block ‏ (SMB) – SMB2
  • Distributed File System ‏ (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 את ההרשאות הנדרשות למחבר:

  • מנהלי מערכת
  • משתמשים מתקדמים
  • מפעילי הדפסה
  • אופרטורים של שרתים

שלב 1. התקנת המחבר של מערכות הקבצים של Google Cloud Search

  1. מקבלים את מאגר המחבר מ-GitHub ומפתחים אותו.

    כדי להשתמש ב-git בשרת Windows:

    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. לוחצים על שכפול או הורדה הורדת קובץ zip.
    3. מבטלים את דחיסת החבילה.
    4. עוברים לספרייה החדשה:
      > cd windows-filesystems-connector
  2. יוצרים את המחבר. אם צריך, מתקינים את Apache Maven.

    > mvn package

    כדי לדלג על הבדיקות בזמן היצירה של המחבר, מריצים את הפקודה mvn package -DskipTests במקום mvn package.

  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. מוסיפים פרמטרים כצמדי מפתח/ערך לתוכן הקובץ, כמו בדוגמה הבאה:

    ### 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. יוצרים קובץ ASCII או UTF-8 בשם 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. (אופציונלי) הגדרת סוגי מדיה

כברירת מחדל, המחבר מנסה לזהות את סוג המדיה של כל קובץ באמצעות זיהוי סוג המדיה של 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: מריצים את המחבר של 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).

מסמך עזר בנושא פרמטרים של הגדרות אישיות

גישה למקור הנתונים

הגדרה פרמטר
מזהה מקור הנתונים api.sourceId=1234567890abcdef

חובה. מזהה המקור ב-Google Cloud Search שהוגדר על ידי האדמין של Google Workspace.

הנתיב לקובץ המפתח הפרטי של חשבון השירות api.serviceAccountPrivateKeyFile=./PrivateKey.json

חובה. קובץ המפתח של חשבון השירות של Google Cloud Search, שנועד לנגישות של המחבר של מערכות הקבצים של Google Cloud Search.

המזהה של מקור הזהות api.identitySourceId=x0987654321

חובה. מזהה מקור הזהויות ב-Cloud Search שהאדמין של Google Workspace הגדיר לסנכרון זהויות של Active Directory באמצעות GCDS.

גישה למערכת קבצים

הגדרה פרמטר
מערכות קבצים של מקור fs.src=path1[,path2, ...]

חובה. מציינים את מערכות קובצי המקור כמקור UNC אחד או יותר שמופרדים באמצעות המפריד שהוגדר על ידי fs.src.separator. אם משתמשים בתווים שאינם ב-Latin1, צריך לקודד אותם באמצעות תווים של Unicode לבריחה ב-Java.

תו המפריד של הנתיב

הגדרה פרמטר
תו המפריד של הנתיב fs.src.separator=separator-character

התו המפריד שמוגדר כברירת מחדל הוא ';‎'. אם נתיבי המקור מכילים נקודה-פסיק, אפשר להגדיר תו מפריד אחר, כמו פסיק (","), שלא יוצר התנגשויות עם תווים בנתיבים ולא שמור לסינטקס של קובץ המאפיינים עצמו.

אם הערך של fs.src.separator הוא מחרוזת ריקה, הערך של fs.src מטופל כנתיב יחיד.

התנהגות המחבר

הגדרה פרמטר
דומיין של Windows fs.supportedDomain=domain

נדרשת כדי לאפשר למשתמשים שהוגדרו באמצעות GCDS לגשת למסמכים דרך Cloud Search. מציינים שם דומיין NetBIOS יחיד של Active Directory.

הכללת חשבונות ברשימות 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, קובץ או תיקייה נחשבים מוסתרים אם המאפיין hidden של 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.preserveLastAccessTime מוגדר כ-ALWAYS). יכול להיות שהמחבר לא יוכל לשחזר את זמן הגישה האחרון של הקובץ אם למשתמש הניווט אין הרשאות מספיקות לכתוב מאפייני קובץ. כשהערך מוגדר כ-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 כדי לסרוק תוכן רק אם ניגשת אליו בשנה האחרונה.

אם מציינים את הערך 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 כדי לסרוק תוכן רק אם הוא השתנה בשנה האחרונה.

אם מציינים את הערך fs.lastModifiedDays, אי אפשר גם להגדיר ערך ל-fs.lastModifiedDate.

דילוג על בקרת הגישה לשיתוף קבצים

כברירת מחדל, המחבר שומר על תקינות בקרת הגישה כשהוא שולח רשימות של בקרת גישה (ACL) ל-API להוספה לאינדקס, כולל רשימות ה-ACL בספריית הקבצים המשותפת. עם זאת, בהגדרות מסוימות יכול להיות למחבר אין מספיק הרשאות לקרוא את רשימת ה-ACL של השיתוף. במקרים כאלה, המחבר לא מחזיר קבצים שנשמרים באותו שיתוף קבצים בתוצאות החיפוש.

אפשר להגדיר את המחבר כך שיתעלם מ-ACL השיתוף, כדי שהתוכן תמיד יופיע בתוצאות החיפוש. במקרה כזה, ה-API להוספה לאינדקס מקבל רשימת ACL של שיתוף עם הרשאות גישה רחבות במיוחד, במקום רשימת ה-ACL בפועל של השיתוף.

הגדרה פרמטר
דילוג על בקרת הגישה לשיתוף קבצים fs.skipShareAccessControl=boolean

מגדירים את הערך ל-false (ברירת המחדל) כדי לאכוף את רשימות ה-ACL של השיתוף. מגדירים את הערך כ-true כדי להתעלם מרשימות ה-ACL של השיתוף.