ייצוא נתונים ממופע Looker באירוח בצד הלקוח

אדמינים של מופעי Looker באירוח בצד הלקוח יכולים לשקול מעבר לסביבה שמתארחת ב-Looker, בעיקר כדי להחליף את התקורה של ניהול התשתית בנוחות מוגברת, בזמינות משופרת של תכונות ובאמינות מנוהלת. שימוש במופע שמתארח ב-Looker מצמצם באופן משמעותי את המאמץ שנדרש להתקנה, להגדרה ולתחזוקה של אפליקציית Looker, כי כל פונקציות ה-IT הנדרשות שקשורות לאפליקציית Looker מטופלות בשבילכם.

העברת מופע באירוח בצד הלקוח לסביבה באירוח Looker כוללת את השלבים העיקריים הבאים:

  1. קליטה והגדרה: פותחים כרטיס תמיכה עם צוות Looker וממלאים את השאלון בנושא העברה של Looker On-Prem. צוות Looker יוצר מופע חדש באירוח על סמך התשובות שלכם לשאלון.
  2. הצפנה: צוותי SRE של Looker יוצרים זוג מפתחות GnuPG ‏ (GPG) ומשתפים איתכם את המפתח הציבורי.
  3. ייצוא: אתם מפסיקים את מופע Looker ומייצאים את הנתונים שלו (מסד נתונים, מערכת קבצים ומפתח בניהול הלקוח (CMK)).
  4. העברת נתונים וייבוא: צוות Looker מייבא את הגיבוי למופע שמארח Looker ומאמת אותו.

בדף הזה מוסבר איך לבצע את המשימות שנדרשות בשלב 3: ייצוא:

לפני שמתחילים

כדי להשתמש בסקריפטים שבדף הזה לגיבוי הנתונים של המופע, צריך לוודא שהמופע, מסד הנתונים והגדרת ההצפנה של Looker עומדים בדרישות ההעברה.

הגדרות נדרשות

כדי להריץ את הסקריפטים שמתוארים בדף הזה, נדרשות הגרסאות הבאות של Looker ומסד הנתונים:

  • במכונה של Looker צריכה לפעול גרסת הפצה נתמכת של Looker.
  • המופע צריך להשתמש במסד נתונים שתואם ל-MySQL מגרסה 8.0.0 ואילך, כדי ש-Looker יוכל לעבד את קובץ סכימת מסד הנתונים המיוצא.

אם אתם משתמשים ב-AWS KMS, תוכלו לעבור להצפנת AES-256 GCM של Looker באמצעות השלבים שמתוארים בדף התיעוד בנושא שינוי מפתחות ההצפנה של Looker.

כדי לוודא שהנתונים מאוחסנים בצורה תקינה והתווים מוצגים בצורה נכונה, צריך להגדיר את השוואה (collation) של מסד הנתונים ל-utf8mb4 (מומלץ) או ל-utf8. שימוש באוספי תווים אחרים עלול לגרום להשחתת נתונים או לשגיאות בשמירת תווים מיוחדים.

הערכת המופע לצורך העברה

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

כדי לבצע את ההערכה, צריך לשכפל את מאגר GitHub שמכיל את הסקריפט של Looker להערכת השימוש במחשוב וביצועי מערכת הקבצים של מופע Looker. הסקריפט הזה מסתמך על Go Looker SDK והוא זמין במאגר Looker O2C Migration Evaluation ב-GitHub.

בקטעים הבאים מוסבר אילו שלבים צריך לבצע כדי להריץ את הסקריפט שמעריך את המופע, כולל המשימות הבאות:

  1. משכפלים את המאגר שמכיל את הסקריפט.
  2. יצירת פרטי כניסה ל-API
  3. מריצים את הפקודה כדי לבדוק את השימוש ב-Compute.
  4. מריצים את הפקודה כדי לבדוק את הביצועים של מערכת הקבצים.

התקנת כלי הערכה

מתקינים במחשב את הכלים, השפות וערכות ה-SDK הבאות שבהם תשתמשו לגיבוי נתוני מופע Looker:

  1. Git
  2. שפת התכנות Go
  3. Go Looker SDK

שכפול מאגר ההערכה של העברת Looker O2C

