ניטור, בקרה ונראות עם Azure Monitor

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

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

מהו Azure Monitor

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

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

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

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

המטרה של Azure Monitor היא לספק אפשרויות מגוונות על כל הרכיבים בענן, בין היתר:

  • אבטחת מידע
  • שליטה ובקרה
  • הדמיית נתונים
  • אוטומציה
  • חסכון בעלויות (באופן עקיף)

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

התרשים המצורף מתאר באופן כללי את הארכיטקטורה של Azure Monitor ואת כל הרכיבים הקיימים, החל מהשכבות שמספקות את המידע (מקורות המידע), דרך הרכיבים שמאחסנים את המידע (Data Store) ועד הפונקציונליות שממנה ניתן להפיק מידע ובדרכים שונות.

למשל, תרחישים בהם ניתן להשתמש עם Azure Monitor הוא הפעלת לוגים לתשתית Azure AD או איסוף מידע או לנטר רכיבי Native של Azure.

סוגי המידע

הפלטפרומה של Azure Monitor מבוססת על שני סוגי מידע והם מטריקות ולוגים (Metrics & Logs), וכל אחד מהם מספק מידע מסוים המשלים אחד את השני במטרה לספק מידע מדויק וקרוב לזמן אמת.

מטריקות (Metrics) הם "נתונים קלים" המתבססים על ערכים נומרים המתארים היבט (תצוגה) כלשהיא של רכיב או מערכת בנקודת זמן מסוימת, ומסוגלים לתמוך בתרחישים קרובים לזמן אמת או במושג המוכר יותר תרחישים Near Real Time.

לוגים (Logs) מכילים סוגים שונים של נתונים המאוחסנים ברשומות שונות על גבי קבוצות שונות של מאפיינים עבור כל סוג מידע, למשל טלמטריה מכילים מידע מסוג events או traces המאוחסנים לצד לוגים של ביצועים, ויחדיו מאפשרים שילוב של המידע וסוגי המידע למטרות ניתוח ואבחון המידע.

במקרים רבים בהם מפעילים ומגדירים רכיבי ענן מתרחשת פעולה אוטומטית מאחורי הקלעים, והיא הפעלת לוגים לאותו רכיב או שירות, ומדובר על activity reports או audit logs ואיתם ניתן לנתח פעולות שונות ברמת הרכיב, אך עדיין לא מדובר על לוגים או מטריקות המשויכים באופן אוטומטי אל Azure Monitor או אחד מרכיביו.

בכל רכיב בשירות Azure ניתן לבצע אינטגרציה מול Azure Monitor בשביל לעבוד עם כל אותם לוגים ומטריקות על גבי Log Analytics או Power BI ונוספים.

אם נקח דוגמה פשוטה של מכונה וירטואלית (VM) על Azure ונפעיל את האפשרויות Monitoring נוכל לראות כי ישנם אינספור אפשרויות להביט על המידע ברמת Insight, או ברמת Metrics וכן הלאה.

טיפ: אנו יכולים לקבוע איך להשתמש במידע (לוגים ומטריקות) בהתאם לדרישות, למשל ביצוע פעולות AutoScale על סמך הנתונים

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

לוגים שנאספים ע"י Azure Monitor מאפשרים לבצע פעולות עם הנתונים וביצוע שאילתות בכדי לאחזר, לאחד ולנתח נתונים באופן מהיר, למשל ניתן ליצור שאילתות על גבי Log Analytics בשביל לקבל ויזואליזציה של הנתונים.

אחד היתרונות הוא שימוש עם שפת Kusto Query Language אשר עושה שימוש על גבי Azure Data Explorer בשביל לקבל פונקציונליות בסיסית או מתקדמת, ומכיוון ששפת KQL היא אחת השפות החשובות בענן אפשר לעשות עם KQL כל כך הרבה פעולות, כמו זאת שבדוגמה שלפנינו.

איזה מידע נאסף ע"י Azure Monitor

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

המידע שנאסף ע"י Azure Monitor הוא:

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

מידע של Guest OS עם איסוף נתונים על מערכת הפעלה עליה פועל היישום וכאן זה יכול להיות בשירות Azure או כל סביבה אחרת

מידע של Azure Resource ואיסוף נתונים על כל רכיב אשר נמצא ברמת Azure Resource

מידע לגבי Subscription ואיסוף נתונים של Azure Subscription, וכן איסוף נתונים על תקינות ותפעול של Azure

מידע על Azure Tenant ואיסוף נתונים על Azure Tenant וכל הפעולות הנעשות ברמת הטננט, למשל פעולות של Azure AD

אם אפשר לומר בקצרה, אז Azure Monitor אוסף מידע ברמת הבורג מכל רכיב ומקשר אותו לרכיבים אחרים הקיימים בענן (או אם זה מקושר לתשתית מקומית).

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

Azure Monitor Architecture

לסיכום

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

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

מה דעתך?

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