איך לעקוב

Edge for Private Cloud גרסה 4.17.09

במאמר הזה מתוארות שיטות המעקב אחרי רכיבים שנתמכים בפריסה מקומית של Apigee Edge.

הפעלת JMX

‫JMX מופעל כברירת מחדל ב-Cassandra, ומושבת כברירת מחדל בכל שאר הרכיבים של Edge. לכן, צריך להפעיל את JMX בנפרד לכל רכיב.

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

רכיב יציאת JMX קובץ
שרת ניהול 1099 /opt/apigee/edge-management-server/bin/start
נתב 1100 /opt/apigee/edge-router/bin/start
מעבד בקשות 1101 /opt/apigee/edge-message-processor/bin/start
Qpid 1102 /opt/apigee/edge-qpid-server/bin/start
Postgres 1103 /opt/apigee/edge-postgres-server/bin/start

לדוגמה, כדי להפעיל את JMX בשרת הניהול, פותחים את ‎/opt/apigee/edge-management-server/bin/start בעורך. אתם אמורים לראות את השורה הבאה שמשמשת להפעלת שרת הניהול:

exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts -Djava.security.auth.login.config=$conf_path/jaas.config 
-Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path 
-Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel

עורכים את השורה הזו ומוסיפים את הפרטים הבאים:

-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 
-Dcom.sun.management.jmxremote.local.only=false  
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 

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

exec $JAVA -classpath "$classpath" -Xms$min_mem -Xmx$max_mem $xx_opts 
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1099 
-Dcom.sun.management.jmxremote.local.only=false  
-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false 
-Djava.security.auth.login.config=$conf_path/jaas.config 
-Dinstallation.dir=$install_dir $sys_props -Dconf.dir=$conf_path -Ddata.dir=$data_dir $* $debug_options com.apigee.kernel.MicroKernel

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

> /opt/apigee/apigee-service/bin/ apigee-service edge-management-server restart

הפעלת אימות JMX והגדרת סיסמת JMX

תהליך המעקב אחרי שרת הניהול, מעבד הבקשות, Qpid ו-Postgres משתמש ב-JMX. ‫JMX מופעל כברירת מחדל, וגישה מרחוק ל-JMX לא דורשת סיסמה.

כדי להפעיל אימות JMX, לכל רכיב יש פעולת change_jmx_auth שמשמשת להפעלה או להשבתה של האימות ולהגדרת פרטי הכניסה של JMX.

כדי להפעיל אימות JMX, משתמשים בפקודה הבאה:

>  /opt/apigee/apigee-service/bin/apigee-service comp change_jmx_auth optionsOrConfigFile

כאשר:

  • ‫comp הוא edge-management-server, ‏ edge-message-processor,‏ edge-qpid-server, או edge-postgres-server.
  • האפשרויות הן:
    • ‫‎-u: שם משתמש
    • ‫‎-p: סיסמה
    • ‫‎-e: ‏y (הפעלה) או n (השבתה)
  • קובץ התצורה כולל:
    • JMX_USERNAME=username
    • JMX_ENABLED=y/n
    • JMX_PASSWORD=password (אם לא הוגדר או לא הועבר עם -p, תתבקשו להזין אותו)

לדוגמה, כדי להשתמש באפשרויות בשורת הפקודה:

> /opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -u foo -p bar -e y

אם יש לכם קובץ תצורה:

> /opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -f configFile

אם אתם מריצים את Edge בכמה צמתים, צריך להריץ את הפקודה הזו בכל הצמתים, ולציין את אותו שם משתמש ואותה סיסמה.

כדי להשבית את האימות של JMX בהמשך, משתמשים בפקודה:

> /opt/apigee/apigee-service/bin/apigee-service edge-management-server change_jmx_auth -e n

שרת ניהול

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

משתמשים ב-JConsole (כלי תואם JMX) כדי לנהל ולעקוב אחרי בדיקת התקינות והנתונים הסטטיסטיים של התהליך. באמצעות JConsole, אתם יכולים לצרוך נתונים סטטיסטיים של JMX שנחשפים על ידי שרת הניהול (או כל שרת אחר) ולהציג אותם בממשק גרפי. מידע נוסף על השימוש ב-JConsole זמין בכתובת http://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html.