כדי לשכפל את המאגר שמכיל את סקריפט ההערכה, מריצים את הפקודה הבאה מהספרייה הראשית של המשתמש שיבצע את הניתוח והגיבוי:

git clone https://github.com/looker-open-source/looker-o2c-migration-tool.git

יצירת פרטי כניסה ל-API

סקריפט ההערכה משתמש ב-Looker SDK כדי לאחזר נתונים, ופועל כלקוח API ששולח בקשות ברשת לשרת Looker. למשתמש האדמין שמריץ את הסקריפט צריך להיות מזהה לקוח וסוד לקוח של Looker API. כדי ליצור פרטי כניסה ל-API עבור חשבון האדמין שלכם ב-Looker, פועלים לפי השלבים הבאים:

  1. עוברים לדף משתמשים בחלונית אדמין.
  2. בוחרים באפשרות עריכה ליד החשבון.
  3. בדף הפרטים של החשבון, מאתרים את הקטע API3 Keys (מפתחות API3) ובוחרים באפשרות Edit Keys (עריכת מפתחות).
  4. בוחרים באפשרות מפתח API חדש.
  5. מערכת Looker תציג מזהה לקוח וסוד לקוח. מעתיקים את הערכים האלה ושומרים אותם במקום מאובטח.

יצירת מידע על השימוש במשאבי מחשוב

כדי להשתמש בסקריפט להערכת המיגרציה כדי לקבל מידע על השימוש במחשוב של המופע, מריצים את הפקודה הבאה במכונה שיש לה חיבור רשת ישיר לנקודת קצה ל-API של אפליקציית Looker:

cd looker-o2c-migration-tool
go run main.go --client-id API_CLIENT_ID --client-secret API_CLIENT_SECRET --looker-instance-address LOOKER_INSTANCE_ADDRESS --output-csv-path OUTPUT_CSV_PATH --ssl=SSL

מחליפים את מה שכתוב בשדות הבאים:

  • API_CLIENT_ID: מזהה הלקוח מהשלב הקודם.
  • API_CLIENT_SECRET: סוד הלקוח מהשלב הקודם.
  • LOOKER_INSTANCE_ADDRESS: הכתובת של מופע Looker, כולל הפרוטוקול.
  • OUTPUT_CSV_PATH: הנתיב לפלט ה-CSV, לדוגמה /content/compute_usage_info.csv.
  • SSL: האם החיבור בין המחשב שלכם לבין מכונת Looker צריך להשתמש באישור SSL. ערך ברירת המחדל הוא true.

הפקודה הזו יוצרת קובץ CSV עם פרטי השימוש במופע Looker.

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

הסקריפט הזה מציג את הגודל ואת מספר הקבצים של ספריות נפרדות שקשורות למודל, וגם בדיקה של מהירות הכתיבה לדיסק. ההנחה היא ש-Looker מותקן בספריית הבית של משתמש עם שם המשתמש looker, כפי שמתואר בדף התיעוד Installing the Looker application.

כדי להשתמש בסקריפט להערכת המיגרציה ולקבל מידע על הביצועים של מערכת הקבצים במופע שלכם, מריצים את הפקודה הבאה במחשב שבו מתארח מופע Looker:

cd looker-o2c-migration-tool
go run main.go --file-system-evaluation --output-csv-path OUTPUT_CSV_PATH

מחליפים את מה שכתוב בשדות הבאים:

  • OUTPUT_CSV_PATH: הנתיב של פלט ה-CSV, למשל ‎ /content/fs_perf_info.csv

הפקודה הזו יוצרת קובץ CSV עם נתוני הביצועים של מערכת הקבצים של מופע Looker.

הכנת המופע לגיבוי

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

התקנה ואימות של יחסי תלות

כשמתקינים את יחסי התלות שנדרשים לגיבוי הנתונים של מופע Looker, צריך להשתמש במנהל החבילות שמוגדר כברירת מחדל בהפצת Linux. הגרסאות הבאות תואמות לחבילות שמופיעות ב-Debian 12 (Bookworm) ומייצגות את הגרסה המינימלית של כל חבילה נדרשת.

