יצירה וניתוח של דוח תלות ברשת

בדף הזה מוסבר איך ליצור את הדוח 'תלות ברשת' ב-Migration Center ולנתח אותו. בדוח 'תלות ברשת' מוצגים נתונים מצטברים חודשיים על החיבורים לשרתים ולמסדי הנתונים שלכם. בדוח 'תלות ברשת' אפשר לראות את כל החיבורים לנכסים בתשתית, ואת מספר הפעמים שבהם Migration Center זיהה את החיבור, בסיכום חודשי.

כדי לאסוף נתונים על תלות ברשת, צריך להפעיל את לקוח הגילוי למשך תקופה מסוימת ולאפשר את סנכרון הנתונים עם Migration Center. ככל שתריצו את האיסוף למשך זמן ארוך יותר, כך יהיו ל-Migration Center יותר נתונים לניתוח התובנות לגבי התלות ברשת. ‫Migration Center מזהה את כל חיבורי הרשת מתוך הנכסים שנסרקו. נכסי היעד בחיבור יכולים להיות נכסים במלאי שלכם ב-Migration Center שגיליתם באמצעות לקוח הגילוי, נכסים שיובאו באופן ידני או אפילו נכסים לא מוכרים שנמצאים מחוץ לסביבה שלכם.

הדוח 'תלות ברשת' שימושי בתרחישים הבאים:

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

אפשר להוריד את דוח התלות ברשת כקובץ CSV מ-Migration Center. אחרי הייצוא, תוכלו לבצע את הניתוח באמצעות BigQuery והשאילתות לדוגמה שמופיעות ב-Migration Center, או להשתמש בכל כלי אחר של צד שלישי.

מגבלות

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

לפני שמתחילים

יצירת דוח על תלות ברשת

כדי ליצור דוח תלות ברשת, פועלים לפי השלבים הבאים:

  1. נכנסים לדף Create reports במסוף Google Cloud .

    מעבר לדף 'יצירת דוחות'

  2. לוחצים על ייצוא של תלות ברשת.

  3. מהרשימה של הקבוצות, בוחרים את הקבוצות שעבורן רוצים ליצור את הדוח ולוחצים על ייצוא.

  4. בתיבת הדו-שיח שמופיעה, לוחצים על ייצוא.

    יכול להיות שיעברו עד שעה עד שהדוח המיוצא ייווצר. אחרי שהדוח נוצר, נפתח הדף Network dependencies.

  5. כדי להוריד דוח ספציפי, לוחצים על הורדה.

ניתוח הדוח 'תלות ברשת' ב-BigQuery

בקטעים הבאים מופיעות כמה שאילתות לדוגמה לניתוח תרחישים נפוצים ב-BigQuery. לפני שמריצים שאילתה, צריך להעלות את קובץ ה-CSV ל-BigQuery.

השימוש ב-BigQuery כרוך בתשלום בהתאם לתמחור של BigQuery.

זיהוי נכסים עם הכי הרבה חיבורים

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

SELECT
 LocalVMName, SUM(ConnectionCount) as TotalCount
FROM
 PROJECT.DATASET.TABLE
GROUP BY ALL
ORDER BY TotalCount DESC

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT: הפרויקט Google Cloud שבו העליתם את קובץ ה-CSV.
  • DATASET: מערך הנתונים ב-BigQuery.
  • TABLE: הטבלה ב-BigQuery.

הנה פלט לדוגמה מהשאילתה הזו:

LocalVMName TotalCount
VM-x5ua3o2w 9970
VM-glg5np3w 9763
VM-q3z4zfp8 9557
VM-2nnsrt37 9372
VM-1oah56hn 9350

זיהוי קשרים לפי עומק הגרף

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

  • אם עומק הגרף הוא 1, מוצגים כל הנכסים שמחוברים ישירות לנכס הראשי.
  • אם עומק הגרף הוא 2, מוצגים כל הנכסים שמחוברים ישירות לנכסים אחרים, שמחוברים ישירות לנכס הראשי.
DECLARE
 local_vm_name STRING DEFAULT MAIN_ASSET;
DECLARE
 depth INT64 DEFAULT DEPTH;
CREATE TEMP FUNCTION
 recursiveConnections(localVmName STRING,
   connectionsArray ARRAY<STRING>,
   depth INT64)
 RETURNS STRING
 LANGUAGE js AS r"""
 const connections = connectionsArray.map(connection => connection.split('|||'))
   .filter(connectionTuple => connectionTuple[1] !== 'Unscanned Device');
 const connectedAssets = new Set([localVmName]);
 for (let i = 0; i < depth; i++) {
   const currentSet = new Set(connectedAssets);
   for (const connection of connections) {
     /* Look for connections where the asset is the local asset */
     if (currentSet.has(connection[0])) {
       connectedAssets.add(connection[1]);
     }
     /* Look for connections where the asset is the remote asset */
     if (currentSet.has(connection[1])) {
       connectedAssets.add(connection[0]);
     }
   }
 }
 connectedAssets.delete(localVmName);
 return Array.from(connectedAssets).sort().join(', ');
""";
SELECT
 local_vm_name AS LocalVMName,
 recursiveConnections(local_vm_name,
   ARRAY_AGG(CONCAT(LocalVMName, '|||', RemoteVMName)),
   depth) AS Connections