משתמשים ב-JConsole ובכתובת ה-URL הבאה של השירות כדי לעקוב אחרי מאפייני JMX ‏(MBeans) שמוצעים דרך JMX.

service:jmx:rmi:///jndi/rmi://<ip address>:<port>/jmxrmi

כאשר <ip address> היא כתובת ה-IP של שרת הניהול (או השרת המתאים). כברירת מחדל, היציאה היא 1099 לשרת הניהול.

בטבלה הבאה מוצגים הנתונים הסטטיסטיים הגנריים של JMX:

JMX MBeans

מאפייני JMX

זיכרון

HeapMemoryUsage

NonHeapMemoryUsage

שימוש

הערה: ערכי המאפיינים יוצגו בארבעה ערכים: committed,‏ init,‏ max ו-used.

שימוש בבדיקות של Edge Application API

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

curl http://<host>:8080/v1/servers/self/up -H "Accept: application/json"

כאשר <host> הוא כתובת ה-IP של שרת הניהול. אפשר לציין את סוג ה-Accept בתור application/json או application/xml.

הקריאה הזו מחזירה את הערכים "true" ו-"false". אם הערך הוא True, סימן שהצומת פועל ושירות Java פועל.

אם לא מתקבלת תגובת HTTP 200 (OK), סימן שה-Edge לא יכול להגיב לבקשות של יציאה 8080.

פתרון בעיות

  1. מתחברים לשרת ומריצים את הפקודה הבאה:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server status
  2. אם השירות לא פועל, מפעילים אותו:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server start

שימוש באפליקציית Edge – בדיקות של משתמשים, ארגון ופריסה

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

curl -u userEmail:password http://localhost:8080/v1/users
curl -u userEmail:password http://localhost:8080/v1/organizations
curl -u userEmail:password http://localhost:8080/v1/organizations/orgname/deployments

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

  1. בודקים אם יש שגיאות ביומני שרת הניהול (ב-opt/apigee/var/log/edge-management-server).
  2. מבצעים קריאה לשרת הניהול כדי לבדוק אם הוא פועל כמו שצריך.
  3. מסירים את השרת מה-ELB ומפעילים מחדש את שרת הניהול.
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

נתב

כדי לבצע בדיקת API בנתב (או בכל שרת), מפעילים את פקודת ה-CURL הבאה:

curl http://<host>:8081/v1/servers/self/up

כאשר host הוא כתובת ה-IP של הנתב.

הקריאה הזו מחזירה את הערכים "true" ו-"false". אם הערך הוא True, סימן שהצומת פועל ושירות הנתב פועל.

אם לא מתקבלת תגובת HTTP 200 (OK), סימן ש-Edge לא יכול להגיב לבקשות של יציאה 8081.

פתרון בעיות

  1. מתחברים לשרת ומריצים את הפקודות הבאות:
    /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router status
  2. אם השירות לא פועל, מפעילים אותו:
    /<inst_root>/apigee/apigee-service/bin/apigee-service edge-router start
  3. אחרי ההפעלה מחדש, בודקים שהשרת פועל:
    curl -v http://localhost:port/v1/servers/self/up

    כאשר port הוא 8081 לנתב ו-8082 למעבד הבקשות.

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

פועלים לפי אותן ההוראות שמתוארות למעלה לגבי שרת הניהול.

הערה: חשוב להשתמש ביציאה 1100.

מעבד בקשות

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

פועלים לפי אותן ההוראות שמתוארות למעלה לגבי שרת הניהול.

הערה: חשוב להשתמש ביציאה 1101.

שימוש בבדיקות של Edge Application API

פועלים לפי ההוראות שלמעלה לגבי הנתב.

הערה: חשוב להשתמש ביציאה 8082.

שימוש בבדיקות של זרימת הודעות ב-JMX

פועלים לפי אותן ההוראות שמתוארות למעלה לגבי שרת הניהול.

הערה: חשוב להשתמש ביציאה 1101.

שרת Qpid

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

פועלים לפי אותן ההוראות שמתוארות למעלה לגבי שרת הניהול.

