Sysdig – כלי מעקב ופיתרון בעיות עוצמתי עבור Linux

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

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

  1. strace – גילוי של קריאות למערכת והודעות לתהליכים.
  2. tcpdump – ניטור קריאת נתונים רואה.
  3. netstat – ניטור חיבורי רשת.
  4. htop – ניטור של תהליכים בזמן אמת.
  5. iftop – ניטור רוחב פס רשת בזמן אמת.
  6. lsof – צפייה בקבצים שפתוחים על ידי תהליכים.

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

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

תכונות של סיסדיג:

  • היא מהירה, יציבה וקלה לשימוש עם תיעוד מקיף ביותר.
  • מגיעה עם תמיכה טבעית בטכנולוגיות קונטיינרים, כולל Docker, LXC.
  • ניתנת לתכנות ב־Lua; מציעה כלים לעיבוד אירועי מערכת שלפטים (תסריטי Lua קלים).
  • תמיכה בסינון של פלט מועיל.
  • תמיכה במעקב מערכת ויישום.
  • ניתן לשלב עם Ansible, Puppet ו־Logstash.
  • אפשרות לניתוח מתקדם של לוגים.
  • היא מציעה גם תכונות לניתוח תקיפות שרתי Linux (פורנזיקה) לסייבורגים ועוד הרבה.

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

איך להתקין סיסדיג ב־Linux

התקנת חבילת sysdig היא פשוטה כמו להריץ את הפקודה למטה, שתבדוק את כל הדרישות; אם הכל במקום, זה יוריד ויתקין את החבילה ממאגר ה-APT/YUM של Draios.

# curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash 
OR
$ curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

לאחר התקנתה, עליך להריץ את sysdig כמנהל מערכת משום שהוא דורש גישה לאזורים קריטיים כמו מערכת הקבצים /proc, מכשירים /dev/sysdig* וצריך לטעון באופן אוטומטי את מודול הליבה sysdig-probe (במקרה שלא); אחרת, עליך להשתמש בפקודת sudo.

הדוגמה הבסיסית ביותר היא להריץ אותו בלי ארגומנטים, זה יאפשר לך לצפות בזרם האירועים של מערכת ה-Linux שלך שמתעדכן בזמן אמת:

$ sudo sysdig
Watch Linux System Events

הפלט לעיל (נתונים גולמיים) אולי לא מבין הרבה לך, לפלט שימושי יותר הריץ csysdig:

$ sudo csysdig 
Monitor Linux System Events

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

אבל אם אתה צריך דרך פשוטה להשתמש ב־sysdig – המשך עם csysdig.

הבנת ציפורים ומסננים של Sysdig

ציפורים של Sysdig הן סקריפטים מינימליים ב־Lua לבדיקת זרם האירועים של sysdig לביצוע פעולות שיפור מערכתיות שימושיות ועוד. הפקודה למטה תעזור לך לצפות בכל הציפורים הזמינות:

$ sudo sysdig -cl

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

View Sysdig Chisels

אם ברצונך לקבל מידע נוסף על דף מסוים, השתמש בדגל -i:

$ sudo sysdig -i topprocs_cpu
View Sysdig Chisel Info

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

A straightforward and commonest filter is a basic “class.field=value” check, you can also combine chisels with filters for even more powerful customizations.

כדי לראות רשימת מחלקות שדות זמינים, שדות ותיאוריהם, הקלד:

$ sudo sysdig -l
View Sysdig Field Classes

יצירת קובץ מעקב מערכת Linux

כדי לשפך את פלט sysdig לקובץ לניתוח מאוחר, השתמש בדגל -w כך.

ניתן לקרוא את קובץ השפך מעקב באמצעות הדגל -r:

$ sudo sysdig -r trace.scap

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

$ sudo sysdig -s 3000 -w trace.scap
$ sudo sysdig -r trace.scap proc.name=mongod
Create MongoDB Trace File

מעקב אחר תהליכי Linux

כדי לרשום תהליכי מערכת, הקלד:

$ sudo sysdig -c ps
Monitor Linux Processes

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

