הצגת הפלט של יציאה טורית

למכונת Compute Engine יש ארבע יציאות טוריות וירטואליות. מערכת ההפעלה, ה-BIOS וישויות אחרות ברמת המערכת של המופע כותבות לעיתים קרובות פלט ליציאות הטוריות, ולכן הפלט של היציאה הטורית שימושי לפתרון בעיות שקשורות לקריסות, הפעלות שנכשלו, בעיות בהפעלה או בעיות בכיבוי.

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

כדי לראות את הפלט של היציאה הטורית של מכונה פעילה, אפשר להשתמש במסוף Google Cloud , ב-CLI של gcloud או ב-REST. ה-methods האלה מספקות רק את הפלט העדכני ביותר של 1 MB לכל יציאה. כדי לראות פלט שגודלו עולה על 1 MB לכל יציאה, או כדי לראות פלט ממופעים שהופסקו, צריך להשתמש ב-Cloud Logging.

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

  • אם רוצים לרשום ביומן את הפלט של היציאה הטורית ב-Cloud Logging, כדאי לקרוא על Cloud Logging.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

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

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים Google Cloud ולממשקי ה-API, לא צריך להגדיר אימות.

    gcloud

    1. התקינו את ה-CLI של Google Cloud. אחר כך, מאתחלים את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  • הגדרת אזור ותחום כברירת מחדל
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

דרישות ומגבלות של הרשת

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

  • יציאת TCP ‏9600: אם משתמשים בקישור Serial port 1 (console)‎ במסוףGoogle Cloud , הרשת צריכה לאפשר תנועה יוצאת ביציאת TCP ‏9600 כדי להתחבר לשער של הקונסולה הטורית.
  • ‫VPC Service Controls: הקונסולה הטורית האינטראקטיבית לא נתמכת בתוך היקפי האבטחה של VPC Service Controls.
  • גישה פרטית ל-Google: כתובות ה-IP הווירטואליות של הגישה הפרטית ל-Google‏ (private.googleapis.com או restricted.googleapis.com) לא תומכות בתעבורת SSH שנדרשת לקונסולה הטורית. כתובות ה-VIP האלה תומכות רק בפרוטוקולים שמבוססים על HTTP.

אם הרשת שלכם מגבילה את היציאות או הפרוטוקולים האלה, אפשר להשתמש ב-Cloud Logging כדי להציג את היומנים של היציאה הטורית, כי הוא משתמש ב-HTTPS רגיל (יציאה 443).

פתרון בעיות בכשלים ב-SSH

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

הפעלה והשבתה של רישום פלט של יציאה טורית ביומן

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

כברירת מחדל, הרישום ביומן של פלט היציאה הטורית ב-Cloud Logging מושבת. אם מפעילים את הרישום ביומן של הפלט של היציאה הטורית, Cloud Logging מספק את 50 הגיביבייט (GiB) הראשונים של רישום ביומן בחינם ומאחסן את היומנים למשך 30 ימים.

הגדרת מטא-נתונים של פרויקט ושל מכונה

אם האילוצים של הארגון לא חלים על רישום הפלט של יציאה טורית ב-Cloud Logging, אפשר להפעיל או להשבית את הרישום הזה בפרויקטים ובמופעי מחשוב בודדים על ידי הגדרת רשומת המטא-נתונים serial-port-logging-enable לערך true או false.

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

אפשר להגדיר רשומה של מטא-נתונים באמצעות מסוף Google Cloud , ה-CLI של gcloud או Compute Engine API. מידע נוסף מופיע במאמר בנושא הגדרת מטא-נתונים מותאמים אישית.

לדוגמה, הפקודה הבאה ב-CLI של gcloud מאפשרת רישום ביומן של פלט יציאה טורית ב-Cloud Logging עבור הפרויקט:

gcloud compute project-info add-metadata \
    --metadata serial-port-logging-enable=true

באופן דומה, הפקודה הבאה ב-CLI של gcloud מפעילה רישום ביומן של פלט יציאה טורית ב-Cloud Logging עבור מופע ספציפי:

gcloud compute instances add-metadata INSTANCE_NAME \
    --metadata serial-port-logging-enable=true

כדי להשבית את הרישום ביומן של פלט היציאה הטורית ב-Cloud Logging, מגדירים את serial-port-logging-enable לערך false:

gcloud compute instances add-metadata INSTANCE_NAME \
    --metadata serial-port-logging-enable=false

מסנני החרגה

מתוך Cloud Logging, אתם יכולים ליצור מסנן החרגה כדי להסיר רשומות ספציפיות של יציאות טוריות מ-Logs Explorer. לדוגמה, אם יש לכם רשומה של מטא-נתונים ברמת הפרויקט שהערך שלה הוא serial-port-logging-enable=true, אתם יכולים להשתמש במסנן מתקדם כדי להשבית את רישום הפלט ביומן של יציאה טורית עבור מקרים ספציפיים של Compute:

logName = "projects/PROJECT_ID/logs/serialconsole.googleapis.com%2Fserial_port_1_output"
resource.type = "gce_instance"
resource.labels.instance_id != "INSTANCE_1_ID"
resource.labels.instance_id != "INSTANCE_2_ID"

הגדרה של מדיניות הארגון

כדי להשבית את הרישום ביומן של פלט היציאה הטורית ב-Cloud Logging לכל הארגון, אפשר להגדיר מדיניות ארגונית שמגבילה הגדרות מסוימות של משאבי Google Cloud . באופן ספציפי, צריך להגדיר את האילוץ הבוליאני הבא: constraints/compute.disableSerialPortLogging. מידע נוסף זמין במאמר יצירה וניהול של מדיניות ארגונית.

השבתת הרישום ביומן של יציאות טוריות על ידי הגדרת constraints/compute.disableSerialPortLogging ל-true לא חלה רטרואקטיבית. מכונות וירטואליות קיימות עם רשומה במטא-נתונים שמפעילה רישום ביומן של יציאה טורית ב-Cloud Logging ממשיכות לרשום ביומן ב-Cloud Logging, אלא אם מאפסים את המטא-נתונים של המכונות האלה.

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

הצגת הפלט של היציאה הטורית

אפשר להשתמש במסוף Google Cloud , ב-CLI של gcloud או ב-REST כדי להציג את הפלט האחרון בגודל 1MB לכל יציאה טורית ממכונות פועלות. כדי לראות פלט שחורג מ-1MB לכל יציאה, או כדי לראות פלט ממכונות שהופסקו, צריך להשתמש ב-Cloud Logging.

המסוף

  1. נכנסים לדף VM instances במסוף Google Cloud .

    לדף VM instances

  2. בוחרים את המכונה שרוצים לראות את הפלט של היציאה הטורית שלה.

  3. בקטע Logs, לוחצים על יציאה טורית 1 (console)‎,‏ יציאה טורית 2 (console)‎,‏ יציאה טורית 3 או יציאה טורית 4.

    בדרך כלל, ישויות ברמת המערכת משתמשות בSerial port 1, שנקרא גם קונסולה טורית.

gcloud

כדי לראות את הפלט של יציאה טורית ממכונת Compute פעילה, משתמשים בפקודה gcloud compute instances get-serial-port-output.

gcloud compute instances get-serial-port-output INSTANCE_NAME \
  --port PORT \
  --start START \
  --zone ZONE

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

  • ‫INSTANCE_NAME: השם של המכונה.
  • ‫PORT: מספר היציאה (1,‏ 2,‏ 3 או 4) שרוצים להציג את הפלט שלה. בדרך כלל, ישויות ברמת המערכת משתמשות ביציאה הטורית הראשונה (יציאה 1), שנקראת גם מסוף טור. כברירת מחדל, הפלט של יציאת הטורים הראשונה מוחזר.
  • ‫START: אינדקס הבייט (הספירה מתחילה מ-0) של הבייט הראשון שרוצים להחזיר. משתמשים בדגל הזה אם רוצים להמשיך לקבל את הפלט של בקשה קודמת שהייתה ארוכה מדי בשביל להחזיר אותה בניסיון אחד.
  • ‫ZONE: האזור של המכונה.

REST

ב-API, יוצרים בקשת get ל-method‏ instances.getSerialPortOutput.

GET https://compute.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/serialPort

Cloud Logging

כדי לצפות ביומנים האלה, צריך לשלוח את הפלט של היציאה הטורית ל-Cloud Logging.

  1. נכנסים לדף Logs Explorer במסוף Google Cloud .

    כניסה לדף Logs Explorer

  2. בחלונית Query, מזינים את השאילתה הבאה ולוחצים על Run query:

    resource.type="gce_instance"
    logName="projects/PROJECT_ID/logs/serialconsole.googleapis.com%2Fserial_port_1_output"
    resource.labels.instance_id="INSTANCE_ID"
    

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

    • ‫PROJECT_ID: מזהה הפרויקט שמכיל את המכונה.
    • ‫INSTANCE_ID: המזהה של מכונת ה-Compute.

מידע נוסף על סינון ב-Logs Explorer זמין במאמר הצגת יומנים באמצעות Logs Explorer.

טיפול בתווים שאינם UTF8

הפלט של היציאה הטורית עובר escape באמצעות השיטה CHexEscape() של ספריית C++‎ של Abseil בקוד פתוח, כך שתווים שאינם UTF8 מקודדים כמחרוזות הקסדצימליות. אפשר להשתמש ב-method‏ CUnescape() המתאים כדי לקבל את הפלט המדויק שנשלח ליציאה הטורית.