הערה: חשוב להשתמש ביציאה 1102.

שימוש בבדיקות של Edge Application API

פועלים לפי אותן ההוראות שמתוארות למעלה לגבי שרת הניהול.

הערה: חשוב להשתמש ביציאה 8083. אפשר להשתמש בפקודת ה-CURL הבאה גם בשרת Qpid:

curl http://<qpid_IP>:8083/v1/servers/self

שרת Postgres

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

פועלים לפי אותן ההוראות שמתוארות למעלה לגבי שרת הניהול.

הערה: חשוב להשתמש ביציאה 1103.

שימוש בבדיקות של Edge Application API

פועלים לפי אותן ההוראות שמתוארות למעלה לגבי שרת הניהול.

הערה: חשוב להשתמש ביציאה 8084. אפשר להשתמש בפקודת ה-CURL הבאה גם בשרת Postgres:

curl http://<postgres_IP>:8084/v1/servers/self

שימוש ב-Edge בדיקות של הארגון והסביבה של האפליקציה

כדי לבדוק את שם הארגון והסביבה שהוגדרו בשרת Postgres, אפשר להפעיל את פקודות ה-CURL הבאות:

curl http:// <postgres_IP>:8084/v1/servers/self/organizations

הערה: חשוב להשתמש ביציאה 8084.

המערכת אמורה להציג את שם הארגון והסביבה.

שימוש בבדיקת axstatus של אפליקציית Edge

כדי לבדוק את הסטטוס של שרתי הניתוח, אפשר להריץ את פקודת ה-CURL הבאה.

curl -u userEmail:password http://<host>:<port>/v1/organizations/<orgname>/environments/<envname>/provisioning/axstatus

המערכת אמורה להציג את הסטטוס SUCCESS לכל שרתי הניתוח. הפלט של פקודת ה-CURL שלמעלה מוצג בהמשך:

{
  "environments" : [ {
    "components" : [ {
      "message" : "success at Thu Feb 28 10:27:38 CET 2013",
      "name" : "pg",
      "status" : "SUCCESS",
      "uuid" : "[c678d16c-7990-4a5a-ae19-a99f925fcb93]"
     }, {
      "message" : "success at Thu Feb 28 10:29:03 CET 2013",
      "name" : "qs",
      "status" : "SUCCESS",
      "uuid" : "[ee9f0db7-a9d3-4d21-96c5-1a15b0bf0adf]"
     } ],
    "message" : "",
    "name" : "prod"
   } ],
  "organization" : "acme",
  "status" : "SUCCESS"
}

מסד נתונים של PostgreSQL

שימוש בסקריפט check_postgres.pl

כדי לעקוב אחרי מסד הנתונים של PostgreSQL, אתם יכולים להשתמש בסקריפט המעקב הרגיל check_postgres.pl שזמין בכתובת http://bucardo.org/wiki/Check_postgres.

הערה: צריך להתקין את הסקריפט check_postgres.pl בכל צומת של Postgres.

לפני שמריצים את הסקריפט:

  1. מוודאים שהתקנתם את perl-Time-HiRes.x86_64, מודול Perl שמטמיע התראות, שינה, gettimeofday וטיימרים לאינטרוולים ברזולוציה גבוהה. לדוגמה, אפשר להתקין אותו באמצעות הפקודה הבאה:
    yum install perl-Time-HiRes.x86_64

פלט ברירת המחדל של הקריאות ל-API באמצעות הסקריפט check_postgres.pl תואם ל-Nagios. אחרי שמתקינים את הסקריפט, מבצעים את הבדיקות הבאות:

  1. גודל מסד הנתונים – בודקים את גודל מסד הנתונים:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -include=apigee -action database_size --warning='800 GB' --critical='900 GB'
  2. חיבור נכנס למסד הנתונים – בודק את מספר החיבורים הנכנסים למסד הנתונים ומשווה אותו למספר החיבורים המקסימלי המותר:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
  3. זמינות וביצועים של מסד הנתונים – בדיקה אם מסד הנתונים פועל וזמין:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
  4. מקום בכונן – בדיקת המקום בכונן:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
  5. ארגונים/סביבות שהוגדרו – בודק את מספר הארגונים והסביבות שהוגדרו בצומת Postgres:
    check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action=custom_query --query="select count(*) as result from pg_tables where schemaname='analytics' and tablename like '%fact'" --warning='80' --critical='90' --valtype=integer

