בתעשיות מפוקחות כמו פיננסים ובריאות, צריך לעקוב אחרי תשתיות קריטיות תוך שמירה על הנתונים אך ורק בתוך גבולות אזוריים.
תוכנת קוד פתוח (OSS) יכולה להשלים ולהרחיב את התכונות של Cloud Monitoring ו-Cloud Logging שזמינות כרגע ב- Cloud de Confiance by S3NS. בדוגמה הזו אפשר לראות איך ליצור פתרון מלא לניטור ריבוני ב-Cloud de Confiance by S3NS באמצעות הוספה של כלים פופולריים בקוד פתוח.
הארכיטקטורה משתמשת ב-OpenTelemetry, ב-Grafana Mimir וב-Grafana Loki (שמגובים על ידי Cloud Storage), ב-Grafana וב-Fluent Bit כדי ליצור מדדים, יומנים, המחשות חזותיות והתראות ל-Google Kubernetes Engine (GKE) ול-Compute Engine. כל הנתונים נשארים באזור הריבוני, ואין צורך לשלם עמלות SaaS של צד שלישי.
מומלץ להירשם לנתוני הגרסה הרלוונטיים כדי לקבל עדכונים עתידיים לגבי יכולות התצפית של Cloud de Confiance by S3NS .
כדי לפרוס את הפתרון הזה, צריך לפעול לפי ההטמעה לדוגמה שמצורפת באמצעות Terraform.
משתמשי היעד
הפתרון הזה מיועד לחברות שצריכות לעקוב אחרי עומסי עבודה בסביבות ריבוניות שלCloud de Confiance by S3NS . הוא משרת את בעלי העניין הבאים:
- מהנדסי אמינות אתרים (SRE) ומובילי DevOps שמקצים אחסון מדדים אוטומטי וניתן להרחבה וצינורות עיבוד נתונים של יומנים כדי לעקוב אחרי תקינות האפליקציה ואחרי הסכמי רמת השירות (SLA) של המערכת, בלי תחזוקה ידנית של הייצוא.
- קציני אבטחה ותאימות שמוודאים שיומני אפליקציות, מדדים ואותות תפעוליים רגישים נשארים מקומיים בגבולות הריבונות, ומונעים זרימה של נתונים מ-SaaS שלא נמצאים בריבונות.
- אדריכלי ענן ארגוניים שיוצרים בסיס OpenTelemetry סטנדרטי שמאפשר העברה מיידית לענן ומספק נתיב מעבר חלק למעקב אחר ענן של צד ראשון.
יכולות ליבה
- ניראות ריבונית ושמירת נתונים מקומיים: איסוף, עיבוד ואחסון של מדדי אפליקציות ליומני Compute Engine ו-GKE בתשתית הריבונית המקומית באמצעות קטגוריות של Cloud Storage.
- הטמעה סטנדרטית של OpenTelemetry: שימוש באוספי OpenTelemetry לאיסוף נתונים מבוסס-משיכה של Prometheus ולהטמעת מדדים של פרוטוקול OpenTelemetry (OTLP) מבוסס-דחיפה. הגישה הזו תומכת בתאימות עתידית עם מעקב בענן של צד ראשון.
- אחסון מדדים שניתן להתאמה ומגובה ב-Cloud Storage: מגדירים את Grafana Mimir ואת Grafana Loki כך שישתמשו ב-Cloud Storage בתור בק-אנד של בלוק מדדים של Prometheus, עם זמינות גבוהה ועלות משתלמת.
- תצוגה חזותית מאוחדת של נתוני הטלמטריה: הצגת לוחות בקרה מוגדרים מראש ב-Grafana, שמציגים מדדי אפליקציות בזמן אמת, סטרימינג של יומנים ב-Grafana Loki, יומני stdout של מכונות וירטואליות ב-Compute Engine, ושילוב של מקורות נתונים ב-Cloud Logging.
- צינור לרישום ביומן של מכונות וירטואליות ב-Compute Engine: התקנה אוטומטית של Fluent Bit ו-OpenTelemetry Collector Contrib במכונות וירטואליות ב-Compute Engine כדי להזרים יומני
systemd-journaldו-stdout ל-Grafana Loki, ל-Cloud Logging או לשניהם. אפשר גם לאסוף מדדים של מארח VM ומדדים סינתטיים של אפליקציית OTLP כדי להעביר אותם באמצעות mTLS אל Mimir. - אוטומציה גמישה של פריסה: שימוש בגישת תשתית כקוד (IaC) של Terraform וניהול חבילות של Kubernetes באמצעות Helm, כדי להגדיר ולפרק סביבות באופן עקבי.
ארכיטקטורה
בארכיטקטורה הזו נעשה שימוש ב-OpenTelemetry collectors, ב-Grafana Mimir, ב-Grafana Loki, ב-kube-state-metrics, ב-Fluent Bit, ב-cert-manager וב-Grafana כדי לעקוב אחרי עומסי עבודה של Compute Engine ו-GKE באמצעות Cloud Storage למדדים ו-Cloud Logging ליומנים. Mimir ו-Loki בתוך הענן הווירטואלי הפרטי (VPC) משתמשים במאזן עומסים של אפליקציות (ALB) פנימי דרך mTLS, כדי שמכונות וירטואליות של Compute Engine יוכלו לשלוח מדדים ויומנים. Grafana חשוף באופן חיצוני דרך HTTPS באמצעות GKE Gateway אזורי.
רכיבים
| רכיב | טכנולוגיה | מטרה |
|---|---|---|
| אוסף נתוני טלמטריה | OpenTelemetry collector | צינור עיבוד נתונים מרכזי של נתוני טלמטריה לעיבוד מדדי HTTP/gRPC של פרוטוקול OpenTelemetry (OTLP), גירוד נקודות קצה של Prometheus והעברה ל-Mimir. |
| מסד נתונים של מדדים | Grafana Mimir | מסד נתונים לאחסון מדדים של Prometheus לטווח ארוך, עם זמינות גבוהה ובלוקים קבועים ב-Cloud Storage. |
| מסד נתונים של יומנים | Grafana Loki | מסד נתונים של צבירת יומנים עם יכולת הרחבה אופקית, שבו יש מספר דיירים, והוא שומר מקטעים ואינדקסים של TSDB ב-Cloud Storage. |
| Object storage | Cloud Storage | מקצה קטגוריות ייעודיות למדדים של Mimir, ליומנים של Loki ולפריטי מידע משותפים שנוצרו בתהליך פיתוח (artifacts) של מעקב. |
| מדדים של מצב האשכול | kube-state-metrics
|
מאזין לשרת ה-API של Kubernetes ויוצר מדדים לגבי מצב האובייקטים של האשכול (כמו פריסות, צמתים או Pods). נאסף על ידי OpenTelemetry Collector באמצעות ServiceMonitor. |
| PKI ואישורים | cert-manager ומנפיק
PKI
|
מפעיל CA בסיסי פנימי ו-ClusterIssuer כדי להנפיק אישורי TLS או mTLS לרכיבים בתוך האשכול ולמכונות וירטואליות עצמאיות של Compute Engine. |
| Google Kubernetes Engine log Collector | Fluent Bit (DaemonSet) | אוסף את יומני ה-stdout של הקונטיינרים בצומתי GKE, מעשיר אותם במטא-נתונים של Kubernetes ומעביר אותם באמצעות OTLP mTLS אל GKE OTel Collector. |
| VM log collector | Fluent Bit ו-OpenTelemetry Contrib | איסוף יומני stdout של מערכת ההפעלה והאפליקציה במכונות וירטואליות עצמאיות של Compute Engine באמצעות systemd-journald, והעברתם בסטרימינג ל-Cloud Logging. |
| רישום מרכזי ביומן | Cloud Logging | יעד מרכזי ליומני רישום של מכונות וירטואליות ב-Compute Engine ושל פלטפורמות. |
| תצוגה חזותית והתראות | Grafana | שכבת המחשה של מרכז הבקרה, שהוגדרה מראש עם מקורות נתונים ל-Mimir, ל-Grafana Loki, ל-Cloud Monitoring ול-Cloud Logging. |
| אפליקציית הדגמה של התראות | Python (אפליקציית beacon) | מיקרו-שירות הדגמה שפולט מדדים סינתטיים של OTLP שנשלחים אל OpenTelemetry Collector כל 5 שניות. |
| Pull demo app | Python (אפליקציית חיישנים) | מיקרו-שירות (microservice) להדגמה שחושף נקודת קצה סטנדרטית של /metrics Prometheus, שנסרקת על ידי OpenTelemetry Collector. |
| אפליקציית הדגמה | Python | אפליקציית הדגמה שפועלת במכונות וירטואליות ב-Compute Engine כדי ליצור יומנים מובְנים ב-JSON ל-stdout. |
| פריסה | Terraform ו-Helm | פריסה אוטומטית של VPC, אשכול GKE, קטגוריה של Cloud Storage, תפקידים בניהול זהויות והרשאות גישה (IAM), מכונה וירטואלית של Compute Engine ותרשים Helm. |
הטמעת קובץ עזר
ב-GitHub אפשר למצוא הטמעה לדוגמה של הפתרון הזה באמצעות Terraform. הערה: זהו אב טיפוס להוכחת היתכנות שנבנה למטרות הדגמה, וההטמעה לא נבדקה או אובטחה לשימוש בתרחישי ייצור.
מידע על הדרישות המוקדמות והוראות הפריסה זמין במאמר Sovereign observability and monitoring with Grafana and OpenTelemetry.