הרצת גילוי אורחים

במאמר הזה מוסבר איך מריצים את השיטות השונות לאיתור אורחים שזמינות ב-mcdc CLI.

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

במכונות שפועלות בפלטפורמות שבהן CLI של לקוח הגילוי של Migration Center לא תומך בגילוי מלאי, כמו מכונות שפועלות בשרתים מקומיים, וגם כדי לבצע הערכה מלאה של מכונות וירטואליות שפועלות ב-VMware, ב-AWS וב-Azure, אפשר להריץ גילוי של מכונות אורחות. תהליך איתור האורחים משתמש בסקריפט לאיסוף נתונים על המחשב, ומעביר את הנתונים האלה לקובץ tar לאיסוף נתונים במכונות Linux, או לקובץ zip במכונות Windows.

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

  • במכונות וירטואליות של Linux ו-Windows שנפרסו ב-VMware, כלי ה-CLI‏ mcdc תומך בהפעלה מרחוק באמצעות הפקודה discover vsphere.
  • במכונות Linux שאפשר לגשת אליהן באמצעות CLI של mcdc, אפשר לבצע גילוי מרחוק באמצעות SSH עם הפקודה discover ssh.
  • במכונות Windows שאפשר לגשת אליהן באמצעות mcdc CLI, אפשר לבצע גילוי מרחוק באמצעות Windows Management Instrumentation ‏ (WMI) עם הפקודה discover wmi.
  • במכונות Linux ו-Windows שלא מחוברות ל-CLI של mcdc, אפשר להוריד ולהפעיל את סקריפטים לאיסוף נתוני אורח באופן מקומי, ואז לייבא באופן ידני את הנתונים שנאספו למכונה שמארחת את ה-CLI של mcdc.

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

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

  1. בודקים את הדרישות להורדה ולהרצה של mcdc CLI.
  2. כדאי לעיין בדרישות להורדה ולהפעלה של סקריפטים לאיסוף נתוני אורחים.
  3. מבצעים את השלבים כדי להוריד את mcdc CLI.

איסוף נתונים מרחוק באמצעות כלי VMware

במכונות וירטואליות שמתארחות ב-vSphere, אפשר להשתמש ב-mcdc CLI בכלי VMware כדי לפרוס ולהריץ את סקריפטים של איסוף מרחוק במכונות וירטואליות של Linux ו-Windows. כשמשתמשים ב-VMware Tools, כלי ה-CLI‏ mcdc מבצע את הפעולות הבאות:

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

כדי לאסוף נתונים מרחוק, נדרשים שני סטים של פרטי כניסה:

  • שם המשתמש של שרת vCenter שמועבר אל mcdc CLI כדי להתחבר אל vSphere, שצריכות להיות לו ההרשאות הבאות ב-VM:
    • שינויים בפעולות של משתמשים חיצוניים
    • ביצוע של תוכנית פעולות אורח
    • שאילתות לגבי פעולות של אורחים
  • פרטי הכניסה של המשתמש למכונה הווירטואלית:
    • ב-Windows, אתם צריכים הרשאות אדמין.
    • ב-Linux, אפשר להשתמש בפרטי כניסה של משתמש root או של משתמש לא root. מידע נוסף זמין במאמר בנושא גילוי אורחים ב-Linux.