הערה: אם אתם צריכים עזרה בשימוש בפקודות שלמעלה, תוכלו להיעזר בכתובת http://bucardo.org/check_postgres/check_postgres.pl.html.

בדיקות DB

אתם יכולים לוודא שהטבלאות המתאימות נוצרו במסד הנתונים של PostgreSQL. מתחברים למסד הנתונים של PostgreSQL באמצעות:

psql  -h /opt/apigee/var/run/apigee-postgresql/  -U apigee -d apigee

ואז מריצים את הפקודה:

\d analytics."<org>.<env>.fact"

בדיקת סטטוס התקינות של תהליך postgres

כדי לבדוק את ה-API במכונת Postgres, מפעילים את פקודת ה-CURL הבאה:

http://<postgres_IP>:8084/v1/servers/self/health/

הערה: חשוב להשתמש ביציאה 8084.

היא מחזירה את הסטטוס ACTIVE כשתהליך postgres פעיל. אם תהליך ה-postgres לא פועל, הוא מחזיר את הסטטוס INACTIVE.

מקורות מידע על Postgres

Apache Cassandra

שימוש ב-JConsole – מעקב אחרי נתונים סטטיסטיים של משימות

משתמשים ב-JConsole ובכתובת ה-URL הבאה של השירות כדי לעקוב אחרי מאפייני JMX ‏(MBeans) שמוצעים דרך JMX.

service:jmx:rmi:///jndi/rmi://<ip address>:7199/jmxrmi

כאשר <ip address> היא כתובת ה-IP של שרת Cassandra.

‫JMX מופעל כברירת מחדל ב-Cassandra, וגישה מרחוק ל-Cassandra באמצעות JMX לא דורשת סיסמה.

כדי להפעיל אימות JMX ולהוסיף סיסמה:

  1. עורכים את הקובץ /opt/apigee/customer/application/cassandra.properties. אם הקובץ לא קיים, יוצרים אותו.
  2. מוסיפים את הטקסט הבא לקובץ:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. שומרים את הקובץ.
  4. מעתיקים את הקבצים הבאים מהספרייה $JAVA_HOME אל ‎/opt/apigee/data/apigee-cassandra/‎:
    cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/data/apigee-cassandra/jmxremote.password

    cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/data/apigee-cassandra/jmxremote.access
  5. עורכים את jmxremote.password ומוסיפים לקובץ את שם המשתמש והסיסמה:
    cassandra password

    כאשר password היא הסיסמה של JMX.
  6. עורכים את jmxremote.access ומוסיפים את התפקיד הבא:
    cassandra readwrite
  7. מוודאים שהקבצים נמצאים בבעלות של apigee ושהמצב של הקובץ הוא 400:
    > chown apigee:apigee /opt/apigee/data/apigee-cassandra/jmxremote.*
    > chmod 400 /opt/apigee/data/apigee-cassandra/jmxremote.*
  8. מריצים את הפקודה configure ב-Cassandra:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  9. מפעילים מחדש את Cassandra:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  10. חוזרים על התהליך הזה בכל שאר הצמתים של Cassandra.

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

  1. עורכים את הקובץ opt/apigee/customer/application/cassandra.properties.
  2. מסירים את השורה הבאה בקובץ:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. מריצים את פקודת ההגדרה ב-Cassandra:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  4. מפעילים מחדש את Cassandra:
    > /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  5. חוזרים על התהליך הזה בכל שאר הצמתים של Cassandra.

נתונים סטטיסטיים של Cassandra JMX

JMX MBeans

מאפייני JMX

ColumnFamilies/apprepo/environments

ColumnFamilies/apprepo/organizations

ColumnFamilies/apprepo/apiproxy_revisions

ColumnFamilies/apprepo/apiproxies

ColumnFamilies/audit/audits

ColumnFamilies/audit/audits_ref

PendingTasks

MemtableColumnsCount

MemtableDataSize