מתקינים את החבילות הבאות במכונה שבה תגבו את נתוני המכונה של Looker:

  1. bash 5.2.15

  2. gpg 2.2.40 (GnuPG) – תהליך יצירת הגיבוי משתמש ב-gpg כדי להצפין את הגיבויים של מסד הנתונים ומערכת הקבצים לפני שהם משותפים עם צוות Looker.

  3. libgcrypt 1.10.2

  4. Gpg-agent 2.2.40 (GnuPG)

  5. GNU tar 1.34

  6. gzip 1.12

  7. md5sum 9.1 (GNU coreutils)

  8. GNU grep 3.11 (עם תמיכה ב-PCRE2 10.42 2022-12-11 ואילך)

  9. GNU sed 4.9

  10. mariadb-client-core (צריך להתחבר ל-MySQL 8.X)

לדוגמה, כדי להתקין את החבילות הנדרשות במערכת Linux שמבוססת על Debian, מריצים את הפקודות הבאות:

sudo apt-get update
sudo apt-get install -y \
    bash \
    gnupg \
    libgcrypt20 \
    gnupg-agent \
    tar \
    gzip \
    coreutils \
    grep \
    sed \
    mariadb-client-core

הגדרת משתנים

הפקודות הבאות מגדירות כמה משתנים שישמשו בתהליך יצירת הגיבוי. מגדירים אותם בכל מסוף שבו מתכננים להריץ פקודות נוספות.

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

הפקודה הבאה תגדיר את הנתיב לספריית הגיבוי שבה ייווצרו הקבצים. מריצים את הפקודות האלה בכל טרמינל שבו מתכננים לבצע את משימות יצירת הגיבוי הספציפיות לספרייה:

BACKUP_DIRECTORY="DIRECTORY_PATH"
BACKUP_DIRECTORY="${BACKUP_DIRECTORY%/}"

מחליפים את מה שכתוב בשדות הבאים:

  • DIRECTORY_PATH: הנתיב שבו ייווצרו קובצי הגיבוי. צריך לוודא שהספרייה הזו גדולה מספיק כדי להכיל את הגיבוי. לא לכלול את התו / שבתחילת הנתיב.

משתנה סביבה: הגדרת נתיב המקור לגיבוי של מערכת קבצים

הגדרת המשתנה של נתיב המקור של הגיבוי של מערכת הקבצים מניחה ש-looker הוא שם המשתמש של המשתמש שהתקין את אפליקציית Looker, וההתקנה בוצעה בספריית הבית של המשתמש, כפי שמתואר בדף התיעוד בנושא התקנת אפליקציית Looker. אם התקנתם את Looker בספרייה אחרת, אתם צריכים לשנות את המשתנה. מגדירים את המשתנה הזה בטרמינל שבו מריצים את הגיבוי של מערכת הקבצים של Looker:

  LOOKER_USER="looker"
  ROOT_LOOKER_FS_DIRECTORY="$(getent passwd "$LOOKER_USER" | cut -d: -f 6)"

משתנה סביבה: הגדרה של מופע Looker חדש

מגדירים משתנים שמייצגים את השם והמזהה הייחודי של המופע שאליו מייבאים. צוות Looker מספק לכם את הערכים של המשתנים האלה.

export luid='LOOKER_HOSTED_INSTANCE_ID'
export customer='LOOKER_HOSTED_INSTANCE_NAME'

מחליפים את מה שכתוב בשדות הבאים:

  • LOOKER_HOSTED_INSTANCE_ID: המזהה הייחודי של מופע Looker שאליו תבצעו את ההעברה
  • LOOKER_HOSTED_INSTANCE_NAME: השם של מופע Looker החדש שאליו תבצעו את ההעברה

משתנה סביבה: מפתח הצפנה

הפקודה הבאה תתקין מפתח GPG ציבורי במופע שלכם. מגדירים אותו בכל טרמינל שבו יופעלו פקודות הגיבוי של המופע (Looker יספק לכם את הערך של המשתנה הזה):

base64_encryption_key="BASE64_ENCRYPTION_KEY"

מחליפים את מה שכתוב בשדות הבאים:

  • BASE64_ENCRYPTION_KEY: מפתח ההצפנה שסקריפט הגיבוי משתמש בו כדי להצפין את הגיבויים. צוות Looker מספק לכם את הערך של המשתנה הזה.

יצירת מפתח הצפנה ציבורי