כדי לאסוף נתונים באמצעות VMware Tools, פועלים לפי השלבים הבאים:

  1. נכנסים ל-VM של Linux שמארח את mcdc CLI.
  2. עוברים לספרייה שבה הורדתם את ה-CLI של mcdc.
  3. מוודאים שהמכונה הווירטואלית מופעלת.
  4. מריצים את גילוי האורחים:

    Linux

    ./mcdc discover vsphere guest --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER VM_ID

    Windows

    mcdc.exe discover vsphere guest --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER VM_ID

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

    • VCENTER_USER: המשתמש בשרת vCenter
    • VM_USER: המשתמש במכונה הווירטואלית
    • VM_ID: השם של המכונה הווירטואלית או ה-MOREF
  5. כשמוצגת בקשה, מזינים את הסיסמה של VCENTER_USER ושל VM_USER.

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

  1. נכנסים ל-VM של Linux שמארח את mcdc CLI.
  2. עוברים לספרייה שבה הורדתם את ה-CLI של mcdc.
  3. מוודאים שכל המכונות הווירטואליות מופעלות.
  4. מריצים את גילוי האורחים:

    Linux

    ./mcdc discover vsphere guest all --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER --timeout TIMEOUT_IN_SECONDS

    Windows

    mcdc.exe discover vsphere guest all --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER --timeout TIMEOUT_IN_SECONDS

    מחליפים את TIMEOUT_IN_SECONDS עם הזמן הקצוב לתפוגה בשניות.

    אפשר להשתמש בדגל --os-family כדי להגביל את האיתור רק למכונות וירטואליות של Windows או Linux, או להשתמש בדגל --max-parallelism כדי לשנות את רמת המקביליות.

  5. כשמוצגת בקשה, מזינים את הסיסמה של VCENTER_USER ושל VM_USER.

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

אפשר לייצא את הנתונים האלה ולנתח אותם אונליין ב-Migration Center, או להריץ ניתוח אופליין.

גילוי אורחים ב-Linux

אם מריצים גילוי אורחים עם גישת root (לדוגמה, באמצעות sudo), ה-CLI של mcdc אוסף מהמכונה יותר נתונים מאשר אם מריצים אותו באמצעות פרטי כניסה של משתמש ללא גישת root.

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

אילו נתונים נאספים?

קטגוריה נתונים גישה ללא הרשאות רוט גישת רוט (Root)
חומרה המספר הסידורי של המוצר דילוג:
נדרשת גישת root.
נאספו:
מ-/sys/class/dmi/id/product_serial.
Networking מיפוי תהליכים ליציאות חלקי:
נאסף מידע על החיבור, אבל לא נאספים מזהים של תהליכים (PID) או שמות של תוכניות של תהליכים של משתמשים אחרים.
מלא:
כל יציאות ההאזנה והחיבורים ממופים למזהי התהליך ולשמות התוכניות המתאימים.
תווכה JBoss / Tomcat internals מוגבל:
אפשר לגשת רק לסביבה, לתיאורים ולמגבלות של התהליכים של המשתמש הנוכחי.
מלא:
קריאת נתוני תהליך (environ, fd, limits) לכל המופעים של תוכנת הביניים מ-/proc/[PID].
אחסון חסימת מכשירים ונפחים מלאה:
כלים רגילים כמו lsblk ו-df שמשתמשים יכולים לגשת אליהם.
מלא:
חסימת פרטי המכשיר והרכבות של המערכת.
הגדרות אישיות קובצי מערכת מוגבלים חלקי:
לא נאסף מידע מקבצים כמו /etc/exports ומחלק מההגדרות של Apache, שיכול להיות שלא ניתן לקרוא אותן בהתאם להרשאות.
מלאה:
המשתמש root עוקף את כל ההגבלות של הרשאות הגישה לקבצים כדי לאסוף את קובצי התצורה הנדרשים.
אבטחה סטטוס SELinux מוגבל:
לא נאספים פרטים מפורטים על ההגדרות.
מלא:
פלט מלא נאסף מהכלי sestatus.
מלאי שטחי פרסום חבילות מותקנות מלאה:
כל המשתמשים יכולים לגשת למנהלי חבילות רגילים (dpkg, rpm).
מלא:
נאספת רשימה מלאה של כל חבילות המערכת המותקנות.

איסוף נתונים מרחוק באמצעות SSH

אם למכונה שמארחת את ה-CLI של mcdc יש גישת SSH למכונת ה-Linux של היעד (מכונות Windows לא נתמכות), ה-CLI של mcdc יכול להתחבר למכונת היעד באמצעות SSH כדי לאסוף נתונים.