ReadCount

RecentReadLatencyMicros

TotalReadLatencyMicros

WriteCount

RecentWriteLatencyMicros

TotalWriteLatencyMicros

TotalDiskSpaceUsed

LiveDiskSpaceUsed

LiveSSTableCount

BloomFilterFalsePositives

RecentBloomFilterFalseRatio

BloomFilterFalseRatio

שימוש בכלי nodetool לניהול צמתים באשכול

כדי לנהל את הצמתים של האשכול, משתמשים בכלי nodetool, שהוא ממשק שורת פקודה ל-Cassandra. הכלי נמצא ב-opt/apigee/apigee-cassandra/bin.

מידע נוסף על כלי השירות nodetool זמין בכתובת http://www.datastax.com/docs/1.0/references/nodetool.

אפשר לבצע את הקריאות הבאות בכל הצמתים של אשכול Cassandra:

  1. מידע כללי על הטבעת (אפשר גם לצומת Cassandra יחיד): מחפשים את המילים Up ו-Normal לכל הצמתים.
    [host]# nodetool -h localhost ring

    הפלט של הפקודה שלמעלה נראה כך:
    Address DC Rack Status State Load Owns Token
    192.168.124.201 dc1 ra1 Up Normal 1.67 MB 33,33% 0
    192.168.124.202 dc1 ra1 Up Normal 1.68 MB 33,33% 56713727820156410577229101238628035242
    192.168.124.203 dc1 ra1 Up Normal 1.67 MB 33,33% 113427455640312821154458202477256070484
  2. מידע כללי על צמתים (קריאה לכל צומת)
    nodetool -h localhost info

    הפלט של הפקודה שלמעלה נראה כך:
    טוקן  : 0
    Gossip active : TRUE
    Load : 1.67 MB
    Generation No : 1361968765
    זמן פעולה תקינה (seconds) : 78108
    Heap Memory (MB) : 46,80 / 772,00
    מרכז נתונים : dc1
    Rack : ra1
    חריגים : 0
  3. הסטטוס של שרת ה-thrift (משרת את ה-API של הלקוח)
    host]# nodetool -h localhost statusthrift

    הפלט של הפקודה שלמעלה מציג את הסטטוס "running" (פועל).
  4. סטטוס הפעולות של העברת הנתונים: צפייה בתנועה בצומתי Cassandra
    nodetool -h localhost netstats 192.168.124.203

    הפלט של הפקודה שלמעלה נראה כך:
    Mode: NORMAL
    Nothing streaming to /192.168.124.203
    Nothing streaming from /192.168.124.203
    Pool Name Active Pending Completed
    Commands n/a 0 1688
    Responses n/a 0 292277

מעקב אחרי Cassandra (ממשק משתמש)

אפשר לעיין בכתובת ה-URL של datastax opscenter: ‏http://www.datastax.com/products/opscenter.

משאב Cassandra

אפשר לעיין בכתובת ה-URL הבאה: http://www.datastax.com/docs/1.0/operations/monitoring.

Apache ZooKeeper

בדיקת הסטטוס של ZooKeeper

  1. מוודאים שתהליך ZooKeeper פועל. ‫ZooKeeper כותב קובץ PID ב-opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid.
  2. בודקים את היציאות של ZooKeeper כדי לוודא שאפשר ליצור חיבור TCP ליציאות 2181 ו-3888 בכל שרת ZooKeeper.
  3. מוודאים שאפשר לקרוא ערכים ממסד הנתונים של ZooKeeper. מתחברים באמצעות ספריית לקוח של ZooKeeper (או /opt/apigee/apigee-zookeeper/bin/zkCli.sh) וקוראים ערך ממסד הנתונים.
  4. בודקים את הסטטוס:
    > ‎/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status

שימוש בפקודות של ZooKeeper באורך 4 אותיות

אפשר לעקוב אחרי ZooKeeper באמצעות קבוצה קטנה של פקודות (מילים בנות ארבע אותיות) שנשלחות ליציאה 2181 באמצעות netcat‏ (nc) או telnet.

מידע נוסף על פקודות ZooKeeper זמין בכתובת: http://zookeeper.apache.org/doc/r3.1.2/zookeeperAdmin.html#sc_zkCommands.

