ב-codelab הזה נסביר איך להתחיל להשתמש ב-Stackdriver כדי לעקוב אחרי מדדי הביצועים ויומנים של שירותים ומכונות וירטואליות ב-Google Cloud Platform ולבדוק אותם.
ב-Codelab הזה תלמדו:
- כדאי להכיר את דף הבית של Stackdriver.
- הסבר על לוחות בקרה ותרשימים.
- יצירת בדיקת זמני פעילות.
- יוצרים כלל פשוט למדיניות התראות.
- עבודה עם אירועים של התראות.
- איך משתמשים בכלי Logs Viewer
מה הניסיון שלך עם Stackdriver?
הגדרה של סביבה בקצב עצמי
אם עדיין אין לכם חשבון Google (Gmail או Google Apps), אתם צריכים ליצור חשבון.
נכנסים ל-Google Cloud Platform Console (console.developers.google.com) ויוצרים פרויקט חדש:
חשוב לזכור את מזהה הפרויקט, שהוא שם ייחודי בכל הפרויקטים ב-Google Cloud. בהמשך ה-codelab הזה, נתייחס אליו כאל PROJECT_ID
.
חשוב מאוד – כדי להתחיל להפעיל את Compute Engine API, צריך להיכנס לדף Compute Engine:
ואז: Compute (חישוב) → Compute Engine → VM Instances (מכונות וירטואליות)
בפעם הראשונה שתעשו את זה, יוצג מסך עם ההודעה 'מערכת Compute Engine מתכוננת. הפעולה עשויה להימשך דקה או יותר". אתם יכולים להמשיך להתחבר ל-Google Cloud Shell שבהמשך, אבל לא תוכלו ליצור מכונות וירטואליות עד שהפעולה הזו תושלם.
רוב העבודה תתבצע ב-Google Cloud Shell, סביבת שורת פקודה שפועלת בענן. המכונה הווירטואלית הזו מבוססת על Debian, וטעונים בה כל הכלים הדרושים למפתחים. יש בה גם ספריית בית בעלת אחסון מתמיד בגודל 5GB. לוחצים על הסמל בפינה השמאלית העליונה של המסך כדי לפתוח את Google Cloud Shell:
לבסוף, משתמשים ב-Cloud Shell כדי להגדיר את אזור ברירת המחדל ואת הגדרות הפרויקט:
$ gcloud config set compute/zone us-central1-b $ gcloud config set compute/region us-central
אפשר גם לבחור אזורים שונים. מידע נוסף על תחומים זמין במסמכי התיעוד בנושא אזורים ותחומים.
בקטע הזה, תיצרו מכונות וירטואליות ב-Compute Engine שמריצות nginx+ באמצעות Cloud Launcher. נצטרך את המקרים האלה כדי להדגים מעקב והתראות. אפשר ליצור מכונה של Compute Engine ממסוף גרפי או משורת הפקודה. בשיעור ה-Lab הזה נסביר על שורות הפקודה.
עכשיו נתחיל.
משתמשים ב-gcloud כדי להגדיר את מזהה הפרויקט:
$ gcloud config set project PROJECT_ID
לאחר מכן, מעתיקים ומדביקים את הקוד הזה כמו שהוא:
$ for i in {1..3}; do \ gcloud compute instances create "nginx-plus-$i" \ --machine-type "n1-standard-1" \ --metadata "google-cloud-marketplace-solution-key=nginx-public:nginx-plus" \ --maintenance-policy "MIGRATE" --scopes default="https://www.googleapis.com/auth/cloud-platform" \ --tags "http-server","google-cloud-marketplace" \ --image "https://www.googleapis.com/compute/v1/projects/nginx-public/global/images/nginx-plus-ubuntu1404-v20150916-final" \ --boot-disk-size "10" --boot-disk-type "pd-standard" \ --boot-disk-device-name "nginx-plus-$i"; done
יוצגו הודעות אזהרה לגבי גודל הדיסק, ולאחר מכן הפלט הבא כשכל מכונה וירטואלית נוצרת:
NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS nginx-plus-1 us-central1-b n1-standard-2 X.X.X.X X.X.X.X RUNNING ...
חשוב לרשום את EXTERNAL_IP
כדי להשתמש בו בהמשך.
יכול להיות שיעברו כמה דקות עד שהפעולות האלה יושלמו.
כברירת מחדל, ב-Google Cloud Platform מותרת גישה למספר קטן של יציאות. מכיוון שבקרוב ניגש ל-Nginx, נפעיל את יציאה 80 בהגדרות חומת האש:
$ gcloud compute firewall-rules create allow-80 --allow tcp:80 --target-tags "http-server" Created [...]. NAME NETWORK SRC_RANGES RULES SRC_TAGS TARGET_TAGS allow-80 default 0.0.0.0/0 tcp:80 http-server
הפעולה הזו תיצור כלל לחומת האש בשם allow-80 עם ערכי ברירת המחדל הבאים:
- רשימת הבלוקים של כתובות ה-IP שמורשים ליצור חיבורים נכנסים (
--source-ranges
) מוגדרת כ-0.0.0.0/0
(בכל מקום). - הרשימה של תגי המופעים שמציינים את קבוצת המופעים ברשת שעשויים לקבל חיבורים נכנסים מוגדרת כ'ללא', כלומר כלל חומת האש חל על כל המופעים.
מריצים את הפקודה gcloud compute firewall-rules create --help
כדי לראות את כל ברירות המחדל.
אחרי שיוצרים את המופע הראשון, אפשר לבדוק אם nginx פועל ונגיש. כדי לעשות את זה, עוברים אל http://EXTERNAL_IP/, כאשר EXTERNAL_IP
הוא כתובת ה-IP הציבורית של nginx-plus-1. אמור להופיע הדף של Nginx:
אפשר גם לראות את המופעים הפעילים על ידי הקלדה של:
$ gcloud compute instances list
Google Stackdriver הוא פתרון מעקב מתקדם שמשלב כלים שונים כדי לעזור לכם לעקוב אחרי האפליקציות שלכם שמבוססות על הענן ולנתח אותן. אתם יכולים להשתמש ב-Stackdriver כדי לראות מדדי ביצועים, להגדיר ולקבל התראות, להוסיף מדדים ולוחות בקרה מותאמים אישית, לראות יומנים ועקבות, להגדיר לוחות בקרה משולבים – והכול ממקום מרכזי אחד.
בשלבים הבאים מוסבר איך להפעיל את Stackdriver ואיך לעבוד עם המסוף.
כברירת מחדל, Google Stackdriver נמצא כרגע בשלב בטא ולא מופעל בפרויקטים חדשים. כדי להפעיל את התכונה, עוברים לסרגל הניווט הימני ולוחצים על 'מעקב' (יכול להיות שתצטרכו לגלול למטה כדי למצוא אותה).
במסך הבא, לוחצים על 'הפעלת מעקב' ומחכים דקה עד שהמעקב יופעל.
אחרי ההפעלה, התוכן ישתנה ויופיע הטקסט שלמטה. כדי להתחיל, לוחצים על 'מעבר למעקב'. תצטרכו להיכנס באמצעות Google ותועברו למסוף Stackdriver של הפרויקט. שם תוכלו לבצע משימות שקשורות למעקב ולנתח אותן.
כדאי להכיר את דף הבית.
- התפריט העליון: משמש לבחירת תצוגות או הקשרים שונים ולגישה לכל הפעולות הזמינות ב-Stackdriver.
- מרכזי בקרה: אלה מרכזי בקרה של מדדים ואירועים שנמצאים במעקב. בהתחלה אלה מרכזי בקרה מוגדרים מראש של המערכת שמבוססים על המשאבים בפרויקט, אבל אפשר גם ליצור מרכזי בקרה מותאמים אישית.
- בדיקות זמני פעילות: הבדיקות האלה בודקות מעת לעת את הזמינות של משאבים שפונים למשתמשים, ומאפשרות לשלוח התראות כשהמשאבים האלה לא זמינים.
- רשימת הקבוצות: קבוצות משמשות לקיבוץ משאבים שיש להם מאפיינים משותפים, כדי שאפשר יהיה לטפל בהם כקבוצה או כאוסף למשימות כמו מעקב והתראות. הם יכולים להתגלות אוטומטית או להיות מוגדרים על ידי המשתמש.
- חלונית האירועים: בחלונית האירועים מתבצע מעקב אחרי אירועים שקשורים להתראות. לא יופיע כאן כלום עד שתגדירו מדיניות התראות.
- יומן האירועים: רשימה של אירועים שקשורים למשאבים שבמעקב, למשל שינויים במופע, אירועים של תקריות וכו'.
לפני שבודקים את התרשימים, אפשר לראות שרוב הקווים התייצבו אחרי האתחול הראשוני של המופע. ננסה לבטל את השטיחות של חלק מהם על ידי יצירת עומס באחד מהמופעים.
כדי להתחבר למופע באמצעות SSH משורת הפקודה של Cloud Shell:
$ gcloud compute ssh nginx-plus-1 ... Do you want to continue (Y/n)? Y ... Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): [Hit Enter] Enter same passphrase again: [Hit Enter] ... yourusername@nginx-plus-1:~$
זהו! די פשוט, נכון? (בסביבת ייצור, חשוב להזין ביטוי סיסמה :) שימו לב: יכול להיות שלא תוצג לכם בקשה להוסיף ביטוי סיסמה.
אפשר גם להתחבר למכונה באמצעות SSH ישירות מהמסוף. לשם כך, עוברים אל Compute Engine > VM Instances (מכונות וירטואליות) ולוחצים על SSH.
In the SSH window, type:
yourusername@nginx-plus-1:~$ sudo apt-get install rand yourusername@nginx-plus-1:~$ for i in {1..10}; do dd if=/dev/zero of=/dev/null count=$(rand -M 80)M; sleep 60; done &
עכשיו מתבצעת טעינה של המעבד של המכונה nginx-plus-1. אפשר לחזור לכרטיסייה של לוח הבקרה של Stackdriver ולהתחיל לחקור, אבל לפני שחוזרים לדף של לוחות הבקרה של Stackdriver, כדאי לנצל את ההזדמנות ולהתקין את סוכן Cloud Logging.
Fetch and install the script:
yourusername@nginx-plus-1:~$ curl -sS https://dl.google.com/cloudagents/add-logging-agent-repo.sh | sudo bash /dev/stdin --also-install
שימו לב: כשמתקינים בסביבת ייצור, חשוב לבדוק את גיבוב SHA-256. כאן אפשר לקבל מידע נוסף על תהליך ההתקנה.
עכשיו צריך לחזור למסוף Google Stackdriver.
כדאי להקדיש זמן כדי להכיר את האופן שבו אפשר לנווט במרכזי הבקרה ובתרשימים ולהשתמש בהם. מעבירים את העכבר מעל קווי התרשים כדי לראות מה קורה. משנים את משך הזמן של התרשימים (האמצעים לשינוי נמצאים בפינה השמאלית העליונה). תמיד אפשר לחזור לתצוגת דף הבית על ידי לחיצה על הלוגו של Stackdriver בפינה הימנית העליונה של המסוף.
בואו נסתכל על תרשים ניצול המעבד:
חלק מהאלמנטים בתרשים הם:
- הקו המודגש הוא המדד שנבחר כרגע (בתרשים יכולים להופיע כמה מדדים).
- הקו האופקי האפור מייצג את נקודת הזמן שאליה מצביע העכבר.
- בחלק התחתון מופיע שם המשאב, יחד עם הערך בנקודת הזמן שנבחרה.
- בחלק העליון של התרשים יש נקודות צבעוניות שמייצגות אירועים שמפורטים ביומן האירועים. אפשר ללחוץ על כל אחת מהן כדי לקבל רשימה של אירועים. הערה: אם עדיין לא יצרתם אירועים, יכול להיות שלא תראו כלום.
- בפינה השמאלית העליונה של התרשים יש שלושה אמצעי בקרה (מימין לשמאל):
- החלפה בין הסתרה להצגה של רשימת מדדים מתחת לתרשים
- החלפת מצב של מסך מלא
- תפריט עם מגוון אפשרויות (חובה לנסות את מצב ה-X-ray אחרי שיוצרים תרשים מפורט מאוד!). שימו לב לאפשרות 'הצגת יומני רישום' – נגיע אליה בהמשך.
בדיקות זמני פעילות מאפשרות לכם לאמת במהירות את תקינותם של דף אינטרנט, מופע או קבוצת משאבים. כל בדיקה מוגדרת מתבצעת באופן קבוע ממגוון מיקומים ברחבי העולם. אפשר להשתמש בבדיקות זמני פעילות כתנאים בהגדרות של מדיניות התראות.
כדי להציג את הבדיקות ואת הסטטוס שלהן, בוחרים באפשרות Alerting > Uptime Checks בתפריט העליון. בנוסף, בלוח הבקרה של Google Stackdriver ובדפים שמוקדשים למשאבים ספציפיים, יש קטעים של בדיקות זמינות. בבדיקות זמינות שכוללות קבוצת משאבים, אפשר להרחיב את הבדיקה כדי להציג את הסטטוס של כל אחד מהמשאבים בקבוצה.
ניצור בדיקה של זמני פעילות. אפשר למצוא את הווידג'ט של בדיקות הזמינות במסך הבית של Stackdriver:
יופיע חלון קופץ חדש. אנחנו יכולים להגדיר בדיקות זמינות למשאב יחיד או לקבוצת משאבים, להשתמש במטענים ייעודיים (payloads) ובכותרות בהתאמה אישית, להוסיף אימות ואפשרויות אחרות. בשלב הזה, נשתמש רק בבדיקת HTTP שמוגדרת כברירת מחדל, שתבדוק את קבוצת nginx שנוצרה באופן אוטומטי כל דקה.
צריך להשתמש בצילום המסך שלמטה כדי למלא את האפשרויות השונות:
לוחצים על הלחצן 'בדיקה' כדי לוודא שאפשר להגיע לנקודות הקצה (צריכים להופיע 3 אישורים ירוקים), ואז לוחצים על 'שמירה'. הערה: אם לא קיבלתם אישורים, עדיין תוכלו להמשיך במעבדה, כי יכול להיות שזו רק בעיה בתזמון של בדיקת הבדיקה.
אחרי כן, תוצג לכם תיבה עם הכיתוב 'נוצרה בדיקת זמני פעילות', ותישאלו אם אתם רוצים ליצור כללי מדיניות התראות לבדיקה הזו. בקטע הבא נסביר איך עושים את זה – אל תלחצו על שום דבר בינתיים.
אתם יכולים להגדיר מדיניות התראות כדי להגדיר תנאים שקובעים אם שירותי הענן והפלטפורמות שלכם פועלים בצורה תקינה. Cloud Monitoring מספק סוגים רבים של מדדים ובדיקות תקינות שאפשר להשתמש בהם במדיניות.
כשמתרחשת הפרה של התנאים של מדיניות התראות, נוצר אירוע והוא מוצג במסוף Stackdriver בקטע Incident. המשיבים יכולים לאשר את קבלת ההתראה ולסגור את התקרית אחרי הטיפול בה.
לוחצים על 'יצירת מדיניות התראות' ועוברים להגדרת המדיניות.
עכשיו אמור להופיע המסך הזה:
מזינים שם למדיניות: Uptime Check for nginx group
בקטע 'שיטת התזכורת', לוחצים על 'הוספת תזכורת'.
מזינים את כתובת האימייל שמשויכת לחשבון Google Cloud. גוללים לתחתית המסך ולוחצים על 'שמירת המדיניות'.
חוזרים לדף הבית של Stackdriver (על ידי לחיצה על הלוגו בפינה הימנית העליונה).
עכשיו בדיקת זמני הפעילות שיצרתם אמורה להופיע בקטע 'בדיקות זמני פעילות' במרכז הבקרה. בשלב הזה הסטטוס צריך להיות ירוק.
גוללים למטה אל יומן האירועים, וצריך לראות את האירוע שבו נוצרה מדיניות ההתראות.
עכשיו, בואו ניצור קצת בעיות :)
בואו נראה מה קורה כשמפסיקים את שירות Nginx.
מתחברים שוב למופע באמצעות SSH משורת הפקודה של Cloud Shell:
$ gcloud compute ssh nginx-plus-1
מקלידים:
yourusername@nginx-plus-1:~$ sudo service nginx stop
עכשיו בדיקת זמני הפעילות שיצרנו אמורה להיכשל. כתוצאה מכך, ניצור אירוע ונשלח התראה באימייל לכתובת שציינתם למעלה. יעבור זמן עד שהתנאי יזוהה (זוכרים את משך הזמן של דקה אחת שהגדרנו בבדיקת הזמינות?), אז נלך לבדוק את הדף של קבוצת nginx.
יש כמה דרכים להגיע ללוח הבקרה של קבוצת משאבים ספציפית:
- אפשר ללחוץ על שם הקבוצה בדף הבית. הפעולה הזו מעבירה אתכם למרכז בקרה שנועד במיוחד למעקב אחרי המשאבים של הקבוצה. אפשר גם להתאים אישית את לוח הבקרה הזה.
- בתפריט ברמה העליונה, בוחרים באפשרות 'קבוצות' ואז מאתרים את הקבוצה הספציפית.
עכשיו לוחצים על לחצן הרענון האוטומטי כדי לוודא שהמרכזים לשליטה יעברו רענון אוטומטי. הסמל יהפוך לאדום.
עכשיו מוצג לכם לוח בקרה שספציפי לקבוצת nginx שנוצרה אוטומטית. בצד שמאל מוצגים תרשימים של כמה מדדים מרכזיים שקשורים לקבוצה. במילים אחרות, הגרפים האלה מציגים מדדים שקשורים לכל המשאבים בקבוצת nginx (שלושת המכונות הווירטואליות nginx+ שיצרנו קודם).
בצד ימין מוצג מידע שקשור לקבוצה:
- סטטוס האירוע
- בדיקות של זמני פעילות
- יומן אירועים
- רשימת משאבים (מופעים, נפחים וכו')
שימו לב שהפעולות האלה מתייחסות רק לקבוצה, ולכן ביומן האירועים מופיעים רק אירועים שקשורים לקבוצה.
אפשר ללחוץ על משאבים שונים או על קבוצות משנה כדי לעבור למרכזי בקרה ספציפיים משלהם. לדוגמה, אם תלחצו על nginx-plus-1, תועברו למרכז בקרה שכולל רק מדדים ובדיקות שקשורים למופע הזה. זה הזמן לנסות:
אירועים ב-Stackdriver נפתחים כשקבוצה של תנאי התראה עומדת בקריטריון מסוים. במקרה שלנו, הגדרנו התראה לבדיקת זמן הפעולה הרציפה של nginx, שנכשלת כרגע ב-nginx-plus-1. אירועים עוזרים לכם לעקוב אחרי התנאים הנוכחיים ולשתף פעולה עם חברי צוות אחרים כשאתם עובדים על בעיות.
כדאי להודיע על האירוע כדי ששאר חברי הצוות ידעו שאנחנו בודקים את העניין:
שימו לב שהפעולה הזו משנה את מצב האירוע מ'פתוח' ל'אושר'. המצב עדיין נמשך (התנאים של מדיניות ההתראות עדיין לא מתקיימים), אבל אתם מאותתים לחברי הצוות שאתם מטפלים בבעיה. הפעולה הזו תתועד גם ביומן האירועים.
אפשר לפתור אירועים באופן ידני או אוטומטי. כדי לראות את האחרון, מתחברים באמצעות SSH אל nginx-plus-1 ופותרים את הבעיה:
yourusername@nginx-plus-1:~$ sudo service nginx start
עכשיו התקרית תיפתר אוטומטית כשהבדיקה של זמן הפעולה תחזור למצב תקין. אפשר גם לפתור את הבעיה בעצמך על ידי בחירה באפשרות 'פתרון' בתפריט.
Cloud Logging הוא פתרון של רישום ביומן כשירות (logging-as-a-service) שמציע מקום מרכזי ונוח לצפייה ביומנים ולשאילת שאילתות לגביהם ממקורות שונים. אפשר גם להשתמש ביומנים כדי לייצא אותם ליעדים אחרים (Google Cloud Storage, Google BigQuery או Google Cloud Pub/Sub).
כדי לגשת לכלי Cloud Logs Viewer, בוחרים בו בתפריט הימני של מסוף Cloud:
תועברו לכלי לצפייה ביומנים, שבו תוכלו להשתמש בשאילתות שהוגדרו מראש או ליצור ולשמור שאילתות מותאמות אישית משלכם, לקבל שידור חי של יומנים שמגיעים מכמה מקורות בפריסת הענן שלכם, ליצור מדדים מיומנים, לייצא ועוד.
יש כמה אמצעי בקרה שימושיים שמאפשרים לסנן במהירות את המידע הרלוונטי:
- סינון לפי סוגי משאבים
- סינון לפי סוגים ספציפיים של יומנים של המשאבים שנבחרו
- סינון רמות ספציפיות ביומן
- כדי לבדוק בעיות שהיו בעבר, אפשר לסנן לפי תאריכים ספציפיים.
- הפעלה או השבתה של סטרימינג רציף
- תיבת חיפוש לחיפוש טקסט, תווית או ביטוי רגולרי
עכשיו נתרגל צמצום של היומנים ליומנים ספציפיים.
בבורר סוגי המשאבים (1 בצילום המסך) בוחרים באפשרות Compute Engine -> All resource types (כל סוגי המשאבים).
אחר כך, בתפריט לבחירת סוג היומן (מספר 2 בצילום המסך), בוחרים באפשרות nginx-access כדי לראות את כל יומני הגישה.
עכשיו, מפעילים את המתג של סטרימינג רציף (5) כדי לצפות ביומני הרישום בזמן שהם מתקבלים. אם לא מופיעים יומנים חדשים, מנסים להזין בדפדפן את כתובת ה-IP החיצונית של אחת ממכונות ה-VM של nginx-plus.
ב-codelab הזה לא מתמקדים ביומנים, אבל אתם יכולים לעיין בהם בהמשך לפני שמבצעים ניקוי. כאן אפשר למצוא מידע נוסף על ניווט בכלי לצפייה. אם אתם רוצים לקבל מידע נוסף על השימושים ב-Cloud Logging, כאן נמצא המדריך הראשי של המסמכים הרלוונטיים.
בואו נשחרר את משאבי המחשוב שנוצרו במהלך שיעור ה-Lab. מריצים את הפקודות הבאות ב-Cloud Shell:
$ for i in {1..3}; do \ gcloud -q --user-output-enabled=false compute instances delete nginx-plus-$i ; done
לאחר מכן, עוברים אל מסוף Google Stackdriver ('Monitoring' בתפריט שבחלונית הימנית של Cloud Console) ומסירים את בדיקת הזמינות ואת כללי ההתראה שיצרנו. אפשר לעשות את זה מפריטי התפריט ברמה העליונה: Alerting (התראות) -> Policies overview (סקירה כללית של כללי מדיניות) ו-Alerting (התראות) -> Uptime checks (בדיקות זמינות).
עכשיו אפשר לעקוב אחרי האפליקציות שמבוססות על הענן.
מה למדנו
- היכרות עם דף הבית של Stackdriver.
- הסבר על לוחות בקרה ותרשימים.
- יצירת בדיקה של זמני פעילות.
- יצירת מדיניות פשוטה להתראות.
- עבודה עם אירועים של התראות.
- ניווט בכלי Logs Viewer (מציג היומנים).
השלבים הבאים
- אפשר לנסות ליצור מרכזי בקרה בהתאמה אישית.
- כדאי לבדוק את האפשרויות השונות כשיוצרים מדיניות התראות.
- אפשר לעיין באפשרויות השונות שזמינות כשמשתמשים ב-Cloud Logging.
מידע נוסף
שליחת משוב
- נשמח אם תקדישו כמה רגעים למילוי הסקר הקצר שלנו.