הכלי Sosreport

אתם קוראים את מאמרי העזרה של Apigee Edge.
כדאי לעיין במסמכי העזרה בנושא Apigee X.
מידע

‫Sosreport הוא כלי לאבחון ולאיסוף נתונים ברמת המערכת, שמבוסס על תוכנת הקוד הפתוח SoS. אפשר להשתמש בכלי Sosreport כדי לאסוף מידע שיעזור לכם לנפות באגים בבעיות בצמתים שבהם רכיב של Apigee פועל. הכלי אוסף ומאחסן מידע באופן מקומי במערכת הקבצים של הצומת.

הכלי Sosreport אוסף פרטי הגדרה, מידע על המערכת ומידע אבחוני מהמערכת שלכם, ומאחסן את הנתונים בארכיון. רכיבי Apigee, הנתונים הבאים נאספים על ידי Sosreport:

  • גרסת הליבה הפעילה
  • מודולים שנטענו
  • קובצי הגדרה של מערכות ושירותים

הכלי Sosreport מריץ גם תוכניות חיצוניות כדי לאסוף מידע נוסף, כולל:

  • יומני Apigee מכל הרכיבים.
  • אבחון בזמן ריצה
  • נתוני אבחון של Cassandra שנאספו באמצעות פקודות nodetool.

הכלי Sosreport מכיל שתי פקודות עיקריות:

  • sosreport: הפקודה הראשית לאיסוף נתונים וליצירת דוחות.
  • apigee-sosreport: כלי עזר שמשמש להתקנה של פלאגינים של sosreport ולניהול שלהם, שספציפיים לרכיבי Apigee.sosreport

התקנה

בקטע הזה מוסבר איך להתקין את sosreport.

אם גרסת SoS של sosreport כבר מותקנת

אם הגרסה המקורית של SoS של sosreport כבר מותקנת במערכת, אל תגדירו את הגרסה של Apigee, כי נתיבי ההתקנה עלולים להתנגש. במקום זאת, מעתיקים את הפלאגינים הספציפיים ל-Apigee מהספרייה /opt/apigee/apigee-sosreport/source/plugin לספרייה המתאימה של Python site-packages באמצעות פקודה כמו אלה שמוצגות למטה. לדוגמה, כדי להעתיק את agigee-mgmt.py:

  • אם משתמשים ב-Python 2, מזינים:
    sudo cp apigee-mgmt.py /usr/lib/python2.7/site-packages/sos/plugins/
  • אם משתמשים ב-Python 3, מזינים:
    sudo cp apigee-mgmt.py /usr/local/lib/python3.6/site-packages/sos/plugins/

כדי לוודא שהפלאגינים הותקנו, מזינים

sudo sosreport --list-plugins

אם יש לכם שאלות, אתם יכולים לפנות לתמיכה של Apigee.

מתבצעת התקנה של גרסת sosreport של Apigee

אם גרסת SoS של sosreport לא מותקנת כבר במערכת, אפשר להתקין את הגרסה של Apigee על ידי הזנת הפקודות הבאות בכל הצמתים שבהם מותקן Edge for Private Cloud:

/opt/apigee/apigee-service/bin/apigee-service apigee-sosreport install
/opt/apigee/apigee-service/bin/apigee-service apigee-sosreport setup

כדי לבדוק ש-sosreport מותקן, מוודאים שהפלאגינים שקשורים ל-Apigee נמצאים בספרייה הבאה:

/usr/lib/pythonx.x/site-packages/sos/plugins

כאשר pythonx.x היא גרסת Python המותקנת.

לחלופין, אפשר להריץ אחת מהפקודות הבאות:

  • כדי לאמת רק תוספים ספציפיים ל-Apigee:
    apigee-service apigee-sosreport diagnose -l

    הפלט הוא רשימת הפלאגינים הספציפיים ל-Apigee.

    sosreport (version 3.9)
    
    The following plugins are currently enabled:
    
    apigee-mgmt          This is the apigee plugin for edge-management-server
    apigee-mp            This is the apigee plugin for edge-message-processor
    apigee-rrt           This is the apigee plugin for edge-router
    apigee-sample        Main diagnostics gatehring class
  • כדי לאמת את כל הפלאגינים:
    apigee-service apigee-sosreport diagnose -s -l

    הפקודה מחזירה את רשימת הפלאגינים הבאה שזמינים ב-sosreport:

    sosreport (version 3.9)
    
    The following plugins are currently enabled:
    
     acpid                ACPI daemon information
     alternatives         System alternatives
     anacron              Anacron job scheduling service
     apigee-cassandra     This is the base class for sosreport plugins. Plugins should subclass
        this and set the class variables where applicable. ←truncated→
     apigee-mgmt          This is the base class for sosreport plugins. Plugins should subclass
        this and set the class variables where applicable. ←truncated→
     apigee-mp            Main diagnostics gathering class
     apigee-rrt           This is the base class for sosreport plugins. Plugins should subclass
        this and set the class variables where applicable. ←truncated→
    
    ………………………………………………….
    ………………………………………………….
    ………………………………………………….
    ←truncated→