לדוגמה:

  • srvr: הצגת פרטים מלאים על השרת.
  • ‫stat: מציגה פרטים קצרים על השרת ועל הלקוחות המחוברים.

אפשר להנפיק את הפקודות הבאות ליציאת ZooKeeper:

  1. מריצים את הפקודה ruok בת ארבע האותיות כדי לבדוק אם השרת פועל במצב ללא שגיאות. אם הפעולה בוצעה ללא שגיאות, תוחזר התשובה "imok".
    echo ruok | nc <host> 2181

    התוצאה:
    imok
  2. מריצים את הפקודה stat בת ארבע האותיות כדי להציג את ביצועי השרת ואת הנתונים הסטטיסטיים של הלקוחות המחוברים.
    echo stat | nc <host> 2181

    הפלט:
    Zookeeper version: 3.4.5-1392090, built on 09/30/2012 17:52 GMT
    Clients:
    /0:0:0:0:0:0:0:1:33467[0](queued=0,recved=1,sent=0)
    /192.168.124.201:42388[1](queued=0,recved=8433,sent=8433)
    /192.168.124.202:42185[1](queued=0,recved=1339,sent=1347)
    /192.168.124.204:39296[1](queued=0,recved=7688,sent=7692)
    Latency min/avg/max: 0/0/128
    Received: 26144
    Sent: 26160
    Connections: 4
    Outstanding: 0
    Zxid: 0x2000002c2
    Mode: follower
    Node count: 283

    הערה: לפעמים חשוב לבדוק אם ZooKeeper נמצא במצב leader,‏ follower או observer.
  3. אם netcat (nc) לא זמין, אפשר להשתמש ב-Python כחלופה. כדי לעשות זאת, יוצרים קובץ בשם zookeeper.py שמכיל את הקוד הבא:
    import time, socket,
    sys c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    c.connect((sys.argv[1], 2181))
    c.send(sys.argv[2])
    time.sleep(0.1)
    print c.recv(512)


    עכשיו מריצים את שורות הקוד הבאות ב-Python:
    python zookeeper.py 192.168.124.201 ruok
    python zookeeper.py 192.168.124.201 stat

OpenLDAP

בדיקת רמת LDAP

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

  1. משתמשים ב-ldapsearch (yum install openldap-clients) כדי לשלוח שאילתה לגבי הרשומה של האדמין במערכת. הרשומה הזו משמשת לאימות של כל הקריאות ל-API.
    ldapsearch -b "uid=admin,ou=users,ou=global,dc=apigee,dc=com" -x -W -D "cn=manager,dc=apigee,dc=com" -H ldap://localhost:10389 -LLL

    לאחר מכן תתבקשו להזין את סיסמת האדמין של LDAP:
    Enter LDAP Password:

    אחרי שתזינו את הסיסמה, תופיע תשובה בפורמט הבא:
    dn: uid=admin,ou=users,ou=global,dc=apigee,dc=com
    objectClass: organizationalPerson
    objectClass: person
    objectClass: inetOrgPerson
    objectClass: top
    uid: admin
    cn: admin
    sn: admin
    userPassword:: e1NTSEF9bS9xbS9RbVNXSFFtUWVsU1F0c3BGL3BQMkhObFp2eDFKUytmZVE9PQ=
    =
    mail: opdk@google.com
  2. בודקים אם שרת הניהול עדיין מחובר לבעיית LDAP:
    curl -u <userEMail>:<password> http://localhost:8080/v1/users/<ADMIN>

    התוצאה:
    {
    "emailId" : <ADMIN>,
    "firstName" : "admin",
    "lastName" : "admin"
    }

אפשר גם לעקוב אחרי המטמונים של OpenLDAP, שעוזרים לצמצם את מספר הגישות לדיסק וכך לשפר את ביצועי המערכת. מעקב אחרי גודל המטמון בשרת OpenLDAP וכוונון שלו יכולים להשפיע מאוד על הביצועים של שרת הגילוי. אפשר להציג את קובצי היומן (opt/apigee/var/log) כדי לקבל מידע על המטמון.