בדף הזה מוסבר איך להשתמש במדדים כדי לעקוב אחרי Policy Controller.
Policy Controller כולל מדדים רבים שקשורים לשימוש במדיניות. לדוגמה, יש מדדים שמתעדים את מספר האילוצים ותבניות האילוצים, ואת מספר ההפרות של הביקורת שזוהו. כדי ליצור ולתעד את המדדים האלה, Policy Controller משתמש ב-OpenTelemetry. אפשר להגדיר את Policy Controller כך שהוא ייצא את המדדים האלה אל Prometheus או אל Cloud Monitoring. הגדרת ברירת המחדל לייצוא מדדים היא ייצוא המדדים גם ל-Prometheus וגם ל-Cloud Monitoring.
תמחור
מדדים של Policy Controller משתמשים בשירות המנוהל של Google Cloud ל-Prometheus כדי לטעון מדדים ל-Cloud Monitoring. החיובים על הטמעת המדדים האלה ב-Cloud Monitoring מבוססים על מספר הדגימות שהוטמעו.
מידע נוסף זמין במאמר בנושא תמחור של Cloud Monitoring.
הגדרת ייצוא מדדים
אתם יכולים להגדיר איך Policy Controller מייצא את המדדים שלו. כשמתקינים את Policy Controller, אפשר לבחור ב-Prometheus, ב-Cloud Monitoring, בשניהם או באף אחד מהם. כברירת מחדל, Policy Controller מנסה לייצא מדדים גם ל-Prometheus וגם ל-Cloud Monitoring.
ייצוא מדדים ל-Cloud Monitoring
כדי לאפשר ל-Policy Controller לייצא מדדים ל-Cloud Monitoring, לחשבון השירות שבו משתמש Policy Controller צריך להיות תפקיד IAM roles/monitoring.metricsWriter בפרויקט. כדי להקצות את התפקיד הזה, אפשר לבצע אחת מהפעולות הבאות:
אם Policy Controller פועל בסביבה Google Cloud שיש בה חשבון שירות שמוגדר כברירת מחדל, צריך להקצות לחשבון השירות הזה את התפקיד
roles/monitoring.metricsWriterבפרויקט:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --role=roles/monitoring.metricsWriterמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
PROJECT_NUMBER: מספר הפרויקט Google Cloud.
-
אם מופעלים איחוד זהויות של עומסי עבודה ל-GKE או איחוד זהויות של עומסי עבודה בצי, צריך להעניק את התפקיד
roles/monitoring.metricsWriterבפרויקט לחשבון השירות של Kubernetes שבו משתמש Policy Controller:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.svc.id.goog[gatekeeper-system/gatekeeper-admin]" \ --role=roles/monitoring.metricWriterמחליפים את
PROJECT_IDבמזהה הפרויקט של האשכול. Google Cloud
אפשר לראות את המדדים האלה באמצעות Metrics Explorer או באמצעות Cloud Monitoring API.
ייצוא מדדים אל Prometheus
Policy Controller מייצא מדדים ל-Prometheus ביציאה 8888 של ה-Pod gatekeeper-controller-manager-* במרחב השמות gatekeeper-system.
אם Policy Controller פועל באשכול עם השירות המנוהל של Google Cloud ל-Prometheus מוגדר, המדדים האלה ייאספו ויישמרו באופן אוטומטי ב-Cloud Monitoring. השיטה הזו רלוונטית גם לאשכולות שבהם מפעילים את השירות המנוהל של Google Cloud ל-Prometheus אחרי ההתקנה של Policy Controller. יכול להיות שתצטרכו גם להעניק הרשאות נוספות לחשבון השירות שמשמש כברירת המחדל של Compute Engine, שבו נעשה שימוש בשירות המנוהל של Google Cloud ל-Prometheus, בהתאם למדיניות שלכם. פרטים על מתן הרשאות לשירות המנוהל של Google Cloud ל-Prometheus זמינים במאמר הפעלת איסוף מנוהל: GKE. מידע נוסף על הגדרת השירות המנוהל של Google Cloud ל-Prometheus זמין במאמר תחילת השימוש באיסוף מנוהל.
מידע נוסף על התמחור של Cloud Monitoring זמין במאמר תמחור של שירות מנוהל של Google Cloud ל-Prometheus.
דוגמאות לאופן הצגת מדדים באמצעות הפתרון 'שירות מנוהל של Google Cloud ל-Prometheus' מופיעות במאמר שאילתה באמצעות Cloud Monitoring.
הצגת המדדים
מדדים של Policy Controller מיוצאים לפרויקט Cloud Monitoring בפורמט Prometheus. כתוצאה מכך, תוכלו לשלוח שאילתות למדדים באמצעות Cloud Monitoring API ולוח בקרה במסוף Google Cloud . אתם יכולים לערוך את מרכז הבקרה הזה בהתאם לצרכים העסקיים והתפעוליים שלכם.
כדי לשלוח שאילתות ל-Cloud Monitoring API, אפשר להשתמש בשפת השאילתות של Prometheus (PromQL) (שפת השאילתות הסטנדרטית למדדי Kubernetes) או בשפת השאילתות של Monitoring (MQL) (שפת השאילתות הקניינית של Google למדדים).
אפשר להשתמש בתבנית כדי להגדיר לוח בקרה. לשם כך, מחפשים את האפשרות Policy Controller בדף Cloud Monitoring Dashboards. מידע נוסף על יצירה ועריכה של תבניות ללוחות בקרה זמין במסמכי העזרה של Cloud Monitoring.
יצירת התראות
כדי לקבל התראות כשהמדדים מגיעים לספים מסוימים, צריך ליצור מדיניות התראות ב-Cloud Monitoring.
שילוב צד שלישי
באמצעות Cloud Monitoring API, כל כלי צד שלישי למעקב אחר נתונים יכול לקבל מדדים של Policy Controller.
לדוגמה, אם אתם משתמשים בלוחות בקרה של Grafana, תוכלו להוסיף את Cloud Monitoring API כמקור הנתונים ב-Grafana. מידע נוסף זמין במאמר בנושא Google Cloud Monitoring במסמכי התיעוד של Grafana.
מדדים זמינים
אם Policy Controller מופעל באשכול שלכם והוא מוגדר לייצוא ל-Cloud Monitoring, תוכלו לשלוח שאילתות לגבי המדדים הבאים (כולם עם הקידומת OpenCensus/):
| שם | סוג | תוויות | תיאור |
|---|---|---|---|
OpenCensus/audit_duration_seconds |
מצטבר | התפלגות משך הזמן של מחזור הביקורת | |
OpenCensus/audit_last_run_time |
מד | חותמת הזמן של התקופה מאז זמן הריצה האחרון של הביקורת, בשניות בפורמט של נקודה צפה | |
OpenCensus/constraint_template_ingestion_count |
מצטבר | סטטוס | המספר הכולל של פעולות ההטמעה של תבניות אילוצים |
OpenCensus/constraint_template_ingestion_duration_seconds |
מצטבר | סטטוס | התפלגות משך ההטמעה של תבנית אילוצים |
OpenCensus/constraint_templates |
מד | סטטוס | מספר תבניות האילוצים הנוכחי |
OpenCensus/validation_request_count |
הצעה נגדית | admission_status | מספר בקשות הגישה משרת ה-API |
OpenCensus/validation_request_duration_seconds |
מצטבר | admission_status | התפלגות משך הזמן של בקשות הקבלה |
OpenCensus/violations |
מד | enforcement_action | מספר ההפרות של כללי הביקורת שזוהו במחזור הביקורת האחרון |
OpenCensus/watch_manager_intended_watch_gvk |
מד | כמה GroupVersionKinds ייחודיים אמורים להיות במעקב של Policy Controller. המדד הזה מייצג שילוב של משאבים מסונכרנים ואילוצים. | |
OpenCensus/watch_manager_watched_gvk |
מד | כמה GroupVersionKinds ייחודיים נמצאים בפועל במעקב של Policy Controller. המדד הזה אמור להתכנס למספר ששווה ל-OpenCensus/watch_manager_intended_watch_gvk. |
אם Policy Controller מוגדר לייצוא ל-Prometheus, אפשר להריץ שאילתות לגבי המדדים הבאים (לכולם יש את הקידומת Prometheus/):
| שם | סוג | תוויות | תיאור |
|---|---|---|---|
Prometheus/gatekeeper_audit_duration_seconds/histogram |
מצטבר | התפלגות משך הזמן של מחזור הביקורת | |
Prometheus/gatekeeper_audit_last_run_end_time/gauge |
מד | חותמת הזמן של סוף הרצת הביקורת האחרונה, בפורמט epoch, בשניות בנקודה צפה | |
Prometheus/gatekeeper_audit_last_run_time/gauge |
מד | חותמת הזמן של ראשית הזמן של ההפעלה האחרונה של הביקורת, בשניות בפורמט של נקודה צפה | |
Prometheus/gatekeeper_constraint_template_ingestion_count/counter |
מצטבר | סטטוס | המספר הכולל של פעולות ההטמעה של תבניות אילוצים |
Prometheus/gatekeeper_constraint_template_ingestion_duration_seconds/histogram |
מצטבר | סטטוס | התפלגות משך ההטמעה של תבנית אילוצים |
Prometheus/gatekeeper_constraint_templates/gauge |
מד | סטטוס | מספר תבניות האילוצים הנוכחי |
Prometheus/gatekeeper_validation_request_count/counter |
מצטבר | admission_status, admission_dryrun | מספר בקשות הגישה משרת ה-API |
Prometheus/gatekeeper_validation_request_duration_seconds/histogram |
מצטבר | admission_status | התפלגות משך הזמן של בקשות הקבלה |
Prometheus/gatekeeper_violations/gauge |
מד | enforcement_action | מספר ההפרות של כללי הביקורת שזוהו במחזור הביקורת האחרון |
Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge |
מד | כמה GroupVersionKinds ייחודיים אמורים להיות במעקב של Policy Controller. המדד הזה מייצג שילוב של משאבים מסונכרנים ואילוצים. | |
Prometheus/gatekeeper_watch_manager_watched_gvk/gauge |
מד | כמה GroupVersionKinds ייחודיים נמצאים בפועל במעקב של Policy Controller. המדד הזה אמור להתכנס למספר ששווה ל-Prometheus/gatekeeper_watch_manager_intended_watch_gvk/gauge. |