FROM
 PROJECT.DATASET.TABLE

מחליפים את מה שכתוב בשדות הבאים:

  • MAIN_ASSET: השם של הנכס שרוצים לזהות את החיבורים אליו.
  • DEPTH: עומק הגרף.

הנה פלט לדוגמה מהשאילתה הזו:

LocalVMName חיבורים
VM-lv8s148f VM-2z8wp3ey,
VM-66rq2x2y,
VM-94uwyy8h,
VM-ccgmqqmb,
VM-ctqddf0u,
VM-og4n77lb,
...

סינון חיבורים לפי טווחי IP ויציאות

השאילתה הבאה מאפשרת לזהות נכסים שמשתמשים בכתובות IP ויציאות בטווחים שאתם מגדירים.

CREATE TEMP FUNCTION
 ipBetween(value STRING,
   low STRING,
   high STRING) AS ( NET.IPV4_TO_INT64(NET.IP_FROM_STRING(value)) BETWEEN NET.IPV4_TO_INT64(NET.IP_FROM_STRING(low))
   AND NET.IPV4_TO_INT64(NET.IP_FROM_STRING(high)) );
SELECT
 *
FROM
 PROJECT.DATASET.TABLE
WHERE
 ((LocalPort BETWEEN PORT_START
     AND PORT_END)
   OR (RemotePort BETWEEN PORT_START
     AND PORT_END))
 AND (ipBetween(LocalIP,
     IP_START,
     IP_END)
   OR ipBetween(RemoteIP,
     IP_START,
     IP_END))

מחליפים את מה שכתוב בשדות הבאים:

  • PORT_START: היציאה הראשונית בטווח היציאות, לדוגמה 0.
  • PORT_END: היציאה האחרונה בטווח היציאות, למשל 1024.
  • IP_START: כתובת ה-IP הראשונית בטווח, לדוגמה "10.26.0.0".
  • IP_END: כתובת ה-IP האחרונה בטווח, לדוגמה "10.26.255.255".

הנה פלט לדוגמה מהשאילתה הזו:

SampleRange LocalVMName LocalAssetID LocalGroups LocalIP LocalPort פרוטוקול LocalProcessName RemoteVMName RemoteAssetID RemoteGroups RemoteIP RemotePort ConnectionCount
2025-06-02T05:59:53Z-2025-06-02T05:59:53Z VM-0lf60off projects/982941055174/locations/us-central1/assets/0lf60off קבוצה 1 10.0.45.138 272 tcp bash VM-0spdofr9 projects/982941055174/locations/us-central1/assets/0spdofr9 144.35.88.1 272 499
2025-07-02T05:59:53Z-2025-07-02T05:59:53Z VM-goa5uxhi projects/982941055174/locations/us-central1/assets/goa5uxhi קבוצה 3 10.187.175.82 781 tcp bash VM-27i5d2uj projects/982941055174/locations/us-central1/assets/27i5d2uj 22.99.72.109 781 980
2025-08-02T05:59:53Z-2025-08-02T05:59:53Z VM-7vwy31hg projects/982941055174/locations/us-central1/assets/7vwy31hg קבוצה 1 10.58.166.132 21 tcp bash VM-2gq0fl37 projects/982941055174/locations/us-central1/assets/2gq0fl37 147.19.84.135 21 514

זיהוי נכסים ברשת שלא נסרקו

השאילתה הבאה מאפשרת לזהות נכסים שלא נסרקו ברשת שלכם. נכס לא סרוק הוא חיבור לכתובת IP מרוחקת שלא משויכת לאף נכס במלאי שלכם ב-Migration Center. כך תוכלו לזהות נכסים שאולי חסרים לכם וצריך לסרוק אותם לצורך ההערכה.

CREATE TEMP FUNCTION
 ipBetween(value STRING,
   low STRING,
   high STRING) AS ( NET.IPV4_TO_INT64(NET.IP_FROM_STRING(value)) BETWEEN NET.IPV4_TO_INT64(NET.IP_FROM_STRING(low))
   AND NET.IPV4_TO_INT64(NET.IP_FROM_STRING(high)) );
SELECT
 STRING_AGG(LocalIP, ', ') AS LocalIPs,
 RemoteIP
FROM
 PROJECT.DATASET.TABLE
WHERE
 RemoteVMName = 'Unscanned Device'
 AND ipBetween(LocalIP,
   IP_START,
   IP_END)
 AND ipBetween(RemoteIP,
   IP_START,
   IP_END)
GROUP BY
 RemoteIP

מחליפים את מה שכתוב בשדות הבאים:

  • IP_START: כתובת ה-IP הראשונית בטווח, לדוגמה "10.26.0.0".
  • IP_END: כתובת ה-IP האחרונה בטווח, לדוגמה "10.26.255.255".