איסוף יומנים במכשיר Google Distributed Cloud (GDC) עם air gap מאפשר לכם לצבור אירועים תפעוליים מתהליכי העבודה שלכם לצורך מעקב ופתרון בעיות. פורסים LoggingTarget משאב בהתאמה אישית במרחב השמות של הפרויקט ב-Management API server כדי לשלוף, להוסיף לאינדקס ולתייג יומנים מרכיבי השירות.
אחרי שמגדירים את איסוף היומנים, אפשר לשלוח שאילתות ליומנים ולצפות בהם בממשק המשתמש של Grafana. המלצות למכשור מפורטות בהנחיות לרישום ביומן של Kubernetes.
לפני שמתחילים
כדי לקבל את ההרשאות שדרושות לניהול משאבים בהתאמה אישית של LoggingTarget, צריך לבקש מהאדמין של הארגון או של הפרויקט ב-IAM להקצות לכם את אחד מהתפקידים שמשויכים ל-LoggingTarget.
בהתאם לרמת הגישה וההרשאות שאתם צריכים, אתם יכולים לקבל תפקידי יוצר, עריכה או צפייה במשאב הזה בארגון או בפרויקט. מידע נוסף זמין במאמר הכנת הרשאות IAM.
מפעילי אפליקציות: כדי לקבל את ההרשאות שנדרשות לניהול משאבים מותאמים אישית של
LoggingTargetבפרויקט בשרת ה-API לניהול, צריך לבקש מהאדמין של Project IAM להקצות לכם את אחד מהתפקידים הבאים במרחב השמות של הפרויקט:- LoggingTarget Creator: יוצר משאבים בהתאמה אישית של
LoggingTarget. מבקשים את התפקיד "יצירת LoggingTarget" (loggingtarget-creator). - עורך LoggingTarget: עורך או משנה משאבים בהתאמה אישית של
LoggingTarget. מבקשים את התפקיד "עריכת יעדי רישום ביומן" (loggingtarget-editor). - צפייה ב-LoggingTarget: צפייה במשאבים בהתאמה אישית של
LoggingTarget. מבקשים את התפקיד "צפייה ביעדי רישום ביומן" (loggingtarget-viewer).
- LoggingTarget Creator: יוצר משאבים בהתאמה אישית של
מנהלי פלטפורמה: כדי לקבל את ההרשאות שנדרשות לניהול משאבים בהתאמה אישית של
LoggingTargetבמרחב השמותplatform-obsבשרת ה-API לניהול, צריך לבקש מהאדמין של הארגון ב-IAM להקצות לכם את אחד מהתפקידים הבאים באשכול במרחב השמותplatform-obs:- LoggingTarget PA Creator: יוצר משאבים בהתאמה אישית של
LoggingTarget. מבקשים את תפקיד האשכול LoggingTarget PA Creator (loggingtarget-pa-creator). - עורך LoggingTarget PA: עורך או משנה משאבים מותאמים אישית של
LoggingTarget. מבקשים את התפקיד LoggingTarget PA Editor (loggingtarget-pa-editor) באשכול. - LoggingTarget PA Viewer: צפייה במשאבים בהתאמה אישית של
LoggingTarget. מבקשים את התפקיד LoggingTarget PA Viewer (loggingtarget-pa-viewer) באשכול.
- LoggingTarget PA Creator: יוצר משאבים בהתאמה אישית של
איסוף יומני פעילות
ביומנים תפעוליים מתועדים תנאים, שינויים ופעולות שמתרחשים בזמן שאתם מנהלים פעולות שוטפות באפליקציות ובשירותים ב-GDC. פורסים את המשאב המותאם אישית LoggingTarget בשרת Management API כדי להגדיר את צינור עיבוד הנתונים של רישום ביומן המערכת לאיסוף יומני תפעול משירותים ספציפיים ברמת הפרויקט.
כדי לאסוף יומני פעילות תפעולית משירות מסוים:
- מגדירים את המשאב המותאם אישית
LoggingTargetבשרת Management API, ומציינים את ה-Pods שנבחרו לאיסוף יומני הפעילות, את מרחב השמות של הפרויקט והגדרות נוספות. כדי ללמוד איךLoggingTargetצריך להיראות, קראו את המאמר הגדרת המשאב המותאם אישית שלLoggingTarget. פורסים את המשאב המותאם אישית
LoggingTargetבמרחב השמות של הפרויקט בשרת Management API:kubectl --kubeconfig MANAGEMENT_API_SERVER apply -f LOGGING_TARGET_NAMEמחליפים את מה שכתוב בשדות הבאים:
-
MANAGEMENT_API_SERVER: הנתיב של kubeconfig לשרת Management API באזור. -
LOGGING_TARGET_NAME: השם של המשאב בהתאמה אישית שלLoggingTarget, למשלmy-service-logging-target.yaml.
הצינור מתחיל לאסוף יומנים מהרכיבים הנוספים של הפרויקט.
-
שליחת שאילתות ליומנים ממכונה של Grafana בפרויקט. מידע נוסף זמין במאמר שליחת שאילתות והצגת יומנים.
להשתמש בתכונה המובנית של Grafana לקידוד צבעים, כדי להבדיל בין רמות שונות של יומני השירות. מידע נוסף על הגדרת ערכים של רמות יומנים זמין בכתובת https://grafana.com/docs/grafana/latest/explore/logs-integration/.
הגדרת המשאב בהתאמה אישית LoggingTarget
המשאב המותאם אישית LoggingTarget מורה לצינור עיבוד הנתונים של הרישום ביומן לאסוף יומנים משירותים ספציפיים בפרויקט GDC. אתם יכולים לציין את היעדים שאתם אוספים בשבילם יומנים, מנתח יומנים, רמות גישה והגדרות נוספות.
המשאב הזה מגדיר את ההגדרות הבאות:
- Targets: הקריטריונים לבחירת ה-pods והקונטיינרים שמהם רוצים לאסוף את היומנים. אפשר לציין שמות של אשכולות, קידומות של שמות Pods וקידומות של שמות קונטיינרים.
- מנתח יומנים: מנתח מוגדר מראש שמפרש רשומות ביומן, ממפה פלטים של יומנים לתוויות ומחלץ שדות רלוונטיים.
- זיהוי השירות: שם השירות שמופיע כתווית ברשומות ביומן, כדי שיהיה קל יותר לזהות ולסנן אותן.
הרשאה: רמת הגישה לרשומות ביומן, שקובעת מי יכול לראות את היומנים שנאספו.
הגדרת הפרמטרים האלה במשאב המותאם אישית LoggingTarget מאפשרת לכם לשלוט באופן מדויק באיסוף ובארגון של היומנים מהשירותים שלכם.
כדי לאסוף יומני פעילות תפעולית משירות מסוים:
- בוחרים את הפרויקט ב-GDC שממנו רוצים לאסוף את היומנים.
בהגדרות של
LoggingTarget, מציינים את ה-pods לאיסוף יומני הפעילות, את מרחב השמות של הפרויקט והגדרות נוספות.קובץ ה-YAML הבא מציג דוגמה להגדרה של
LoggingTargetב-my-project-namespace, שבה התחילית של שם ה-Pod לאיסוף היומנים היאmy-pod-prefix, רמת הגישה לרשומות ביומן ניתנת למפעילי אפליקציות (ao), שם השירות הואmy-service-nameוהפורמט של היומן הוא JSON:# Configures a log scraping job apiVersion: logging.gdc.goog/v1 kind: LoggingTarget metadata: # Choose a namespace that matches the namespace of the workload pods. namespace: my-project-namespace name: my-service-logging-target spec: selector: matchPodNames: - my-pod-prefix parser: json logAccessLevel: ao serviceName: my-service-nameכדי לראות שדות ואפשרויות נוספים, עיינו במפרט המלא של
LoggingTargetובמאמרי העזרה של ה-API.מחילים את ההגדרה
LoggingTargetעל שרת Management API באותו מרחב שמות כמו של פודי היעד:kubectl --kubeconfig KUBECONFIG_PATH apply -f LOGGING_TARGET_NAME.yamlמחליפים את מה שכתוב בשדות הבאים:
-
KUBECONFIG_PATH: הנתיב לקובץ kubeconfig של שרת Management API. -
LOGGING_TARGET_NAME: השם של קובץ ההגדרה שלLoggingTarget, למשלmy-service-logging-target.
צינור עיבוד הנתונים של הרישום ביומן מתחיל לאסוף יומנים מהרכיבים הנוספים של הפרויקט.
-
אתם יכולים לשלוח שאילתות על היומנים שנאספו באמצעות ממשק המשתמש של Grafana או באמצעות Log Query API. איך שולחים שאילתות וצופים ביומנים?
אם אתם משתמשים ב-Grafana כדי לשלוח שאילתות ליומנים, אתם יכולים להשתמש בתכונה המובנית של קידוד צבעים לרמות שונות של יומני השירות. מידע נוסף על הגדרת ערכים של רמות יומנים זמין בכתובת https://grafana.com/docs/grafana/latest/explore/logs-integration/.
המפרט המלא של LoggingTarget
קובץ ה-YAML הבא מציג דוגמה למפרט המלא של המשאב המותאם אישית LoggingTarget. למידע נוסף ולתיאור מלא של השדות, קראו את מאמרי העזרה של ה-API.
# Configures a log scraping job
apiVersion: logging.gdc.goog/v1
kind: LoggingTarget
metadata:
# Choose a namespace that matches the namespace of the workload pods.
namespace: PROJECT_NAMESPACE
name: LOGGING_TARGET_NAME
spec:
# Choose a matching pattern that identifies the pods for this job.
# Optional.
# Relationship between different selectors: 'AND'
selector:
# The clusters to collect logs from.
# The default configuration is to collect logs from all clusters.
# The relationship between different clusters is an 'OR' relationship.
# Optional
matchClusters:
- my-cluster
- another-cluster
# The pod name prefixes to collect logs from.
# The logging platform scrapes all pods with names
# that start with the specified prefixes.
# The values must contain '[a-z0-9-]' characters only.
# The relationship between different list elements is an 'OR' relationship.
# Optional.
matchPodNames:
- my-pod-prefix
- another-pod-prefix
# The container name prefixes to collect logs from.
# The logging platform scrapes all containers with names
# that start with the specified prefixes.
# The values must contain '[a-z0-9-]' characters only.
# The relationship between different list elements is an 'OR' relationship.
# Optional.
matchContainerNames:
- my-container-prefix
- another-container-prefix
# Choose the predefined parser for log entries.
# Use parsers to map the log output to labels and extract fields.
# Specify the log format.
# Optional.
# Options: klog_text, klog_json, klogr, gdch_json, json
parser: klog_text
# Specify an access level for log entries.
# The default value is 'ao'.
# Optional.
# Options: ao, pa, io
logAccessLevel: ao
# Specify a service name to be applied as a label.
# For user workloads consider this field as a workload name.
# Required.
serviceName: my-service-name
# The additional static fields to apply to log entries.
# The field is a key-value pair, where the field name is the key and
# the field value is the value.
# Optional.
additionalFields:
app: workload2
key: value
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_NAMESPACE: מרחב השמות של הפרויקט. -
LOGGING_TARGET_NAME: השם של קובץ ההגדרה שלLoggingTarget.