הפקודה הבאה תתקין מפתח ציבורי pgp במופע שלכם. סקריפטים הגיבוי משתמשים במפתח הזה כדי להצפין את הגיבוי. מגדירים אותו בכל מסוף שבו יופעלו הפקודות לגיבוי המופע.

echo -n "${base64_encryption_key}" | base64 -d | gpg --import

גיבוי הנתונים של המכונה

מריצים את הפקודות הבאות כדי לארוז בצורה מאובטחת את הרכיבים הקריטיים של מערכת הקבצים וסכימת מסד הנתונים של המופע, כך שאפשר יהיה להעביר אותם ולשחזר אותם במופע חדש של Looker (מקורי) שמתארח ב-Looker. הסקריפט יבצע את הגיבוי באמצעות md5sum כדי לאמת את שלמות הגיבוי. לבסוף, הוא מצפין את הגיבוי באמצעות GnuPG לפני ייצוא התוצאות בפורמט קובץ MD5.

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

מריצים את הפקודות האלה מהספרייה שבה רוצים לייצא את נתוני הגיבוי, ובאותו מסוף שבו הגדרתם את משתני הסביבה. בוחרים את הכרטיסייה של סוג המופע שמתארח ב-Looker שאליו מתכננים להעביר את הנתונים.

Looker (original)

מריצים את הפקודה הזו כדי לוודא שכל ה-hooks המותאמים אישית בצד השרת של Git שמשמשים לאימות נתונים או לאוטומציה של תהליכי עבודה נכללים בגיבוי:

cd "${BACKUP_DIRECTORY}"

function findHookPath() {
rootPath=$1

find \
    ${rootPath}/models{-user-*,}/*/.git/config \
    -maxdepth 0 \
    -type f \
    -xtype f \
  | xargs -I {} grep hooksPath {} \
  | sort \
  | uniq \
  | sed -r -e 's/^.+hooksPath = //g' \
  | xargs -I {} dirname {} \
  | sort \
  | uniq \
  | sed -r -e "s#\.\.\/\.\.\/#${rootPath}/#g"

}

hooksPath=$(findHookPath "${ROOT_LOOKER_FS_DIRECTORY}" | sort | uniq | head -1)

מריצים את הפקודה הזו כדי לרשום את כל הספריות הנדרשות ולגבות אותן:

time find "${ROOT_LOOKER_FS_DIRECTORY}" \
  -maxdepth 1 \
  -type d \
  \( \
         -name marketplace \
      -o -name bare_models \
      -o -name deploy_keys \
      -o -name models \
      -o -name remote_dependencies \
      -o -name models-self-service \
      -o -name "models-user-*" \
      -o -wholename "${hooksPath}" \
  \) | tar \
  --gzip \
  --create \
  --file="${customer}_looker_fs_backup.tar.gz" \
  --files-from=-

מריצים את הפקודה הזו כדי ליצור 'טביעת אצבע' של הגיבוי לפני ההצפנה:

time md5sum "${customer}_looker_fs_backup.tar.gz" > "${customer}_fs_backup.md5"

מריצים את הפקודה הבאה כדי להצפין את הגיבוי:

time gpg --encrypt --yes \
  --output "${customer}_looker_fs_backup.tar.gz.enc" \
  --recipient "looker-devops+migration-${luid}@google.com" \
  "${customer}_looker_fs_backup.tar.gz"

מריצים את הפקודה הזו כדי לקבל 'טביעת אצבע' נוספת אחרי ההצפנה:

time md5sum "${customer}_looker_fs_backup.tar.gz.enc" >> "${customer}_fs_backup.md5"

סכום הבדיקה עוזר ל-Looker לאמת את התקינות של גיבוי הנתונים.

Looker (Google Cloud core)‎

מריצים את הפקודה הזו כדי לוודא שכל ה-hooks המותאמים אישית בצד השרת של Git שמשמשים לאימות נתונים או לאוטומציה של תהליכי עבודה נכללים בגיבוי:

cd "${BACKUP_DIRECTORY}"

function findHookPath() {
rootPath=$1

find \
    ${rootPath}/models{-user-*,}/*/.git/config \
    -maxdepth 0 \
    -type f \
    -xtype f \
  | xargs -I {} grep hooksPath {} \
  | sort \
  | uniq \
  | sed -r -e 's/^.+hooksPath = //g' \
  | xargs -I {} dirname {} \
  | sort \
  | uniq \
  | sed -r -e "s#\.\.\/\.\.\/#${rootPath}/#g"

}

