במאמר הזה מוסבר איך מריצים את השיטות השונות לאיתור אורחים שזמינות ב-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 שאפשר לגשת אליהן באמצעות
mcdcCLI, אפשר לבצע גילוי מרחוק באמצעות Windows Management Instrumentation (WMI) עם הפקודהdiscover wmi. - במכונות Linux ו-Windows שלא מחוברות ל-CLI של
mcdc, אפשר להוריד ולהפעיל את סקריפטים לאיסוף נתוני אורח באופן מקומי, ואז לייבא באופן ידני את הנתונים שנאספו למכונה שמארחת את ה-CLI שלmcdc.
סקריפט האיסוף של האורח מריץ סדרה של פקודות כדי לאסוף מידע על מכונת המקור, ויכול להיות שהוא גם יאסוף מידע אישי רגיש פוטנציאלי כמו ארגומנטים של שורת פקודה, פרטי רשת או משתני סביבה וארגומנטים בתהליכים שפועלים.
לפני שמתחילים
- בודקים את הדרישות להורדה ולהרצה של
mcdcCLI. - כדאי לעיין בדרישות להורדה ולהפעלה של סקריפטים לאיסוף נתוני אורחים.
- מבצעים את השלבים כדי להוריד את
mcdcCLI.
איסוף נתונים מרחוק באמצעות כלי VMware
במכונות וירטואליות שמתארחות ב-vSphere, אפשר להשתמש ב-mcdc CLI בכלי VMware כדי לפרוס ולהריץ את סקריפטים של איסוף מרחוק במכונות וירטואליות של Linux ו-Windows. כשמשתמשים ב-VMware Tools, כלי ה-CLI mcdc מבצע את הפעולות הבאות:
- מעלים את סקריפט האוסף למכונה הווירטואלית.
- מריצים את הסקריפט במכונה הווירטואלית.
- מורידים ומייבאים את התוצאות.
כדי לאסוף נתונים מרחוק, נדרשים שני סטים של פרטי כניסה:
- שם המשתמש של שרת vCenter שמועבר אל
mcdcCLI כדי להתחבר אל vSphere, שצריכות להיות לו ההרשאות הבאות ב-VM:- שינויים בפעולות של משתמשים חיצוניים
- ביצוע של תוכנית פעולות אורח
- שאילתות לגבי פעולות של אורחים
- פרטי הכניסה של המשתמש למכונה הווירטואלית:
- ב-Windows, אתם צריכים הרשאות אדמין.
- ב-Linux, אפשר להשתמש בפרטי כניסה של משתמש root או של משתמש לא root. מידע נוסף זמין במאמר בנושא גילוי אורחים ב-Linux.
כדי לאסוף נתונים באמצעות VMware Tools, פועלים לפי השלבים הבאים:
- נכנסים ל-VM של Linux שמארח את
mcdcCLI. - עוברים לספרייה שבה הורדתם את ה-CLI של
mcdc. - מוודאים שהמכונה הווירטואלית מופעלת.
מריצים את גילוי האורחים:
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
כשמוצגת בקשה, מזינים את הסיסמה של VCENTER_USER ושל VM_USER.
כדי לאסוף נתונים מכמה מכונות וירטואליות של vSphere במקביל באמצעות VMware tools, פועלים לפי השלבים הבאים:
- נכנסים ל-VM של Linux שמארח את
mcdcCLI. - עוברים לספרייה שבה הורדתם את ה-CLI של
mcdc. - מוודאים שכל המכונות הווירטואליות מופעלות.
מריצים את גילוי האורחים:
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כדי לשנות את רמת המקביליות.כשמוצגת בקשה, מזינים את הסיסמה של VCENTER_USER ושל VM_USER.
אפשר גם להגדיר את היקף הגילוי למכונות וירטואליות ספציפיות באמצעות הדגל
--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 מבצע את הפעולות הבאות:
- הסקריפט של האוסף מועלה למחשב.
הסקריפט מורץ במכונה עם פרטי הכניסה של משתמש המכונה שמועברים ל-CLI של
mcdc.מורידים ומייבאים את התוצאות.
מצבי 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, פועלים לפי השלבים הבאים:
- נכנסים למחשב Linux שמארח את
mcdcCLI. - עוברים לספרייה שבה הורדתם את ה-CLI של
mcdc. איסוף נתונים.
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.
קובץ המפתח הפרטי של 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.
- נכנסים לחשבון במחשב.
- עוברים לספרייה שבה הורדתם את הסקריפט של אוסף האורחים.
מריצים את סקריפט האיסוף במחשב:
כדי להריץ עם גישת רוט:
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.מעתיקים את הנתונים שנאספו ממכונת היעד למחשב המארח.
מייבאים את הנתונים שנאספו למחשב המארח:
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 מבצע את הפעולות הבאות:
- הסקריפט של האוסף מועלה למחשב.
הסקריפט מורץ במכונה עם פרטי הכניסה של משתמש המכונה שמועברים ל-
mcdcCLI.מוריד ומייבא את התוצאות ל-Migration Center.
כדי לאסוף נתונים באמצעות WMI, פועלים לפי השלבים הבאים:
- נכנסים למכונת Windows שמארחת את ה-CLI של
mcdc. - עוברים לספרייה שבה הורדתם את ה-CLI של
mcdc. אפשר לאסוף נתונים באחת מהשיטות הבאות:
כדי לאסוף נתונים באמצעות קריאות WMI מרחוק, מריצים את הפקודה הבאה:
mcdc.exe discover wmi IP_HOSTNAMEמחליפים את IP_HOSTNAME בשם המארח של כתובת ה-IP של המכונה.
כדי לאסוף נתונים באמצעות איסוף מבוסס-סקריפט, משתמשים בדגל
--script:mcdc.exe discover wmi --script IP_HOSTNAME
מזינים את פרטי הכניסה כשמוצגת בקשה לעשות זאת.
אפשר לייצא את הנתונים האלה ולנתח אותם אונליין ב-Migration Center, או להריץ ניתוח אופליין.
איסוף נתונים במחשב Windows ספציפי
כדי לבצע איסוף אורחים באופן מקומי במחשב Windows, אפשר להריץ את הסקריפט mcdc-windows-collect.ps1.
אחר כך אפשר להעתיק את קובץ ה-ZIP שנוצר על ידי הסקריפט למכונה שמארחת את mcdc CLI, ולייבא אותו באמצעות הפקודה discover import.
- נכנסים לחשבון במחשב.
- פותחים את PowerShell באמצעות האפשרות הפעלה כאדמין.
- עוברים לספרייה שבה הורדתם את ה-CLI של
mcdc. מריצים את סקריפט האיסוף במחשב:
powershell -ExecutionPolicy ByPass -File .\mcdc-windows-collect.ps1הסקריפט יוצר קובץ ZIP בשם
mcdc-collect-MACHINE_NAME-TIMESTAMP.zipבספרייה הנוכחית.אפשר גם לציין נתיב פלט כדי להגדיר מיקום אחר:
.\mcdc-windows-collect.ps1 PATH_FOR_OUTPUT.zipמייבאים את הנתונים שנאספו למחשב המארח:
Linux
./mcdc discover import PATH_TO_TAR
Windows
mcdc.exe discover import PATH_TO_TAR
מחליפים את הערך ב-PATH_TO_TAR בנתיב לקובץ ה-tar.
אתם יכולים לייצא את הנתונים שנאספו ולנתח אותם אונליין ב-Migration Center, או להריץ ניתוח אופליין.