סיסדיג הוא כלי לניטור ותיקון מערכת פתוח, יעודי וגמיש למערכות לינוקס; הוא פועל גם על ווינדוס ו-Mac OSX אך עם פונקציונליות מוגבלת וניתן לשימוש בניתוח, בדיקה ותיקון בעיות במערכת.
בדרך כלל, תשתמש במגוון של כלים לניטור ותיקון ביצועי לינוקס כולל את אלה הרשומים למטה כדי לבצע את המשימות של ניטור ותיקון הלינוקס:
- strace – גילוי של קריאות למערכת והודעות לתהליכים.
- tcpdump – ניטור קריאת נתונים רואה.
- netstat – ניטור חיבורי רשת.
- htop – ניטור של תהליכים בזמן אמת.
- iftop – ניטור רוחב פס רשת בזמן אמת.
- 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

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

הערה: כדי להבין באמת את הכלי הזה, עליך להשתמש ב־sysdig שיוצר נתונים גולמיים כפי שראינו לפני, ממערכת Linux פועלת: זה מחייב ממך להבין איך להשתמש במסננים ובציפורים.
אבל אם אתה צריך דרך פשוטה להשתמש ב־sysdig – המשך עם csysdig.
הבנת ציפורים ומסננים של Sysdig
ציפורים של Sysdig הן סקריפטים מינימליים ב־Lua לבדיקת זרם האירועים של sysdig לביצוע פעולות שיפור מערכתיות שימושיות ועוד. הפקודה למטה תעזור לך לצפות בכל הציפורים הזמינות:
$ sudo sysdig -cl
הצילום מסך מציג רשימת דפים לדפים בקטגוריות שונות.

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

מסנני 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

יצירת קובץ מעקב מערכת 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

מעקב אחר תהליכי Linux
כדי לרשום תהליכי מערכת, הקלד:
$ sudo sysdig -c ps

מעקב אחר תהליכים לפי שימוש במעבד
כדי לצפות בתהליכים העליונים לפי אחוז שימוש במעבד, הפעל את הפקודה הזו:
$ sudo sysdig -c topprocs_cpu

מעקב אחר חיבורי רשת ופעילות I/O
כדי לראות חיבורי רשת של המערכת, הרץ:
$ sudo sysdig -c netstat

הפקודה הבאה תעזור לך לרשום את חיבורי הרשת העליונים לפי סך הבתים:
$ sudo sysdig -c topconns
בנוסף, תוכל גם לרשום את התהליכים העליונים לפי I/O רשת כך:
$ sudo sysdig -c topprocs_net
מעקב אחר פעילות קובץ מערכת I/O
ניתן להוציא את הנתונים שנקראים ונכתבים על ידי תהליכים במערכת כך:
$ sudo sysdig -c echo_fds

כדי לרשום את התהליכים העליונים לפי (קריאה + כתיבה) בתים דיסק, השתמש:
$ sudo sysdig -c topprocs_file
פיתרון בעיות בביצועי מערכת Linux
כדי לשמור על עקבות אחרי נקודות חולשה במערכת (קריאות מערכת איטיות), בצע את הפקודה הבאה:
$ sudo sysdig -c bottlenecks

מעקב אחר זמן ביצוע של תהליך
כדי לעקוב אחר זמן הביצוע של תהליך, תוכל להריץ את הפקודה הבאה ולשפך את העקבות לקובץ:
$ sudo sysdig -w extime.scap -c proc_exec_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]

הצגת מפגשי התחברות ופעילות משתמש אינטראקטיבית
הפקודה למטה תאפשר לך להציג את כל זיהויי מפגשי התחברות:
$ sudo sysdig -c list_login_shells
לאחרונה, תוכל להציג פעילות אינטראקטיבית של משתמשי המערכת כך:
$ sudo sysdig -c spy_users

למידע נוסף ודוגמאות, קרא את עמודי ה-man של sysdig ו-csysdig:
$ man sysdig $ man csysdig
הפניה: https://www.sysdig.org/
כדאי גם לבדוק את כלי מעקב הביצועים של Linux השימושיים האלה:
- BCC – כלי מעקב דינמי עבור ביצועי Linux, רשתות ועוד
- pyDash – כלי מעקב על ביצועי Linux מבוסס Web
- Perf – כלי למעקב וניתוח ביצועים עבור Linux
- Collectl: כלי מתקדם הכולל את כלי מעקב הביצועים ל-Linux
- Netdata – כלי למעקב בזמן אמת על ביצועי מערכות Linux
מסקנה
Sysdig מכניס יחד פונקציות ממספר כלים שורת פקודה לממשק אחד מדהים, מאפשר לך לחקור עמוק באירועי המערכת שלך ב-Linux כדי לאסוף נתונים, לשמור לניתוח מאוחר יותר והוא מציע תמיכה מדהימה בקונטיינרים.
כדי לשאול שאלות או לשתף חשיבות בכלים אלו, השתמש בטופס משוב למטה.
Source:
https://www.tecmint.com/sysdig-system-monitoring-and-troubleshooting-tool-for-linux/