hooksPath=$(findHookPath "${ROOT_LOOKER_FS_DIRECTORY}" | sort | uniq | head -1)

מריצים את הפקודה הזו כדי לרשום את כל הספריות הנדרשות ולגבות אותן:

time find "${ROOT_LOOKER_FS_DIRECTORY}" \
  -maxdepth 1 \
  -type d \
  \( \
         -name marketplace \
      -o -name bare_models \
      -o -name deploy_keys \
      -o -name models \
      -o -name remote_dependencies \
      -o -name models-self-service \
      -o -name "models-user-looker" \
      -o -wholename "${hooksPath}" \
  \) | tar \
  --gzip \
  --create \
  --file="${customer}_looker_fs_backup.tar.gz" \
  --files-from=-

מריצים את הפקודה הזו כדי ליצור 'טביעת אצבע' של הגיבוי לפני ההצפנה:

time md5sum "${customer}_looker_fs_backup.tar.gz" > "${customer}_fs_backup.md5"

מריצים את הפקודה הבאה כדי להצפין את הגיבוי:

time gpg --encrypt --yes \
  --output "${customer}_looker_fs_backup.tar.gz.enc" \
  --recipient "looker-devops+migration-${luid}@google.com" \
  "${customer}_looker_fs_backup.tar.gz"

מריצים את הפקודה הזו כדי לקבל 'טביעת אצבע' נוספת אחרי ההצפנה:

time md5sum "${customer}_looker_fs_backup.tar.gz.enc" >> "${customer}_fs_backup.md5"

סכום הבדיקה עוזר ל-Looker לאמת את התקינות של גיבוי הנתונים.

הסקריפט הזה יוצר את הקבצים הבאים עבור החלק של מערכת הקבצים בהעברה:

  1. ${customer}_looker_fs_backup.tar.gz.enc: הגיבוי המוצפן והדחוס של מערכת הקבצים.
  2. ${customer}_fs_backup.md5: הקובץ שמכיל את סכומי הבדיקה לאימות.

גיבוי של סכימת מסד הנתונים של המופע

הפקודות האלה מכינות את הסביבה לגיבוי של סכימת מסד הנתונים של מופע Looker, על ידי יצירה של קובץ הגדרה זמני שמאפשר לכלי העברה להתחבר למסד הנתונים הפנימי של מופע Looker. במקום להעביר נתונים רגישים כמו שמות משתמשים ושמות מארחים ישירות לפקודות, הסקריפט הזה כותב אותם לקובץ התצורה, שכלים כמו mysqldump ו-mysql יכולים לקרוא.

מריצים את הפקודה הבאה כדי ליצור את קובץ התצורה הזמני ולהגדיר הגדרות שונות:

export database_name="DATABASE_SCHEMA_NAME"
temporary_cnf_file="$(mktemp --tmpdir=. --suffix .cnf)"
echo "[client]
host=DATABASE_HOST
port=DATABASE_PORT
user=DATABASE_USER
password=PASSWORD

[mariadb-dump]
no-sandbox

[mysql]
no-auto-rehash

[mysqldump]
no-tablespaces
loose_set-gtid-purged=OFF
single-transaction
quick
max_allowed_packet=1G
ignore-table=${database_name}.LookerQ_LookerBQ_ACTIVEMQ_ACKS
ignore-table=${database_name}.LookerQ_LookerBQ_ACTIVEMQ_LOCK
ignore-table=${database_name}.LookerQ_LookerBQ_ACTIVEMQ_MSGS

[Server-specific settings - mostly for mysqld/mariadbd processes]
max_allowed_packet = 1024M
" > ${temporary_cnf_file}