כשמשתמשים ב-SSH, ה-CLI של mcdc מבצע את הפעולות הבאות:

  1. הסקריפט של האוסף מועלה למחשב.
  2. הסקריפט מורץ במכונה עם פרטי הכניסה של משתמש המכונה שמועברים ל-CLI של mcdc.

  3. מורידים ומייבאים את התוצאות.

מצבי SSH נתמכים

אם אתם משתמשים ב-CLI של mcdc במכונת Linux, אתם יכולים להשתמש בשני מצבים כדי להריץ SSH:

  • ברירת מחדל: נעשה שימוש בקובץ הבינארי ssh ובהגדרות במכונת ה-CLI ‏mcdc. במצב ברירת מחדל, אפשר להשתמש בקובצי התצורה המקומיים של SSH, כמו ~/.ssh/config ו-~/.ssh/known_hosts, של תחנת העבודה שמארחת אותו.

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

    sshpass -p password mcdc discover ssh IP_ADDRESS
    

    מחליפים את IP_ADDRESS בכתובת ה-IP של המכונה.

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

אם אתם משתמשים ב-CLI של mcdc במכונת Windows, רק מצב מוטמע נתמך.

הפעלת האוסף

כדי לאסוף נתונים באמצעות SSH, פועלים לפי השלבים הבאים:

  1. נכנסים למחשב Linux שמארח את mcdc CLI.
  2. עוברים לספרייה שבה הורדתם את ה-CLI של mcdc.
  3. איסוף נתונים.

    Linux

    ./mcdc discover ssh IP_HOSTNAME

    Windows

    mcdc.exe discover ssh IP_HOSTNAME

    כדי לגלות ולאסוף נכסי מסד נתונים, משתמשים בדגל --db-engine:

    Linux

    ./mcdc discover ssh IP_HOSTNAME --db-engine=DB_ENGINE

    Windows

    mcdc.exe discover ssh IP_HOSTNAME --db-engine=DB_ENGINE

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

    • IP_HOSTNAME: שם המארח של כתובת ה-IP של המכונה.
    • DB_ENGINE: המנוע של מסד הנתונים לאיסוף. הערכים הנתמכים הם sqlserver, ‏ mysql, ‏ postgresql.
  4. קובץ המפתח הפרטי של SSH של המשתמש שמפעיל את ה-CLI של mcdc משמש לאימות SSH.

    כשמתבקשים, מזינים את שם המשתמש של חשבון במכונת Linux. סקריפט האיסוף פועל באמצעות פרטי הכניסה האלה. אם המפתח הפרטי של SSH של המשתמש שמפעיל את ה-CLI של mcdc לא מצליח לבצע אימות למכונה עם שם המשתמש, תתבקשו גם להזין סיסמה.

תרחישים נוספים לשימוש ב-SSH

