שימוש ב-Stackdriver ובמעקב כדי לקבל גישה טובה יותר לבריאות האפליקציה

בשיעור הקוד הזה תלמדו איך להתחיל להשתמש ב-Stackdriver כדי לעקוב אחרי מדדי ביצועים ויומנים לשירותים ולמכונות וירטואליות של Google Cloud Platform, ולעקוב אחריהם.

במעבדת קוד זו:

  • כדאי להכיר את דף הבית של Stackdriver.
  • הבנת מרכזי הבקרה והתרשימים.
  • יצירת בדיקה לתקינות.
  • יצירת מדיניות התראות פשוטה.
  • עבודה עם אירועי התראות.
  • ניווט במציג היומנים.

איך הייתה החוויה שלך עם Stackdriver?

מעקב – מה זה? מעולם לא השתמשתי ב-Stackdriver, אבל יש לי ניסיון במעקב אחר אפליקציות. בדקתי את הצמיגים של Stackdriver, אבל לא התעמקתי בהם.

הגדרת סביבה בקצב עצמי

אם עדיין אין לכם חשבון Google (Gmail או Google Apps), עליכם ליצור חשבון.

נכנסים למסוף ב-Google Cloud Platform (console.developers.google.com) ויוצרים פרויקט חדש:

חשוב לזכור את מזהה הפרויקט – שם ייחודי בכל הפרויקטים ב-Google Cloud. נתייחס אליו מאוחר יותר ב-codelab הזה בתור PROJECT_ID.

חשוב מאוד – נכנסים לדף Compute Engine כדי להתחיל להפעיל את ה-API של Compute Engine:

ואז: Compute ← Compute Engine ← מכונות VM

בפעם הראשונה שבה לוחצים על הסמל, מופיע מסך עם ההודעה "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. אנחנו צריכים את המופעים האלה כדי להמחיש מעקבים והתראות. אפשר ליצור מכונה של 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 נמצא כרגע בגרסת בטא ואינו מופעל לפרויקטים חדשים. כדי להפעיל אותו, עוברים לסרגל הניווט הימני ולוחצים על "Monitoring" (ייתכן שיהיה צורך לגלול למטה כדי למצוא אותו)

במסך הבא, יש ללחוץ על "הפעלת Monitoring" ולהמתין דקה כדי להפעיל אותו.

כאשר התוכן יופעל, התוכן ישתנה והטקסט יופיע למטה. לחצו על &ציטוט; עוברים אל 'מעקב'&כדי להתחיל לחקור! תצטרכו להתחבר אל Google ואז לעבור למסוף Stackdriver בפרויקט שלכם. בדף הזה תוכלו לבצע ניתוח של משימות הקשורות למעקב ולנתח אותן.

כדאי להכיר את דף הבית.

  1. התפריט העליון: שימוש כדי לבחור תצוגות / הקשרים שונים ולגשת לכל הפעולות הזמינות ב-Stackdriver.
  2. מרכזי בקרה: אלה מרכזי בקרה של מדדים ואירועים שנמצאים במעקב. בהתחלה מדובר במרכזי בקרה שמוגדרים מראש במערכת על סמך המשאבים בפרויקט, אבל אתם יכולים גם ליצור מרכזי בקרה בהתאמה אישית משלכם.
  3. בדיקות לתקינות: הן בודקות מדי פעם אם יש מקורות מידע זמינים למשתמשים, ומאפשרות לשלוח התראות כשהן לא זמינות.
  4. רשימת קבוצות: הקבוצות משמשות לקיבוץ משאבים שיש להם מאפיינים ומאפיינים משותפים, כך שניתן לטפל בהם כקבוצה או כאשכולות למשימות כמו מעקב ומעקב. ניתן לגלות אותם באופן אוטומטי וגם על-ידי המשתמש.
  5. חלונית תקריות: חלונית האירועים עוקבת אחר אירועים הקשורים להתראות. לא יופיע שום דבר כאן עד שיוגדר מדיניות התראות.
  6. יומן האירועים: מציג אירועים הקשורים למשאבים שבמעקב, לדוגמה, שינויים במופעים, אירועי אירועים וכו'.

לפני שנבדוק את התרשימים, תוכלו לראות שרוב הקווים שטוחו אחרי האתחול הראשוני של המכונה. בואו נראה אם אנחנו יכולים &לצבור; שטוחה" חלק מהם על ידי יצירת עומס מסוים על אחד מהמופעים.

כדי לבצע 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 שבפינה הימנית העליונה של המסוף.

הסתכלו בתרשים השימוש של יחידת העיבוד המרכזית (CPU):

האלמנטים בתרשים הם:

  • הקו המודגש הוא המדד הנבחר הנוכחי (תרשים יכול להציג מספר מדדים).
  • הקו האופקי האפור מייצג את הנקודה שבה מצביע העכבר.
  • בחלק התחתון מופיע שם המשאב, לצד הערך בנקודת הזמן שנבחרה.
  • בחלק העליון של התרשים מופיעות נקודות צבעוניות המייצגות אירועים המפורטים ביומן האירועים. ניתן ללחוץ עליהם כדי לקבל רשימה של אירועים. הערה: ייתכן שעדיין לא מוצגים לך אירועים.
  • בפינה השמאלית העליונה של התרשים מופיעים שלושה פקדים (מצד שמאל משמאל):
  • החלפת מצב של הצגה/הצגה של רשימת מדדים מתחת לתרשים
  • החלפת מצב של מסך מלא
  • תפריט עם פיצ'רים שונים (חובה לנסות את מצב ה-X-ray אחרי שיש תרשים מאוד גרפי.). לתשומת ליבכם: האפשרות "View Logs" – נבדוק את זה מאוחר יותר.

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

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

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

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

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