מחליפים את מה שכתוב בשדות הבאים:

  • DATABASE_HOST: ה-DNS או כתובת ה-IP של מסד הנתונים של Looker.
  • DATABASE_PORT: יציאת מסד הנתונים.
  • DATABASE_USER: שם המשתמש במסד הנתונים להפעלת הייצוא.
  • PASSWORD: הערך בטקסט פשוט של הסיסמה של המשתמש שיבצע את הייצוא. מערכת Looker לא תבדוק את הסיסמה הזו. עם זאת, אם אתם מעדיפים לא להשתמש בדרישה לסיסמה בטקסט גלוי, אתם יכולים להשאיר את המשתנה הזה ריק, והמערכת תציג לכם בקשה להזין את הסיסמה כשאתם מריצים פקודות גיבוי.
  • DATABASE_SCHEMA_NAME: השם של מסד הנתונים או הסכימה.

אם כדי להתחבר למסד הנתונים נדרש אישור SSL, מוסיפים את הנתיבים הבאים לקובץ התצורה הזמני:

מגדירים את הנתיב לקובץ של רשות האישורים (CA):

ssl-ca=/etc/mysql/certs/ca.pem

מגדירים את הנתיב לאישור ה-SSL של הלקוח:

ssl-cert=/etc/mysql/certs/client-cert.pem

מגדירים את הנתיב למפתח הפרטי של הלקוח ב-SSL:

ssl-key=/etc/mysql/certs/client-key.pem

למסדי נתונים של MySQL, נדרש SSL ואימות של אישור השרת:

loose-ssl-mode=VERIFY_CA

במסדי נתונים של MariaDB, צריך אישור SSL ולאמת את אישור השרת:

loose-ssl-verify-server-cert=ON

מריצים את הפקודות הבאות כדי לבצע גיבוי של סכימת מסד הנתונים, להצפין אותו ולאמת אותו.

מנווטים לספרייה שבה רוצים לאחסן את הגיבוי:

cd "${BACKUP_DIRECTORY}"

מריצים את הפקודה הבאה כדי לגבות את מסד הנתונים:

time mysqldump \
    --defaults-file="${temporary_cnf_file}" \
    "${database_name}" \
  | gzip > "${customer}_looker_db_backup.sql.gz"

מריצים את הפקודה הזו כדי ליצור 'טביעת אצבע' של הגיבוי לפני ההצפנה:

time md5sum "${customer}_looker_db_backup.sql.gz" >> "${customer}_db_backup.md5"

מריצים את הפקודה הבאה כדי להצפין את הגיבוי:

time gpg --encrypt --yes \
    --output "${customer}_looker_db_backup.sql.gz.enc" \
    --recipient "looker-devops+migration-${luid}@google.com" \
    "${customer}_looker_db_backup.sql.gz"

מריצים את הפקודה הזו כדי לקבל 'טביעת אצבע' נוספת אחרי ההצפנה:

time md5sum "${customer}_looker_db_backup.sql.gz.enc" >> "${customer}_db_backup.md5"

הסקריפט הזה יוצר את הקבצים הבאים עבור החלק של סכימת מסד הנתונים בהעברה:

  1. ${customer}_looker_db_backup.sql.gz.enc: גיבוי מוצפן ודחוס של סכימת מסד הנתונים.
  2. ${customer}_db_backup.md5: הקובץ שמכיל את סכומי הבדיקה לאימות.

הצפנה של מפתח ההצפנה בניהול הלקוח (CMK)

הפקודות הבאות יאמתו, יפרמטו ויצפינו את ה-CMK. ללא ההצפנה הזו, אי אפשר לפענח מסד נתונים שהועבר בסביבת Looker החדשה.

זהירות: את הפקודה הבאה של CMK צריך להריץ רק פעם אחת במכונה שמארחת את מסד הנתונים הפנימי או במכונה שמארחת את מופע Looker, אבל לא בשניהם.

קודם מגדירים משתנה עם ה-CMK הנוכחי, שצריך להיות בפורמט base64:

CMK="CUSTOMER_CMK_KEY"

מחליפים את מה שכתוב בשדות הבאים:

  • CUSTOMER_CMK_KEY: הערך של ה-CMK

לאחר מכן מריצים את הפקודות הבאות כדי ליצור קובץ מפתח CMK, ליצור את סיכום הביקורת של ה-CMK המפוענח, להצפין את קובץ ה-CMK וליצור את סיכום הביקורת של ה-CMK המוצפן:

echo -n "${CMK}" > "${customer}_looker_cmk_key"

time md5sum "${customer}_looker_cmk_key" >> "${customer}_cmk_key.md5"