אלה תרחישים שבהם יכול להיות שתצטרכו לשנות את הפקודה:

  • כדי לציין את משתמש המכונה עם מצב ברירת המחדל, משתמשים בדגל -u:

    Linux

    ./mcdc discover ssh -u USER IP_HOSTNAME

    Windows

    mcdc.exe discover ssh -u USER IP_HOSTNAME

    מחליפים את USER במשתמש המכונה.

    כשמוצגת בקשה, מזינים את הסיסמה של המשתמש.

  • כדי לציין מצב מפורט, משתמשים בדגל -v:

    Linux

    ./mcdc discover ssh -u USER -v IP_HOSTNAME

    Windows

    mcdc.exe discover ssh -u USER -v IP_HOSTNAME

  • כדי לציין את קובץ המפתח הפרטי של SSH, משתמשים בדגל -i. לדוגמה, כדי לציין את .ssh/my_private_key:

    Linux

    ./mcdc discover ssh -i ~/.ssh/my_private_key -u USER IP_HOSTNAME

    Windows

    mcdc.exe discover ssh -i ~/.ssh/my_private_key -u USER IP_HOSTNAME

  • כדי לציין את הסיסמה בשורת הפקודה, משתמשים במצב מוטמע:

    Linux

    ./mcdc discover ssh --ssh-client embedded -u USER --passphrase PASSWORD IP_HOSTNAME

    Windows

    mcdc.exe discover ssh --ssh-client embedded -u USER --passphrase PASSWORD IP_HOSTNAME

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

  • כדי לציין את קובץ המפתח הפרטי של SSH במצב מוטמע, משתמשים בדגל -i:

    Linux

    ./mcdc discover ssh --ssh-client embedded -i ~/.ssh/id_rsa -u USER --password PASSWORD IP_HOSTNAME

    Windows

    mcdc.exe discover ssh --ssh-client embedded -i ~/.ssh/id_rsa -u USER --password PASSWORD IP_HOSTNAME

  • הפקודה mcdc ב-CLI מאפשרת לציין את רוב הדגלים של SSH. הדגלים האלה מועברים לפקודה ssh באמצעות הדגל -a או --ssh-args. לדוגמה, כדי להשתמש ב-proxy מסוג SOCKS:

    Linux

    ./mcdc discover ssh -u USER -a '-o' -a 'ProxyCommand=nc -X 5 -x 127.0.0.1:proxy port %h %p' IP_HOSTNAME

    Windows

    mcdc.exe discover ssh -u USER -a '-o' -a 'ProxyCommand=nc -X 5 -x 127.0.0.1:proxy port %h %p' IP_HOSTNAME

אפשר לייצא את הנתונים האלה ולנתח אותם אונליין ב-Migration Center, או להריץ ניתוח אופליין.

איסוף נתונים במחשב Linux בודד

כדי לבצע איסוף של אורחים באופן מקומי במחשב Linux, אפשר להריץ את הסקריפט mcdc-linux-collect.sh. אחר כך, אפשר להעתיק את קובץ ה-TAR שנוצר על ידי הסקריפט למכונה שמארחת את mcdc CLI, ולייבא אותו באמצעות הפקודה discover import.

כדי לאסוף את כל הנתונים האפשריים ממכונת Linux, מריצים את הסקריפט עם גישת root באמצעות sudo. אם מפעילים פתרונות חכמים עם הרשאות משתמש, mcdc CLI אוסף מערך נתונים מוגבל יותר. מידע נוסף זמין במאמר בנושא גילוי אורחים ב-Linux.

  1. נכנסים לחשבון במחשב.
  2. עוברים לספרייה שבה הורדתם את הסקריפט של אוסף האורחים.
  3. מריצים את סקריפט האיסוף במחשב:

    • כדי להריץ עם גישת רוט:

      sudo ./mcdc-linux-collect.sh
      
    • כדי להריץ בלי גישת root:

      ./mcdc-linux-collect.sh
      

    הסקריפט יוצר קובץ tar בשם mcdc-collect-MACHINE_NAME-TIMESTAMP.tar בספרייה הנוכחית. חותמת הזמן היא בפורמט YYYY-MM-DD-hh-mm.

    כאן אפשר ללחוץ כדי לראות את פורמט קובץ ה-tar של אוסף האורחים

    קובץ ה-tar הוא בפורמט הבא:

    collect.log # Log output of the script
     files # Directory containing files with their full path from root. For example:
       |- etc/fstab
       |- etc/hostname
       |- etc/network/interfaces
       |- ...
     commands # Output of commands run by the script:
       |- dpkg
       |- netstat
       |- ps
       |- ...
     found_paths # Text file with the list of installation directories
     machinename # Text file with machine name
     ostype # Text file with operating system type (Linux)
     timestamp # Text file with collection timestamp
     version # Text file with the version of the script
     

    אופציונלי, אפשר להעביר את הארגומנט --output ולציין את הנתיב שבו רוצים לשמור את קובץ ה-tar.

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

  5. מייבאים את הנתונים שנאספו למחשב המארח:

    Linux

    ./mcdc discover import PATH_TO_TAR

    Windows

    mcdc.exe discover import PATH_TO_TAR

    מחליפים את הערך ב-PATH_TO_TAR בנתיב לקובץ ה-tar.

