הגדרה של Cloud Logging ל-Ruby

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

אין צורך להתקין את סוכן Cloud Logging כדי להשתמש בספריית Cloud Logging ל-Ruby במכונה וירטואלית ב-Compute Engine.

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

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Logging API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud Logging API.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  8. מתקינים Ruby מגרסה 2.2 ואילך.

התקנת הספרייה

אנחנו מספקים ספרייה של Cloud Logging ל-Ruby, שכוללת הטמעה של כלי לרישום ביומן קל לשימוש למסגרות אינטרנט של Ruby שמבוססות על Rack:

  1. מוסיפים את ה-gem של Google Cloud Observability ל-Gemfile:

    gem "stackdriver"
  2. משתמשים ב-Bundler כדי להתקין את ה-gem:

    bundle install
    

הפעלת הספרייה

אם אתם משתמשים ב-Ruby on Rails, ‏ Bundler טוען את הספרייה באופן אוטומטי לאפליקציה כשמפעילים אותה, וכך מגדיר את Rails.logger כברירת מחדל למופע של Cloud Logging logger.

אפליקציות אחרות שמבוססות על Rack יכולות להשתמש ב-Rack Middleware כדי להחליף את Rack logger ב-Cloud Logging logger אם מסגרת האינטרנט שלכם תומכת ב-Rack logger:

require "google/cloud/logging"

use Google::Cloud::Logging::Middleware

הגדרת הספרייה

אפשר להתאים אישית את ההתנהגות של ספריית Cloud Logging ל-Ruby. רשימת אפשרויות ההגדרה האפשריות מופיעה במאמר בנושא הגדרת הספרייה.

שימוש ב-Cloud Logging Logger

אחרי שמפעילים את ספריית Cloud Logging ל-Ruby, אפשר להשתמש ב-logger באפליקציה:

logger.info "Hello World!"
logger.error "Oh No!"

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

כתיבת יומנים באמצעות ספריית הלקוח של Cloud Logging

מידע על שימוש ישיר בספריית הלקוח של Cloud Logging עבור Ruby מופיע במאמר ספריות הלקוח של Cloud Logging.

ריצה ב- Google Cloud

כדי שאפליקציה תוכל לכתוב יומנים באמצעות ספריית Cloud Logging ל-Ruby, לחשבון השירות של המשאב הבסיסי צריך להיות תפקיד כותב יומנים (roles/logging.logWriter) ב-IAM. ברוב הסביבות, חשבון השירות שמוגדר כברירת מחדל מוגדר אוטומטית עם התפקיד הזה. Google Cloud

App Engine

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

מידע נוסף זמין במאמר בנושא כתיבה וצפייה ביומנים.

Google Kubernetes Engine (GKE)

GKE מעניק באופן אוטומטי לחשבון השירות שמוגדר כברירת מחדל את תפקיד ה-IAM‏ Logs Writer (roles/logging.logWriter). אם אתם משתמשים באיחוד זהויות של עומסי עבודה ל-GKE עם חשבון השירות שמוגדר כברירת מחדל כדי לאפשר לעומסי עבודה לגשת ל-APIs ספציפיים שלGoogle Cloud , לא נדרש שום שינוי נוסף בהגדרות. עם זאת, אם משתמשים באיחוד שירותי אימות הזהות של עומסי עבודה ב-GKE עם חשבון שירות מותאם אישית של IAM, צריך לוודא שלחשבון השירות המותאם אישית יש את התפקיד Logs Writer ‏ (roles/logging.logWriter).

במקרה הצורך, אפשר להשתמש גם בפקודה הבאה כדי להוסיף את logging.write היקף הגישה כשיוצרים את האשכול:

gcloud container clusters create example-cluster-name \
    --scopes https://www.googleapis.com/auth/logging.write

Compute Engine

כשמשתמשים במופעים של מכונות וירטואליות ב-Compute Engine, צריך להוסיף את היקף הגישה cloud-platform לכל מופע. כשיוצרים מכונה חדשה דרך מסוףGoogle Cloud , אפשר לעשות זאת בקטע Identity and API access (זהות וגישה ל-API) בחלונית Create Instance (יצירת מכונה). משתמשים בחשבון השירות שמוגדר כברירת המחדל ב-Compute Engine או בחשבון שירות אחר לפי בחירתכם, ובקטע Identity and API access בוחרים באפשרות Allow full access to all Cloud APIs. לא משנה איזה חשבון שירות תבחרו, חשוב לוודא שניתן לו התפקיד Logs Writer בקטע IAM & Admin במסוףGoogle Cloud .