time gpg --encrypt --yes \
  --output "${customer}_looker_cmk_key.enc" \
  --recipient "looker-devops+migration-${luid}@google.com" \
  "${customer}_looker_cmk_key"

time md5sum "${customer}_looker_cmk_key.enc" >> "${customer}_cmk_key.md5"

הסקריפט הזה יוצר את הקבצים הבאים עבור החלק של CMK בהעברה:

  • ${customer}_looker_cmk_key.enc: קובץ ה-CMK המוצפן
  • ${BACKUP_DIRECTORY}/${customer}_cmk_key.md5: הקובץ שמכיל את סכומי הביקורת לאימות

הכנת קובצי ההעברה

הסקריפטים שהפעלתם עד עכשיו יצרו את הקבצים הבאים:

  • compute_usage_info.csv: קובץ ה-CSV שמכיל מידע על השימוש במחשוב של המופע
  • fs_perf_info.csv: קובץ ה-CSV שמכיל מידע על הביצועים של מערכת הקבצים במופע
  • ${customer}_looker_fs_backup.tar.gz.enc: הגיבוי המוצפן והדחוס של מערכת הקבצים
  • ${customer}_fs_backup.md5: הקובץ שמכיל את סכומי הביקורת לאימות
  • ${customer}_looker_db_backup.sql.gz.enc: גיבוי מוצפן ודחוס של סכימת מסד הנתונים
  • ${customer}_db_backup.md5: הקובץ שמכיל את סכומי הביקורת לאימות
  • ${customer}_cmk_key.md5: הקובץ שמכיל את סכומי הביקורת לאימות
  • ${customer}_looker_cmk_key.enc: קובץ ה-CMK המוצפן

כדי לשלב את קובצי ה-MD5 לקובץ יחיד בשם ${customer}_backup.md5, מריצים את הפקודה הבאה בספריית הגיבוי:

cat \
    "${customer}_db_backup.md5" \
    "${customer}_fs_backup.md5" \
    "${customer}_cmk_key.md5" \
  | sort | uniq \
  > "${customer}_backup.md5"

אימות של פריטי הגיבוי

כדי לוודא שקובצי הגיבוי שלכם מלאים, מאובטחים ומוכנים להעברה, אתם יכולים להשתמש בכלי Looker On-Prem Data Verifier. הכלי הזה מבצע אימות מקיף, כולל בדיקה של סכומי ביקורת מסוג MD5, מפתחות הצפנה מסוג GPG, מבנה מסד הנתונים ותוקף מפתחות ה-CMK.

התקנת כלי האימות

כדי להריץ את כלי האימות, צריך להתקין במחשב את Go ואת GnuPG.

כדי לשכפל את המאגר ולבנות את הכלי, מריצים את הפקודות הבאות:

git clone https://github.com/looker-open-source/customer-scripts.git
cd customer-scripts/onprem-data-verifier
go build -o onprem-verifier main.go

הפעלת כלי האימות

הכלי פועל על התיקייה שמכילה את קובצי הגיבוי. לפני שמריצים את הכלי, מוודאים שכל קובצי החובה (ארבעה ארטיפקטים מוצפנים ושלושה ארטיפקטים לא מוצפנים) נמצאים ב-‎ ${BACKUP_DIRECTORY}‎.

מריצים את הפקודה הבאה כדי לאמת את הארטיפקטים:

./onprem-verifier \
  --backupDir "${BACKUP_DIRECTORY}" \
  --customerName "${customer}" \
  --luid "${luid}"

אם הפעולה תצליח, הכלי ייצור קובץ metadata.json. חובה לכלול את הקובץ הזה כשמעבירים את פריטי הגיבוי לצוות Looker.

העברת הקבצים

בסיום תהליך הגיבוי וההצפנה, אמורים להיות לכם הקבצים הבאים:

  • ${customer}_looker_db_backup.sql.gz.enc
  • ${customer}_looker_fs_backup.tar.gz.enc
  • ${customer}_looker_cmk_key.enc
  • ${customer}_backup.md5
  • metadata.json
  • compute_usage_info.csv
  • fs_perf_info.csv

מעבירים את הקבצים האלה לצוות Looker כדי לייבא אותם למופע שמתארח ב-Looker.