אפשר לייצא את הנתונים האלה ולנתח אותם אונליין ב-Migration Center, או להריץ ניתוח אופליין.

איסוף נתונים מרחוק באמצעות WMI

אם רוצים לבצע גילוי של אורחים במכונת Windows יעד עם תמיכה ב-WMI, אפשר להשתמש בפקודה mcdc discover wmi במכונת Windows שמארחת את mcdc CLI. איסוף WMI נתמך רק בגרסת Windows של mcdc CLI.

כברירת מחדל, ה-CLI של mcdc אוסף נתונים באמצעות קריאות WMI מרחוק, שהן מהירות יותר מאיסוף שמבוסס על סקריפט. עם זאת, קריאות WMI מרחוק לא נתמכות ב-Windows Server 2008 ובגרסאות קודמות. אם אתם צריכים לאסוף נתונים מגרסאות קודמות של Windows, או אם אתם נתקלים בבעיות בשימוש בקריאות מרחוק של WMI, אתם יכולים להשתמש באיסוף מבוסס-סקריפט במקום זאת, על ידי הוספת הדגל --script.

כשמשתמשים ב-WMI, ה-CLI של mcdc מבצע את הפעולות הבאות:

  1. הסקריפט של האוסף מועלה למחשב.
  2. הסקריפט מורץ במכונה עם פרטי הכניסה של משתמש המכונה שמועברים ל-mcdc CLI.

  3. מוריד ומייבא את התוצאות ל-Migration Center.

כדי לאסוף נתונים באמצעות WMI, פועלים לפי השלבים הבאים:

  1. נכנסים למכונת Windows שמארחת את ה-CLI של mcdc.
  2. עוברים לספרייה שבה הורדתם את ה-CLI של mcdc.
  3. אפשר לאסוף נתונים באחת מהשיטות הבאות:

    • כדי לאסוף נתונים באמצעות קריאות WMI מרחוק, מריצים את הפקודה הבאה:

      mcdc.exe discover wmi IP_HOSTNAME
      

      מחליפים את IP_HOSTNAME בשם המארח של כתובת ה-IP של המכונה.

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

      mcdc.exe discover wmi --script IP_HOSTNAME
      
  4. מזינים את פרטי הכניסה כשמוצגת בקשה לעשות זאת.

אפשר לייצא את הנתונים האלה ולנתח אותם אונליין ב-Migration Center, או להריץ ניתוח אופליין.

איסוף נתונים במחשב Windows ספציפי

כדי לבצע איסוף אורחים באופן מקומי במחשב Windows, אפשר להריץ את הסקריפט mcdc-windows-collect.ps1. אחר כך אפשר להעתיק את קובץ ה-ZIP שנוצר על ידי הסקריפט למכונה שמארחת את mcdc CLI, ולייבא אותו באמצעות הפקודה discover import.

  1. נכנסים לחשבון במחשב.
  2. פותחים את PowerShell באמצעות האפשרות הפעלה כאדמין.
  3. עוברים לספרייה שבה הורדתם את ה-CLI של mcdc.
  4. מריצים את סקריפט האיסוף במחשב:

    powershell -ExecutionPolicy ByPass -File .\mcdc-windows-collect.ps1
    
  5. הסקריפט יוצר קובץ ZIP בשם mcdc-collect-MACHINE_NAME-TIMESTAMP.zip בספרייה הנוכחית.

    אפשר גם לציין נתיב פלט כדי להגדיר מיקום אחר:

    .\mcdc-windows-collect.ps1 PATH_FOR_OUTPUT.zip
    
  6. מייבאים את הנתונים שנאספו למחשב המארח:

    Linux

    ./mcdc discover import PATH_TO_TAR

    Windows

    mcdc.exe discover import PATH_TO_TAR

    מחליפים את הערך ב-PATH_TO_TAR בנתיב לקובץ ה-tar.

אתם יכולים לייצא את הנתונים שנאספו ולנתח אותם אונליין ב-Migration Center, או להריץ ניתוח אופליין.

המאמרים הבאים