לדלג לתוכן

הרצאה: Observability ומערכת Elastic (ELK)

הקדמה – למה חשוב Observability?

כאשר מערכת גדלה, במיוחד במיקרוסרביסים וענן:

  • קשה לדעת איפה קיימת בעיה
  • קשה למדוד ביצועים של שירותים שונים
  • קשה לעקוב אחרי משתמשים ובקשות

הObservability נותן לנו תובנות עמוקות על המערכת בזמן אמת:

"היכולת להבין מה קורה במערכת על סמך לוגים, מטריקות וטרייסים"


שלושה יסודות של Observability

  1. Logs – לוגים

  2. רשומות של אירועים שקורים במערכת

  3. לדוגמה: User login failed, Payment processed
  4. מאפשר איתור שגיאות ותקלות

  5. Metrics – מדדים

  6. מספרי ביצועים וסטטיסטיקות

  7. CPU, Memory, Request Latency, Throughput
  8. מאפשר ניטור ביצועים לאורך זמן

  9. Traces – מעקב (Distributed Tracing)

  10. מעקב אחרי בקשה אחת במערכת שמורכבת ממיקרוסרביסים

  11. מאפשר לדעת איפה הבקשה איטית או נכשלת
  12. לדוגמה: בקשה ל-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

  1. התקנת Filebeat ב-EC2

  2. אוסף לוגים של FastAPI (uvicorn.log)

  3. שולח ל-Logstash → Elasticsearch

  4. יצירת Dashboard ב-Kibana

  5. גרפים של מספר בקשות, שגיאות, זמן תגובה

  6. זיהוי שירותים איטיים או בעיות בבקשות

  7. מדדים ודוחות

  8. CPU, Memory, Disk של השרתים

  9. HTTP status codes
  10. מספר בקשות/שנייה (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

  • איתור שגיאות
  • סקיילינג חכם של מערכת בענן