הרצה באופן מקומי ובמקומות אחרים

כדי להשתמש בספריית Cloud Logging עבור Ruby מחוץ ל- Google Cloud, כולל הפעלת הספרייה בתחנת העבודה שלכם, במחשבים של מרכז הנתונים או במכונות וירטואליות של ספק שירותי ענן אחר, אתם צריכים להגדיר Application Default Credentials ‏ (ADC) בסביבה המקומית כדי לבצע אימות לספריית Cloud Logging עבור Ruby.

למידע נוסף אפשר לעיין במאמר הגדרת ADC לספק שירותי ענן מקומי או אחר.

באמצעות ממשק ההגדרות של Ruby on Rails:

אם אתם משתמשים ב-Ruby on Rails framework, צריך לספק את הפרמטרים דרך ממשק ההגדרה של Ruby on Rails:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Logging specific parameters
  config.google_cloud.logging.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.logging.keyfile    = "/path/to/service-account.json"
end

אפשר גם להגדיר הגדרה משותפת לכל אבני החן של Google Cloud Observability באמצעות:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  # Stackdriver Shared parameters
  config.google_cloud.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.keyfile    = "/path/to/service-account.json"
end

רישום ביומן מופעל כברירת מחדל כש-Rails פועל במצב ייצור. כדי להפעיל את הרישום ביומן במצב פיתוח, מוסיפים את התוסף הבא:

# Add this to config/environments/development.rb
Rails.application.configure do |config|
  config.google_cloud.use_logging = true
end

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

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

require "google/cloud/logging"

Google::Cloud.configure do |config|
  # Stackdriver Logging specific parameters
  config.logging.project_id = "YOUR-PROJECT-ID"
  config.logging.keyfile    = "/path/to/service-account.json"
end

אפשר גם להגדיר הגדרה משותפת לכל אבני החן של Google Cloud Observability באמצעות:

require "stackdriver"

Google::Cloud.configure do |config|
  # Stackdriver Shared parameters
  config.project_id = "YOUR-PROJECT-ID"
  config.keyfile    = "/path/to/service-account.json"
end

צפייה ביומנים

במסוף Google Cloud , נכנסים לדף Logs Explorer:

כניסה אל Logs Explorer

אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.

בכלי Logs Explorer, צריך לציין משאב אחד או יותר, אבל יכול להיות שלא ברור איך לבחור את המשאב. ריכזנו כאן כמה טיפים שיעזרו לכם להתחיל:

  • אם אתם פורסים את האפליקציה ב-App Engine או משתמשים בספריות ספציפיות ל-App Engine, צריך להגדיר את המשאב לערך GAE Application.

  • אם אתם פורסים את האפליקציה ב-Compute Engine, צריך להגדיר את המשאב ל-GCE VM Instance.

  • אם אתם פורסים את האפליקציה ב-Google Kubernetes Engine, הגדרת רישום היומנים של האשכול קובעת את סוג המשאב של רשומות היומן. במאמר מעבר לפתרון Google Cloud Observability Kubernetes Monitoring מוסבר בפירוט על הפתרונות Legacy Google Cloud Observability ו-Google Cloud Observability Kubernetes Monitoring, ועל ההשפעה של האפשרויות האלה על סוג המשאב.

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

  • אם לא מופיעים יומנים ב-Logs Explorer, כדי לראות את כל רשומות היומן, צריך לעבור למצב שאילתה מתקדם ולהשתמש בשאילתה ריקה.

    1. כדי לעבור למצב שאילתות מתקדם, לוחצים על תפריט (▾) בחלק העליון של הכלי Logs Explorer ואז בוחרים באפשרות המרה למסנן מתקדם.
    2. מנקים את התוכן שמופיע בתיבת הסינון.
    3. לוחצים על שליחת המסנן.

    אפשר לבדוק את הרשומות בנפרד כדי לזהות את המשאבים.

מידע נוסף זמין במאמר שימוש ב-Logs Explorer.