RESOURCES

עושים סדר בעולם הניטור

מתי משתמשים ב-Grafana ולמה כדאי להשקיע בניטור תשתיתי? בואו להכיר את כל הרכיבים של תחום הניטור בפיתוח מודרני

תחום כלי הניטור והניתוח לשלבי הפיתוח וה-DevOps עובר בשנים האחרונות פריחה אמיתית. בעבר צרכי הארגון מבחינת ניטור היו מתמקדים במשאבי IT, שהיו נמצאים פיזית בארגון, והמידע כלל בעיקר מעקב אחרי ניצול שטח אחסון, משאבי רשת וכדומה. המעבר לשירותי ענן, ביחד עם הצורך להעמיק את המידע המתקבל ממגוון שירותים נלווים לאפליקציות, הביא לפיתוח כלים מתקדמים יותר. כלים שיודעים להתממשק לאפליקציות עצמן ולעקוב אחר הביצועים ברמת הפעילות הפנימית, לנטר את יעילות בסיסי הנתונים, מהירות התגובה ומאפיינים נוספים שמסייעים לנתח את פעילות האפליקציה ולהביא אותה למצב אופטימלי. אם בעבר הכלים היו בבחינת “איים בודדים” שהציגו נתונים באופן עצמאי, הרי שהיום כל הכלים כוללים API נרחבים כדי לבנות פתרונות המאחדים נתונים ממקורות שונים, ומסייעים ליצור אוטומציה של ניטור הנתונים.

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

ניתן לחלק את תחום הניטור כיום לחמישה תת-תחומים עיקריים:

ניטור תשתיתי – מדובר בניטור הקלאסי של עולם ה-IT שבודק למעשה את המאפיינים הפיזיים של התשתית כמו שרתים, דיסקים, ציוד תקשורת ועד למיזוג אוויר וחשמל. המעקב יכול להתחיל בטמפרטורה של המעבד בשרת, דרך מהירות המאווררים, ועד למתח המגיע לציוד התקשורת. עם השנים והשימוש בשירותי ענן הצורך בניטור הפיזי הלך והתמעט, כיוון שחברות הענן דואגות לניטור הזה באופן קבוע, ומבצעות גם את הפעולות הנדרשות במקרה של חריגה. במידה ואתם מנהלים שרתים משלכם הצורך בניטור התשתית הוא כמובן הכרחי. כלים פופולריים בתחום הזה הם SolarWindsNagios או שירותי ענן כמו Datadog. הכלים הללו דורשים היכרות מעמיקה עם המאפיינים של התשתית, כמו לדוגמא טמפרטורות פעילות מומלצות, בשביל ליצור התראות (Alerts) מדויקות.

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

ניטור אפליקטיבי נעשה על ידי בדיקות מותאמות לאפליקציה כאשר רוב מערכות הניטור מאפשרות לשלב את הבדיקות הייעודיות לתוך הפלטפורמה. גם כאן ניתן להשתמש בפלטפורמות בקוד פתוח כגון Zabbix , Sensu Prometheus ובשירותים שונים בענן כגון AppDynamicDatadog  ו- NewRelic עם המוצרים השונים שלה.  ההבדלים בין הכלים השונים תלויים בצרכים שלכם, החל מאם אתם סטרטאפ שמפתח שירות אחד, או חברת גדולה שזקוקה לכלים מורכבים יותר ועלויות שנעות בין כמה עשרות דולרים לחודש, עד למאות דולרים לשרת. גם כאן, כדאי לקבל דעה של מומחים מקצועיים כדי להימנע מלרכוש כלי לא מתאים, ולבזבז זמן בכסף בהטמעה שלו, רק כדי להחליף אותו לאחר מכן.

ניטור גרפי – תמונה שווה אלף מילים, וגרף שווה אלף שורות של נתונים. השימוש בכלים גרפיים כדי להציג נתונים מסייע לקבל החלטות במהירות ולנהל מעקב בצורה פשוטה יותר מאשר נתונים מספריים. כלים כמו Grafana מסוגלים ליצור גרפים פשוטים ועד לוחות מחוונים (Dashboards) שכוללים מידע ממספר מקורות שונים. בגרפים אפשר להיעזר גם לצורך Debugging כדי לאתר בזמן הפיתוח חריגות בשימוש במשאבים או כדי לעקוב אחרי הפעילות באפליקציה.

אחד היתרונות של Grafana, פרויקט קוד פתוח פופולרי, היא סביבה עשירה של תוספים (Plugins) שיכולים לסייע לכם לבנות את הפתרון הגרפי הרצוי במהירות. החל ממפות עולמיות, דרך בדיקת מהירות הגישה לאפליקציה שלכם מכל מקום בעולם, ועד תוספים שמתממשקים לשירותי ענן שונים כמו Azure, או בסיסי נתונים כמו MySql ו-PostgreSQL וכמובן בתוסף שמציג שעון או נתונים מלוח השנה של גוגל, אם אתם רוצים להציג על לוחות המחוונים שלכם תאריכים חשובים.

ניתוח יומני מעקב (Log Files) – כל שירות מייצר היום כמות עצומה של נתונים לצורך מעקב היסטורי, והיכולת לנתח אותם היא שימושית כדי לבדוק מגמות לאורך זמן או לנתח תקלות שמתרחשות בתכיפות נמוכה יותר. במשך שנים Splunk הייתה השליטה הבלתי מעורערת, אבל ELK הפלטפורמה מבוססת קוד פתוח של חברת Elastic כבשה את התחום בסערה. למרות שהן לא תמיד מציעות את אותן היכולות, Splunk היא כלי יקר, לעומת המחיר העגול של ELK שעומד על אפס בדיוק. למרות היכולת להשתמש בכלים בחינם, הגדרה והטמעה מדויקת שלהם לצרכים שלכם, דורשת כבר יותר מומחיות וניסיון, וייתכן שכאן שווה להשקיע במומחים שיסייעו בהתאמה לדרישות שלכם. ראויות לציון בתחום GraylogDatadog וגם logz.io הישראלית שמתחברת לסביבה של ELK.

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