לוחצים על הלחצן "Test" כדי לוודא שניתן להגיע לנקודות הקצה (אתם אמורים לקבל 3 קנסים ירוקים) ולוחצים על 'שמירה'. הערה: אם לא הצלחתם לחזור למצב הקודם, עדיין תוכלו להמשיך בשיעור ה-Lab, מפני שזו פשוט בעיה של בדיקת בדיקה.

בשלב הבא, תתקבל תיבה של &מירכאות; פעולה תקינה של סימן ’&’ ותשאלו אם אתם רוצים ליצור מדיניות התראות להמחאה זו. עושים את זה בקטע הבא – עדיין לא ללחוץ על שום דבר.

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

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

לחצו על &ציטוט; יצירת מדיניות התראות&&, והתחילו להגדיר את המדיניות.

עכשיו אתם אמורים לראות את המסך הזה:

נותנים שם למדיניות: "Uptime Check for nginx group"

עכשיו, בקטע של שיטת ההתראות, לוחצים על "הוספת התראה"

מזינים את כתובת האימייל המשויכת לחשבון שלכם ב-Google Cloud. גוללים לתחתית המסך ולוחצים על "Save Policy"

חוזרים לדף הבית של Stackdriver (על ידי לחיצה על הלוגו בפינה הימנית העליונה).

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

גוללים למטה אל יומן האירועים כדי לראות את האירוע שבו נוצרה מדיניות התראות.

עכשיו יש כמה קשיים :)

בואו נראה מה קורה כשמפסיקים את שירות Ngnix.

SSH שוב למופע משורת הפקודה של Cloud Shell:

$ gcloud compute ssh nginx-plus-1

והקלד:

yourusername@nginx-plus-1:~$ sudo service nginx stop

עכשיו הבדיקה של זמן הפעולה שיצרנו נכשלה. כתוצאה מכך, ייווצר אירוע והודעת התראה באימייל תישלח לכתובת שהזנת למעלה. יחלוף דקה עד שהמצב יזוהה (עליך לזכור את משך הזמן של דקה בעת הגדרת בדיקת הזמינות?) אז בואו נבחן את הדף של קבוצת nginx.

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

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



  2. בתפריט ברמה העליונה, בוחרים באפשרות 'קבוצות' ולאחר מכן מוצאים את הקבוצה הספציפית.

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

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

בצד ימין מוצגים פרטים שונים שקשורים לקבוצה:

  • סטטוס האירוע
  • בדיקות לתקינות
  • יומן אירועים
  • רשימת משאבים (מופעים, כרכים וכו')

יש לשים לב שאלו קשורים לקבוצה בלבד, ולכן יומן האירועים מפרט רק אירועים עבור הקבוצה.

אפשר ללחוץ על משאבים או על קבוצות משנה שונות כדי לעבור למרכזי הבקרה הספציפיים שלהם. לדוגמה, לחיצה על nginx-plus-1 תעביר אתכם למרכז שליטה המורכב רק ממדדים ובדיקות הקשורים למופע הזה. נסה היום:

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

בואו נאשר את האירוע ונעדכן את חברי הצוות האחרים שאנחנו בודקים את הנושא:

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

ניתן לפתור אירועים באופן ידני או לפתור אותם באופן אוטומטי. כדי לראות את הפרמטר האחרון, ממקמים את nginx-plus-1 ומתקנים את הבעיה:

yourusername@nginx-plus-1:~$ sudo service nginx start

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

Cloud Logging הוא פתרון לרישום ביומן שמציע מקום נוח ונוח לצפייה ביומנים ממקורות שונים. אפשר להשתמש ביומנים גם כדי לייצא אותם ליעדים אחרים (Google Cloud Storage , Google BigQuery או Google Cloud Pub/Sub).

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

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

יש כמה פקדים שימושיים לסינון מהיר של המידע הרלוונטי:

  1. סינון לפי סוגי משאבים
  2. סינון לפי סוגי יומנים ספציפיים של המשאבים שנבחרו
  3. סינון רמות יומן ספציפיות
  4. סינון לפי תאריכים ספציפיים כדי לבדוק בעיות קודמות
  5. החלפת המצב של סטרימינג מתמשך
  6. תיבת חיפוש של טקסט, תווית או ביטוי רגולרי

עכשיו נתרגל את הצמצום של יומנים ספציפיים.

מתוך בורר סוג המשאב (1 בצילום המסך) בוחרים ב-Compute Engine -> בכל סוגי המשאבים.

לצד בורר סוג היומן (2 בצילום המסך) בוחרים nginx-access כדי להציג את כל יומני הגישה

עכשיו אפשר להפעיל סטרימינג מתמשך (5) כדי לצפות ביומנים כשהם נכנסים לחשבון. אם לא מופיעים יומנים חדשים, נסו להזין את כתובת ה-IP החיצונית של אחת מהמכונות הווירטואליות של nginx-plus בדפדפן.

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

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

עכשיו אפשר לעקוב אחר האפליקציות שמופעלות בענן.

באילו נושאים מדובר?

  • היכרות עם דף הבית של Stackdriver.
  • הבנת מרכזי הבקרה והתרשימים.
  • יצירת בדיקה לתקינות.
  • יצירת מדיניות התראות פשוטה.
  • עבודה עם אירועי התראות.
  • ניווט במציג היומנים.

השלבים הבאים

  • אפשר לנסות ליצור מרכזי בקרה בהתאמה אישית.
  • כדאי לעיין באפשרויות השונות כשיוצרים מדיניות התראות.
  • בואו לגלות את האפשרויות השונות שזמינות כשמשתמשים ב-Cloud Logging.

לומדיםמ

נשמח לקבל ממך משוב

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