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

הקדמה לניתוח הנציגות של Istio באמצעות Prometheus

רשת שירותי Istio מפשטת את הרשת משכבות היישום באמצעות מסכות צד (sidecar proxies). אפשר ליישם מדיניות אבטחה ורשת מתקדמת לכל התקשורת ברחבי המבנה התשתיתי שלך באמצעות Istio. 

אבל תכונה חשובה נוספת של Istio היא הניתוח הנציגות. אפשר להשתמש ב-Istio כדי לצפות בביצועים ובהתנהגות של כל המיקרושירות שלך במבנה התשתית (ראה את התמונה למטה). אחת האחריות העיקריות של מהנדסי נציגות אתר (Site reliability engineers – SREs) בארגונים גדולים היא לנטר את המדדים המובילים של היישומים שלהם, כגון שימוש בפונט, שימוש בזיכרון, עיכוב וקיבולת. 

במאמר זה נדון באיך מהנדסי SREs יכולים להשתמש בשלושת התוכנות הפתוחות – Istio, Prometheus ו-Grafana. בעוד Istio היא התוכנה של רשת השירותים המפורסמת ביותר, Prometheus היא התוכנה הנפוצה ביותר לניטור, ו-Grafana היא כלי ההדגשה המפורסם ביותר. 

הערה: השלבים בודקים עבור Istio 1.17.X

צפו בסרטון התצוגה של Istio, Prometheus ו-Grafana

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

שלב 1: עבור לתוספות Istio ולהחיל את קובץ YAML של Prometheus ו-Grafana

ראשית, עבור לתיקיית התוספות במדריך של Istio באמצעות הפקודה. מאחר שאני משתמש ב-1.17.1, הנתיב עבורי הוא istio-1.17.1/samples/addons

תבחין שאיסטיו כבר מספק כמה קבצי YAML להגדרת Grafana, Prometheus, Jaeger, Kiali וכו'. אפשר להגדיר את Prometheus בעזרת הפקודה הבאה:

Shell

 

kubectl apply -f prometheus.yaml
Shell

 

kubectl apply -f grafana.yaml

שים לב שקבצי YAML התוספת האלה מיושמים למרחב שמימוש הוא istio-system כברירת מחדל. 


שלב 2: פרוס שירות חדש והעברת כבירת כניסה של Istio

כדי להתנסות במודל הפעולה, נפרוס את השירות httpbin למרחב מותאם לאיסטיו. ניצור אובייקט של כבירת כניסה של Istio כדי לקבל את התנועה לשירות מהציבור הציבורי. 

נעביר גם את כבירת הכניסה של איסטיו ליצירת מפתח מסוים של-7777. 


אתה צריך לראות את המסך הבא בlocalhost:7777


שלב 3: פתיחת לוח המחוונים של Prometheus ו-Grafana

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

Shell

 

istioctl dashboard prometheus
Shell

 

istioctl dashboard grafana

גרפנה ו-Prometheus יפתחו ב-localhost. 


שלב 4: עשה בקשות HTTP מ-Postman

נראה איך השירות httpbin צורך ב-CPU או זיכרון כשיש עומס תנועה. ניצור כמה בקשות GET ו-POST ל-localhost:7777 מאפליקציית Postman.


פעמים רבות שאתה שולח בקשות GET או POST לשירות httpbin, משתמשים במשאבים, ואנו יכולים לראות אותם ב-Grafana. אך קודם כל, עלינו להגדיר את המדדים עבור שירות httpbin ב-Prometheus וב-Grafana.

שלב 5: הגדרת מדדים ב-Prometheus

אפשר לבחור מספר רב של מדדים הקשורים למשאבי Kubernetes כגון שרת ה-API, יישומים, עבודות, envoy וכו '. נבחר את המדד container_memory_working_set_bytes עבור ההתקנה שלנו.

ביישום Prometheus, נבחר את המרחב השמימי לאיסוף המדדים באמצעות המונח החיפוש הבא: container_memory_working_set_bytes { namespace= “istio-telemetry”} (istio-telemetry הוא שם המרחב השמימי שלנו עם Istio, שם מופעל שירות httpbin)

שים לב שפשוט רצים עם זה, אנו מקבלים את הזיכרון עבור המרחב השמימי שלנו. מאחר שאנו רוצים לנתח את שימוש הזיכרון בתאים שלנו, אפשר לחשב את הזיכרון הכולל שנצרך על ידי סיכום שימוש הזיכרון של כל תא מופעל לפי תא מופעל. השאילתה הבאה תעזור לנו להשיג את התוצאה הרצויה: sum(container_memory_working_set_bytes{namespace=”istio-telemetry”}) by (pod)


הערה: Prometheus מספק הרבה גמישות לסנן, לחתוך ולקרוע את נתוני המדדים. הרעיון המרכזי של המאמר הזה היה להציג את היכולת של Istio לפלוג ולשלוח מדדים ל-Prometheus לאיספק

שלב 6: הגדרת גרפים של מדדי Istio ב-Grafana

כעת, אתה יכול פשוט לקחת את השאילתה sum(container_memory_working_set_bytes{namespace=”istio-telemetry”}) by (pod) ב-Prometheus ולשרטט גרף עם זמן. כל שעליך לעשות הוא ליצור מזנון חדש ב-Grafana ולהדביק את השאילתה בדפדפן המדדים. Grafana ישרטט גרף סדרתי זמן. אתה יכול לערוך את הגרף עם שמות מתאימים, אגדות וכותרים לשיתוף עם שחקנים אחרים בצוות ה-Ops.


ישנן מספר דרכים לעטוף ולהתאים את הנתונים ולתאר את מדדי Prometheus ב-Grafana. אפשר לבחור לעשות את כל ההתאמות על פי הצרכים של העסק שלך. עשיתי כמה ניסויים בוידאו; תרגיש חופשי לבדוק אותו.

מסקנה

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

Source:
https://dzone.com/articles/how-to-configure-istio-prometheus-and-grafana-for-monitoring