בדף הזה מוסבר איך להתקין את אפליקציית Looker בפריסה באירוח בצד הלקוח.
האירוח של אפליקציית Looker לא תלוי במיקום הנתונים שלכם. הנתונים תמיד נשארים במסד הנתונים ולא מועתקים למופע Looker.
מפרטי הפריסה
אם אתם מתכוונים להפעיל את Looker ברשת שלא מתחברת לאינטרנט, יכול להיות שתצטרכו להגדיר שרת proxy כדי לתקשר עם שרת הרישיונות של Looker, או להשתמש בשירותי אינטרנט ללא שרתים שמבצעים רק קריאות אינטרנט, כמו BigQuery.
מתקינים את אפליקציית Looker במחשב ייעודי שעומד בדרישות המינימליות הבאות:
- מעבד (CPU) במהירות 1.2 GHz. מומלץ להשתמש במעבד עם שתי ליבות או יותר.
- זיכרון RAM פנוי בנפח 8GB.
- שטח פנוי בכונן בנפח 10GB.
- 2GB של נפח קובץ החלפה.
- Linux. אנחנו משתמשים ב-Ubuntu Linux (מהדורות LTS) לאירוח פנימי של Looker, ואנחנו ממליצים על כך ללקוחות שאין להם העדפה ל-Linux. עם זאת, אנחנו תומכים ב-Looker בגרסאות של כל הפצות ה-Linux העיקריות לארגונים, כולל RedHat, CentOS ו-Amazon Linux. Looker נתמך רק בגרסאות Linux עם ערכות הוראות x64.
Java OpenJDK 11.0.12+ או HotSpot 1.8 update 161+. Looker משתמש ב-OpenJDK (גרסה 11) כדי לשפר את הביצועים ואת השימוש בזיכרון. Looker ממליץ להשתמש ב-JDK במקום ב-JRE כדי ליהנות מהיתרונות של הכלים הנוספים לפתרון בעיות. בנוסף, מומלץ לעבור לעדכוני Java חדשים כשהם מתפרסמים. בשלב הזה אין תמיכה בגרסאות אחרות של Java, Oracle JDK ו-OpenJDK.
במערכת צריכים להיות
libsslו-libcrypt.so.הגדרות אזוריות וקידוד תווים: כדי לוודא ש-Looker מעבד ומציג נכון תווים בינלאומיים בכל חלקי האפליקציה, צריך להגדיר את סביבת השרת לשימוש בהגדרות אזוריות של UTF-8. הפונקציה הזו חיונית לטיפול בנתונים שמכילים מערכות תווים מרובות בייטים, כמו אלה שמשמשות ביפנית, בסינית ובעוד הרבה שפות אחרות. מומלץ להגדיר את משתני הסביבה הבאים במחשב או בקונטיינר שבו פועלת אפליקציית Looker:
export LANG=en_US.UTF-8 export LC_ALL=en_US.UTF-8אפשר להוסיף את הפקודות האלה לפרופיל של מעטפת הפקודות (לדוגמה,
~/.bashrc,~/.profile) או לקובצי התצורה של הסביבה לצורך הפריסה. אם לא מגדירים לוקאל UTF-8, עלולות להיות בעיות בקידוד התווים, שבהן תווים מיוחדים עשויים להופיע כסימני שאלה, תיבות או סמלים שגויים אחרים בממשק המשתמש של Looker, בהורדות ובתשובות של ה-API.צריך לאפשר תנועה נכנסת למכונה של Looker דרך יציאת TCP
9999.אם המשתמשים צריכים גישה ל-API, צריך לאפשר תעבורה נכנסת למופע Looker דרך יציאת TCP
19999.אם Looker מתחבר ל-AWS Redshift מרשת פרטית של AWS VPC, צריך להגדיר את ה-MTU ל-1500. מידע נוסף על ההגדרה הזו זמין בקטע הגדרת ה-MTU של מופע במאמר הזה של Amazon Web Services. אם Looker מזהה שהגדרת ה-MTU גדולה מ-1,500 במהלך בדיקת חיבור למסד נתונים, הוא מציג את השגיאה הבאה:
MTU of network interface eth0 is too large (> 1500). If Looker instance and Redshift cluster are within the same VPC, this warning can be ignored.ההגדרות הבאות של TCP keepalive. כדי שההגדרות יישמרו גם אחרי הפעלה מחדש, צריך להגדיר אותן בקובץ
/etc/sysctl.confאו בקובץ בספרייה/etc/sysctl.d:net.ipv4.tcp_keepalive_time=200 net.ipv4.tcp_keepalive_intvl=200 net.ipv4.tcp_keepalive_probes=5משתמש בשם
lookerבקבוצה בשםlookerכדי להריץ את אפליקציית Looker.ulimit למשתמש
lookerשל4096ומעלה. כדי לעשות את זה, מוסיפים את השורות הבאות לקובץ/etc/security/limits.conf:looker soft nofile 4096 looker hard nofile 4096סנכרון הזמן באמצעות NTP או פרוטוקול מקביל.
אסור לטעון את התיקייה
/tmpעם האפשרות noexec.lookerאסור להרכיב את ספריית הבית על נפח NFS.מומלץ להגדיר את אזור הזמן של השרת ל-UTC, אבל זו לא חובה.
נדרשת גרסה Git 2.39.1 ואילך ל-Looker 23.6 ואילך.
למרות שאין חובה להשתמש ב-Netcat, הוא יכול לעזור בפתרון בעיות בקישוריות לרשת. כדי להתקין את Netcat בשרת מבוסס Ubuntu, למשל, הפקודה הנפוצה היא:
sudo apt-get install netcatאם צריך, אפשר להגדיר שרת proxy לטיפול בבקשות HTTP(S) ש-Looker צריך לשלוח ל-core ב-localhost. כדי לתקשר עם שרת ה-proxy המקומי של Looker, צריך להוסיף כמה ארגומנטים מיוחדים ב-
lookerstart.cfg: מוסיפיםhttp.nonProxyHosts=localhostכדי לאפשר גישה ל-localhost של Looker בלי לעבור דרך ה-proxy.
כדי למנוע בעיות בתחזוקה וניגודי משאבים, לא מומלץ להשתמש בשרת Looker לאירוח אפליקציות אחרות.
הפעלה של ntpd או chronyd
NTP הוא ראשי תיבות של Network Time Protocol (פרוטוקול זמן רשת). היא מאפשרת לשעון המערכת של המארח לשמור תמיד על השעה הנכונה, וזה נחוץ כדי ש-Looker יפעל בצורה תקינה. לא נדרש שימוש בתוכנה מסוימת לסנכרון הזמן ב-Looker, כל עוד השעות נשארות מסונכרנות. לא צריך להפעיל שרת NTP, אלא רק את לקוח ה-NTP. אפשר להשתמש ב-chronyd במקום ב-NTP.
לקבלת מידע על הפעלת ntpd או chronyd, אפשר לעיין בתיעוד של ספק מערכת ההפעלה.
יצירת מפתח הצפנה
Looker משתמש בהצפנה מסוג AES-256 Galois/Counter Mode (GCM) כדי להצפין מידע אישי רגיש שמאוחסן באופן פנימי, כולל:
- גיבויים של מסד הנתונים הפנימי של Looker
- פרטי חיבור למסד נתונים ולשירות
- פרטי אימות משתמש
- ערכים של מאפייני משתמש
- נתוני לקוחות שנשמרים במטמון או מוכנים למשלוח
כדי לקבל רשימה מפורטת של הנתונים שמוצפנים ב-Looker, אפשר לפתוח בקשת תמיכה.
הנתונים מוצפנים באמצעות מפתח נתונים ייחודי, והם כוללים מעטפת הצפנה חתומה עם מספר גרסה כדי להבטיח אימות. במצב הזה נדרש שימוש במפתח מאסטר חיצוני של הלקוח (CMK). המפתח CMK משמש לגזירה, להצפנה ולפענוח של המפתח להצפנת מפתחות הצפנה (KEK), שבתורו משמש לגזירה, להצפנה ולפענוח של מפתחות נתונים.
ההצפנה משמשת רק למסד הנתונים הפנימי ולמטמון של Looker. ההצפנה ב-Looker לא משפיעה על מסדי נתונים של לקוחות בשום צורה. בנוסף, רק נתונים סטטיים (נתונים שמאוחסנים בדיסק) מוצפנים באופן הזה.
התקנות באירוח בצד הלקוח יכולות להשתמש בחשבונות AWS KMS משלהן או במערכות ניהול מפתחות מותאמות אישית משלהן. כל מפתחות הנתונים ומפתח ה-KEK מוצפנים ומשמשים באופן פנימי בהתקנת Looker באירוח בצד הלקוח. אם אתם לא משתמשים ב-AWS KMS, חשוב לשמור את ה-CMK החיצוני במקום בטוח וקבוע. אם תאבדו את ה-CMK אחרי שהצפנתם את מסד הנתונים הפנימי, יכול להיות שהמופע שלכם יאבד.
אם אתם משתמשים ב-AWS KMS
אם אתם משתמשים ב-AWS KMS, אתם יכולים ליצור CMK באמצעות AWS Management Console או API.
אחרי שיוצרים את ה-CMK, מומלץ ב-Looker ליצור תפקיד IAM חדש שייחודי ל-CMK ולצרף אותו למופע Looker.
הנה דוגמה לתפקיד IAM שמכיל את ההרשאות המינימליות שנדרשות למפתח ה-CMK:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "kms:GenerateRandom",
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:Generate*",
],
"Resource": "arn:aws:kms:*:*:key/*"
}
]
}
אחרי שיוצרים את מפתח ה-CMK ואת תפקיד ה-IAM החדש, מגדירים את משתנה הסביבה AWS_REGION לאזור AWS ואת משתנה הסביבה LKR_AWS_CMK לכינוי של מפתח ה-CMK:
export AWS_REGION=<AWS_region>
export LKR_AWS_CMK=alias/<CMK_alias>
אופציונלי: אפשר גם להגדיר את משתנה הסביבה LKR_AWS_CMK_EC כדי להגדיר הקשר הצפנה מותאם אישית ב-AWS. אם לא מגדירים את משתנה הסביבה הזה, Looker ישתמש בהקשר ההצפנה שמוגדר כברירת מחדל, המחרוזת Looker_Encryption_Context.
export LKR_AWS_CMK_EC=<My_Encryption_Context>
אם אתם לא משתמשים ב-AWS KMS
אם אתם לא משתמשים ב-AWS KMS, צריך ליצור CMK בפורמט Base64, באורך 32 בייט. אפשר לאחסן את ה-CMK במשתנה סביבתי או בקובץ:
כדי ליצור את ה-CMK ולאחסן אותו במשתנה סביבה, אפשר להשתמש בפקודה הבאה:
openssl rand -base64 32אחרי שיוצרים את ה-CMK, מעתיקים אותו ומשתמשים בפקודה הבאה כדי לאחסן את ה-CMK במשתנה הסביבה
LKR_MASTER_KEY_ENV(כאשר<CMK_value>הוא ה-CMK שיצרתם באמצעות הפקודה הקודמת):export LKR_MASTER_KEY_ENV=<CMK_value>כדי ליצור את ה-CMK ולאחסן אותו בקובץ, אפשר להשתמש בפקודה הבאה (כאשר
<path_to_key_file>הוא הנתיב ושם הקובץ לאחסון ה-CMK):openssl rand -base64 32 > <path_to_key_file>אחרי שיוצרים את קובץ ה-CMK, מגדירים את הרשאות קובץ המפתח לקריאה בלבד של המשתמש הנוכחי:
chmod 0400 <path_to_key_file>
אחרי שיוצרים CMK, חשוב לאחסן אותו במקום בטוח וקבוע לפני שממשיכים. אם תאבדו את ה-CMK אחרי שהצפנתם את מסד הנתונים הפנימי, יכול להיות שהמופע שלכם יאבד.
אחרי שיוצרים ושומרים את ה-CMK, מגדירים את משתנה הסביבה LKR_MASTER_KEY_ENV:
אם אתם מאחסנים את ה-CMK במשתנה סביבה, מגדירים את משתנה הסביבה
LKR_MASTER_KEY_ENVלערך של ה-CMK:export LKR_MASTER_KEY_ENV=<CMK_value>אם אתם מאחסנים את ה-CMK בקובץ, מגדירים את משתנה הסביבה
LKR_MASTER_KEY_FILEלנתיב של קובץ ה-CMK:export LKR_MASTER_KEY_FILE=<path_to_key_file>
אחרי שיוצרים CMK, חשוב לאחסן אותו במקום בטוח וקבוע לפני שממשיכים. אם תאבדו את ה-CMK אחרי שהצפנתם את מסד הנתונים הפנימי, יכול להיות שהמופע שלכם יאבד.
התקנת אפליקציית Looker
יצירת קבוצה
looker.sudo groupadd lookerליצור משתמש
lookerואת ספריית הבית שלו.sudo useradd -m -g looker lookerעוברים למשתמש
looker. לא מפעילים את Looker כמשתמש root.sudo su - lookerיוצרים ספריית משנה
lookerבספריית הבית.mkdir ~/lookerעוברים לספריית המשנה
looker.cd ~/lookerמוודאים שאתם נמצאים בספרייה הנכונה.
pwdאם ספריות המשתמשים שלכם נמצאות ב-
/home, הפלט של הפקודה הזו צריך להיות/home/looker/looker.מורידים את קובצי ה-JAR של Looker באמצעות אחת מהשיטות שמופיעות בדף התיעוד בנושא הורדת קובצי ה-JAR של Looker. חשוב לוודא ששני קובצי ה-JAR הם מאותה גרסה. שימוש בגרסאות שונות של קובצי ה-JAR של הליבה והתלות עלול לגרום לחוסר יציבות בהתקנה של Looker.
מורידים את סקריפט לטעינה בזמן ההפעלה העדכני ממאגר הקוד הפתוח של Looker ב-GitHub. אם רוצים שהסקריפט יפעל בהפעלת המערכת, אפשר להוריד את הסקריפט looker_init ולהשתמש באפשרויות הסקריפט
systemdו-init.מעבירים את סקריפט לטעינה בזמן ההפעלה (בשם
looker) ואת קובצי ה-JAR של Looker (בשמותlooker-x.x.x.jarו-looker-dependencies-x.x.x.jar, כאשרx.x.xהוא מספר הגרסה) לספרייה החדשה~/looker.שינוי השם של
looker-x.x.x.jarל-looker.jarושלlooker-dependencies-x.x.x.jarל-looker-dependencies.jar.סקריפט ההפעלה קובע באופן אוטומטי כמה זיכרון Java להקצות ל-Looker. אם רוצים לשנות את הערך הזה באופן ידני, אפשר לקרוא מידע נוסף במאמר בנושא הגדרות מומלצות של זיכרון Java.
הופכים את סקריפט לטעינה בזמן ההפעלה של Looker לסקריפט שניתן להרצה (מגדירים את ההרשאות ל-
0750).chmod 0750 lookerמתחילים את התהליך של Looker מהמעטפת בתור המשתמש
looker../looker startכדי לקבל עזרה לגבי דגלים להפעלה, משתמשים בפקודה:
java -jar looker.jar --helpלחלופין, כדי לקבל עזרה בפקודת ההפעלה, משתמשים בפקודה:
java -jar looker.jar helpפותחים דפדפן בכתובת
https://hostname:9999, כאשרhostnameהוא שם ה-DNS של המארח שבו פועל Looker.צריך להשתמש ב-
httpsבכתובת ה-URL, וכך תיצור אזהרת אבטחה שצריך לעקוף. האזהרה הזו תמשיך להופיע עד שאישור SSL תקף יותקן בשרת.מזינים את מפתח הרישיון שקיבלתם מהאנליסט שלכם ב-Looker.
מזינים שם, כתובת אימייל וסיסמה כדי ליצור את החשבון הראשון.
יצירת רשומת DNS
מוסיפים רשומת DNS looker.[yourdomain].com לשרת. השלב הזה הוא אופציונלי, אבל מומלץ.
פריסה אוטומטית של Looker
אפשר לפרוס את Looker באמצעות כלי לניהול הגדרות כמו Ansible או Chef. דוגמה לתפקיד Ansible לפריסה אוטומטית זמינה בדף התיעוד בנושא כלים לניהול הגדרות.
כוונון של Hypervisor
Looker פועל כמכונה וירטואלית של Java. אם מכונת Looker שלכם היא מכונת אורחת ב-VMware, יכול להיות שתצטרכו לבצע כוונון של הביצועים. אפשר לעיין במדריך לשיטות מומלצות ל-Java של VMware.
בפלטפורמות וירטואליזציה אחרות, יכול להיות ששיפור הביצועים יתאפשר אם תשריינו את הזיכרון של המארח של Looker מההיפר-ויז'ור. אי אפשר לשלוט בזה ב-Amazon EC2, אבל אצל ספקים אחרים כדאי לעיין במסמכי התיעוד שלהם כדי לקבל מידע נוסף.
הגדרה של מסד נתונים אופציונלי של MySQL בקצה העורפי
כברירת מחדל, Looker משתמש במסד נתונים של HyperSQL בזיכרון כדי לאחסן את ההגדרות, המשתמשים ונתונים אחרים. אפשר להשתמש במסד נתונים חיצוני של MySQL כדי לאחסן את המידע הפנימי של Looker. מידע על הגדרה ושיפור של מסד נתונים של MySQL backend זמין בדף התיעוד העברה ל-MySQL.
השלבים הבאים
אחרי שמתקינים את Looker, אפשר להגדיר את אפשרויות ההפעלה של Looker.