יצירת דוח

כדי ליצור דוח באמצעות הכלי Sosreport, מריצים את הפקודה sosreport עם אפשרות הפלאגין הנדרשת (ראו פלאגינים של Apigee). ספריית ברירת המחדל שבה הדוח מאוחסן היא tmp או /var/tmp. כדי לשנות את הספרייה שבה הדוח מאוחסן, מעבירים ספרייה אחרת לאפשרות tmp-dir. לדוגמה, כדי ליצור דוח בשרת הניהול ולשמור אותו בספרייה בשם my_report-dir, מזינים אחת מהאפשרויות הבאות:

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf -o apigee-mgmt  --batch --tmp-dir=my_report-dir
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-mgmt  --batch --tmp-dir=my_report-dir

הדוח מאוחסן בקובץ .tar.xz בספרייה שאתם מציינים באמצעות האפשרות tmp-dir. המיקום של קובץ .tar.xz מוצג ב-STDOUT, וגם סכום הביקורת. לדוגמה:

Your sosreport has been generated and saved in:
 /var/sosreport-prc-test-0-9613-2021-07-12-orwxufx.tar.xz
The checksum is: 5a8b97c6020346a688254c8b04ef86ec
For more available options for sosreport, read the man file:
sudo man sosreport

הדוח מאוחסן בקובץ .tar.xz בספרייה שאתם מציינים באמצעות האפשרות tmp-dir. המיקום של .tar.xz file מוצג ב-STDOUT, וגם סכום הביקורת. לדוגמה:

כדי לראות אפשרויות נוספות שזמינות ל-sosreport, קוראים את הקובץ man:

sudo man sosreport

פלאגינים של Apigee

בקטעים הבאים מתוארים תוספים של Apigee לכלי Sosreport עבור הרכיבים הבאים:

שרת ניהול

הפלאגין apigee-mgmt אוסף את המידע הבא משרת הניהול:

  • שם המארח של השרת (ברירת מחדל)
  • cpuinfo (ברירת מחדל)
  • meminfo (ברירת מחדל)
  • הגדרות של מכונה וירטואלית של Java‏ (JVM), כמו זיכרון, Djdk.tls.allowUnsafeServerCertChange וכן הלאה (ברירת מחדל)
  • יומני הניהול הנוכחיים (ברירת מחדל)
  • פלט של עשרה jstacks עליונים רציפים (ברירת מחדל)
  • תיקיית יומן הניהול המלאה (אופציונלי)
  • config-files (אופציונלי)

דוגמאות:

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

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mgmt --batch my_report-dir
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-mgmt --batch my_report-dir

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

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mgmt --batch -k apigee-mgmt.config-files -k apigee-mgmt.all-logs
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-mgmt --batch -k apigee-mgmt.config-files -k apigee-mgmt.all-logs

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

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mgmt --batch -k apigee-mgmt.config-files -k apigee-mgmt.all-logs

    אפשר גם להזין:

    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mgmt --batch -a
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-mgmt --batch -k apigee-mgmt.config-files -k apigee-mgmt.all-logs

    אפשר גם להזין:

    sudo sosreport -o apigee-mgmt --batch -a

מעבד בקשות

התוסף apigee-mp אוסף את המידע הבא ממעבד הניהול (MP):

  • שם המארח של השרת (ברירת מחדל)
  • cpuinfo (ברירת מחדל)
  • meminfo (ברירת מחדל)
  • buildinfo/release info (ברירת מחדל)
  • הסטטוס של apigee-all (ברירת מחדל)
  • פרטי השרת (ברירת מחדל)
  • הגדרות ברמת ה-JVM, למשל זיכרון, Djdk.tls.allowUnsafeServerCertChange וכו' (ברירת מחדל)
  • יומני MP נוכחיים (ברירת מחדל)
  • פלט של עשרה רצפים של top, ‏ jstacks ו-NIO Metrics (ברירת מחדל)
  • תיקיית היומן המלאה של MP (אופציונלי)
  • עץ סיווג (אופציונלי)
  • תמונת מצב של הזיכרון (אופציונלי)
  • config-files (אופציונלי)
  • מעקב בזמן ריצה (אופציונלי ורק אם מצורף org:env:api:rev detail ). הערה: התוסף ממתין 25 שניות לאיסוף הבקשות בזמן הריצה.