כדי לצפות בתהליכים העליונים לפי אחוז שימוש במעבד, הפעל את הפקודה הזו:

$ sudo sysdig -c topprocs_cpu
Monitor Processes by CPU Usage

מעקב אחר חיבורי רשת ופעילות I/O

כדי לראות חיבורי רשת של המערכת, הרץ:

$ sudo sysdig -c netstat
Monitor Network Connections

הפקודה הבאה תעזור לך לרשום את חיבורי הרשת העליונים לפי סך הבתים:

$ sudo sysdig -c topconns

בנוסף, תוכל גם לרשום את התהליכים העליונים לפי I/O רשת כך:

$ sudo sysdig -c topprocs_net    

מעקב אחר פעילות קובץ מערכת I/O

ניתן להוציא את הנתונים שנקראים ונכתבים על ידי תהליכים במערכת כך:

$ sudo sysdig -c echo_fds
Monitor System IO

כדי לרשום את התהליכים העליונים לפי (קריאה + כתיבה) בתים דיסק, השתמש:

$ sudo sysdig -c topprocs_file   

פיתרון בעיות בביצועי מערכת Linux

כדי לשמור על עקבות אחרי נקודות חולשה במערכת (קריאות מערכת איטיות), בצע את הפקודה הבאה:

$ sudo sysdig -c bottlenecks
Troubleshoot Linux Performance

מעקב אחר זמן ביצוע של תהליך

כדי לעקוב אחר זמן הביצוע של תהליך, תוכל להריץ את הפקודה הבאה ולשפך את העקבות לקובץ:

$ sudo sysdig -w extime.scap -c proc_exec_time 
Track Process Execution Time

לאחר מכן, השתמש במסנן כדי להתמקד בפרטי תהליך מסוים (postgres בדוגמה זו) כך:

$ sudo sysdig -r extime.scap proc.name=postgres

גילוי I/0 איטי של רשת

הפקודה הפשוטה הזו תעזור לך לזהות I/0 רשת איטי:

$ sudo sysdig -c netlower     

צפייה ברשומות קובץ הלוג

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

$ sudo sysdig -c spy_syslog      

תוכל להדפיס כל נתונים שנכתבו על ידי תהליך כלשהו לקובץ לוג כך:

$ sudo sysdig -c spy_logs   

מעקב אחר בקשות שרת HTTP

אם יש לך שרת HTTP כגון Apache או Nginx פועל על המערכת שלך, עיין ביומן בקשות השרת עם הפקודה הבאה:

$ sudo sysdig -c httplog    
$ sudo sysdig -c httptop   [Print Top HTTP Requests] 
Monitor HTTP Requests

הצגת מפגשי התחברות ופעילות משתמש אינטראקטיבית

הפקודה למטה תאפשר לך להציג את כל זיהויי מפגשי התחברות:

$ sudo sysdig -c list_login_shells

לאחרונה, תוכל להציג פעילות אינטראקטיבית של משתמשי המערכת כך:

$ sudo sysdig -c spy_users
Monitor User Activity

למידע נוסף ודוגמאות, קרא את עמודי ה-man של sysdig ו-csysdig:

$ man sysdig 
$ man csysdig

הפניה: https://www.sysdig.org/

כדאי גם לבדוק את כלי מעקב הביצועים של Linux השימושיים האלה:

  1. BCC – כלי מעקב דינמי עבור ביצועי Linux, רשתות ועוד
  2. pyDash – כלי מעקב על ביצועי Linux מבוסס Web
  3. Perf – כלי למעקב וניתוח ביצועים עבור Linux
  4. Collectl: כלי מתקדם הכולל את כלי מעקב הביצועים ל-Linux
  5. Netdata – כלי למעקב בזמן אמת על ביצועי מערכות Linux
מסקנה

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

כדי לשאול שאלות או לשתף חשיבות בכלים אלו, השתמש בטופס משוב למטה.

Source:
https://www.tecmint.com/sysdig-system-monitoring-and-troubleshooting-tool-for-linux/