הרצאה: Observability ומערכת Elastic (ELK)¶
הקדמה – למה חשוב Observability?¶
כאשר מערכת גדלה, במיוחד במיקרוסרביסים וענן:
- קשה לדעת איפה קיימת בעיה
- קשה למדוד ביצועים של שירותים שונים
- קשה לעקוב אחרי משתמשים ובקשות
הObservability נותן לנו תובנות עמוקות על המערכת בזמן אמת:
"היכולת להבין מה קורה במערכת על סמך לוגים, מטריקות וטרייסים"
שלושה יסודות של Observability¶
-
Logs – לוגים
-
רשומות של אירועים שקורים במערכת
- לדוגמה:
User login failed,Payment processed -
מאפשר איתור שגיאות ותקלות
-
Metrics – מדדים
-
מספרי ביצועים וסטטיסטיקות
- CPU, Memory, Request Latency, Throughput
-
מאפשר ניטור ביצועים לאורך זמן
-
Traces – מעקב (Distributed Tracing)
-
מעקב אחרי בקשה אחת במערכת שמורכבת ממיקרוסרביסים
- מאפשר לדעת איפה הבקשה איטית או נכשלת
- לדוגמה: בקשה ל-FastAPI → Database → External API
למה Observability קריטי?¶
- לזהות בעיות לפני שהן משפיעות על המשתמש
- להבין את ביצועי המערכת ולהפיק החלטות סקיילינג
- לתמוך ב-CI/CD ובפרויקטים בענן
Elastic Stack – פתרון Observability¶
Elastic Stack (ELK) = Elasticsearch + Logstash + Kibana
1. Elasticsearch¶
- מנוע חיפוש וניתוח מבוסס מסמכים
- שומר את הלוגים, מדדים וטרייסים
- מאפשר חיפוש מהיר ומתקדם
2. Logstash¶
- כלי לאיסוף, עיבוד והעברה של לוגים ל-Elasticsearch
- יכול לקרוא ממקורות שונים (קבצי לוג, Docker, Kafka)
- מאפשר עיבוד כמו פילטרים, המרה או שינוי מבנה הלוג
3. Kibana¶
- ממשק ויזואלי להצגת לוגים, מדדים וטרייסים
- מאפשר dashboards, גרפים, אנליזות בזמן אמת
4. Beats (אפשרי)¶
- סוכנים קלים שאוספים מידע מהשרתים ומעבירים ל-Elasticsearch
- לדוגמה: Filebeat (לוגים), Metricbeat (מדדים), Packetbeat (רשת)
דוגמה לשימוש ב-Elastic עם FastAPI¶
-
התקנת Filebeat ב-EC2
-
אוסף לוגים של FastAPI (
uvicorn.log) -
שולח ל-Logstash → Elasticsearch
-
יצירת Dashboard ב-Kibana
-
גרפים של מספר בקשות, שגיאות, זמן תגובה
-
זיהוי שירותים איטיים או בעיות בבקשות
-
מדדים ודוחות
-
CPU, Memory, Disk של השרתים
- HTTP status codes
- מספר בקשות/שנייה (throughput)
Observability בענן ומיקרוסרביסים¶
- כל microservice שולח לוגים ומדדים ל-central ELK stack
- Kibana מרכז את כל המידע ונותן תמונה מלאה
- מאפשר לזהות bottleneck או failure במהירות
יתרונות Elastic + Observability¶
- ניטור בזמן אמת של כל המערכת
- חיפוש מתקדם בלוגים ובמדדים
- תמיכה במיקרוסרביסים, קונטיינרים ו-Docker
- מאפשר dashboards מותאמים לכל צוות
- מאפשר הפעלת Alerts – לדוגמה: “אם יש יותר מ-5% שגיאות HTTP → לשלוח הודעה ל-Slack”
סיכום¶
-
Observability = יכולת להבין מה קורה במערכת בעזרת:
-
Logs, Metrics, Traces
-
Elastic Stack = כלי חזק לניטור וניתוח:
-
Elasticsearch → אחסון וחיפוש
- Logstash → איסוף ועיבוד לוגים
- Kibana → ויזואליזציה ודוחות
-
שימוש בפרויקטים כמו TRIP מאפשר:
-
ניטור בקשות API
- איתור שגיאות
- סקיילינג חכם של מערכת בענן