דוגמאות:

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

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mp --batch
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-mp --batch

אפשר גם לציין פריטים אופציונליים נוספים לאיסוף, בנוסף לכל פריטי ברירת המחדל. לדוגמה, כדי לציין את ה-heap dump באמצעות הדגל -k apigee-mp.heap, מזינים אחת מהאפשרויות הבאות:

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mp --batch -k apigee-mp.heap
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-mp --batch -k apigee-mp.heap

באופן דומה, אפשר לציין את הפריטים האופציונליים הבאים:

-k apigee-mp.deployments
-k apigee-mp.heap
-k apigee-mp.all-logs
-k apigee-mp.config-files
-k apigee-mp.trace=gsc-cps:test:httpbin:3

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

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mp --batch -k apigee-mp.deployments -k apigee-mp.all-logs
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-mp --batch -k apigee-mp.deployments -k apigee-mp.all-logs

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

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-mp --batch -a
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-mp --batch -a

נתב

התוסף apigee-rrt אוסף מהנתב את הפרטים הבאים:

  • שם המארח של השרת (ברירת מחדל)
  • cpuinfo (ברירת מחדל)
  • meminfo (ברירת מחדל)
  • buildinfo/release info (ברירת מחדל)
  • הסטטוס של apigee-all (ברירת מחדל)
  • פרטי השרת (ברירת מחדל)
  • פלט ps. כך יתקבלו הגדרות ברמת ה-JVM, למשל: memory, Djdk.tls.allowUnsafeServerCertChange וכו' (ברירת מחדל).
  • יומני הנתב הנוכחיים (ברירת מחדל)
  • רשימה של שמות קבצים של vhost, כולל שמות קבצים לא תקינים (ברירת מחדל)
  • תיקייה שלמה של יומן הנתונים של הנתב (אופציונלי)
  • config-files (אופציונלי)

דוגמאות:

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

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-rrt --batch
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-rrt --batch

אפשר גם לציין פריטים אופציונליים נוספים לאיסוף, בנוסף לכל פריטי ברירת המחדל. לדוגמה, כדי לציין את כל תיקיית היומן, באמצעות הדגל -k apigee-rrt.all-logs, מזינים אחת מהאפשרויות הבאות:

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-rrt --batch -k apigee-rrt.all-logs
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-rrt --batch -k apigee-rrt.all-logs

באופן דומה, אפשר לציין את הפריטים האופציונליים הבאים:

-k apigee-rrt.all-logs
-k apigee-rrt.config-files

כדי לאסוף את כל הנתונים:

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-rrt --batch -a
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-rrt --batch -a

Cassandra

הפלגאין apigee-cassandra אוסף את המידע הבא מצמתי Cassandra:

  • נתונים סטטיסטיים של המחשב:
    "hostname -i"
    "cat /proc/cpuinfo"
    "cat /proc/meminfo"
    "ulimit -a"
    "ps auxw"
    "df -kh"
    "du -sh"
    "netstat -ntlpu"
    "free -h"
    "ifconfig -h"
    "ps -ef"
  • הסטטוס והגרסה של רכיב Apigee apigee-all version && apigee-all status
  • יומני apigee-cassandra: כל הקבצים בתיקייה /opt/apigee/var/log/apigee-cassandra/
  • מספר היומנים של פעולות Commit
  • פלט של הפקודה Top
  • Thread dump
  • קבצי תצורה: cassandra-topology.properties, cassandra.yaml, cassandra-env.sh
  • הפלט של Nodetool עבור הפרמטרים הבאים: version, status, ring, info, gossipinfo, compactionstats -H, tpstats, netstats, cfstats, proxyhistograms

דוגמה:

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

  • שימוש בגרסה של sosreport ב-Apigee:
    sudo sosreport --config-file /opt/apigee/apigee-sosreport/conf/sos.conf  -o apigee-cassandra
  • שימוש בגרסת SoS של sosreport:
    sudo sosreport -o apigee-cassandra