איך לעקוב

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

סקירה כללית

ב-Edge יש כמה דרכים לקבל פרטים על שירותים ולבדוק את הסטטוסים שלהם. בטבלה הבאה מפורטים סוגי הבדיקות שאפשר לבצע בכל שירות שעומד בדרישות:

‫Mgmt API
רכיב שימוש בזיכרון [JMX*] בדיקת שירות סטטוס המשתמש/הארגון/ הפריסה axstatus בדיקת מסד נתונים סטטוס apigee-service apigee-monit**
שרת ניהול
מעבד בקשות
נתב
Qpid
Postgres
מידע נוסף מידע נוסף מידע נוסף מידע נוסף מידע נוסף מידע נוסף מידע נוסף

* כדי להשתמש ב-JMX, צריך להפעיל אותו, כמו שמתואר בקטע הפעלת JMX.

** השירות apigee-monit בודק אם רכיב פועל, ואם לא, הוא מנסה להפעיל אותו מחדש. מידע נוסף זמין במאמר תיקון עצמי באמצעות apigee-monit.

יציאות מעקב וקובצי תצורה

כל רכיב תומך ב-Java Management Extensions ‏ (JMX) ובקריאות פיקוח על API של Management API ביציאות שונות. בטבלה הבאה מפורטות היציאות של JMX ושל Management API לכל סוג של שרת, ומיקומי קובצי התצורה:

רכיב יציאת JMX יציאה של Management API מיקום קובץ התצורה
שרת ניהול 1099 8080 $APIGEE_ROOT/customer/application/management-server.properties
מעבד בקשות 1101 8082 $APIGEE_ROOT/customer/application/message-processor.properties
נתב 1100 8081 $APIGEE_ROOT/customer/application/router.properties
Qpid 1102 8083 $APIGEE_ROOT/customer/application/qpid-server.properties
Postgres 1103 8084 $APIGEE_ROOT/customer/application/postgres-server.properties

שימוש ב-JMX למעקב אחרי רכיבים

בקטעים הבאים מוסבר איך להשתמש ב-JMX כדי לעקוב אחרי רכיבי Edge.

הפעלת JMX

כדי להפעיל את JMX בלי אימות או תקשורת מבוססת-SSL, מבצעים את השלבים הבאים. הערה: במערכות ייצור, צריך להפעיל גם אימות מוצפן וגם SSL מטעמי אבטחה.

  1. עורכים את קובץ התצורה המתאים (ראו הפניה לקובץ תצורה). יוצרים את קובץ התצורה אם הוא לא קיים.
    conf_system_jmxremote_enable=true
  2. שומרים את קובץ התצורה ומוודאים שהבעלים שלו הוא apigee:apigee.
  3. מפעילים מחדש את רכיב Edge המתאים
    apigee-service edge-management-server restart

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

אימות ב-JMX

ב-Edge for Private Cloud יש תמיכה באימות מבוסס-סיסמה באמצעות פרטים שמאוחסנים בקבצים. כדי להגביר את האבטחה, אתם יכולים לאחסן סיסמאות כערך גיבוב (Hash).

  1. כדי להפעיל אימות JMX ברכיב edge-‎*, עורכים את קובץ התצורה המתאים (ראו הפניה לקובץ התצורה). יוצרים את קובץ התצורה אם הוא לא קיים:
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_authenticate=true
    conf_system_jmxremote_encrypted_auth=true
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
    שומרים את קובץ התצורה ומוודאים שהוא בבעלות של apigee:apigee.
  2. יוצרים גיבוב SHA256 של הסיסמה:
    echo -n '' | openssl dgst -sha256
  3. יוצרים קובץ jmxremote.password עם פרטי הכניסה של משתמש JMX:
    1. מעתיקים את הקבצים הבאים מהספרייה $JAVA_HOME לספרייה /opt/apigee/customer/application/<component>/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
    2. עורכים את הקובץ ומוסיפים את שם המשתמש והסיסמה של JMX באמצעות התחביר הבא:
      USERNAME <HASH-PASSWORD>
    3. מוודאים שהקובץ נמצא בבעלות של apigee ושהמצב של הקובץ הוא 400:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
  4. יוצרים קובץ jmxremote.access עם הרשאות משתמש JMX:
    1. מעתיקים את הקבצים הבאים מהספרייה $JAVA_HOME לספרייה /opt/apigee/customer/application/<component>/
      cp ${JAVA_HOME}/lib/management/jmxremote.access $APIGEE_ROOT/customer/application/management-server/jmxremote.access
    2. עורכים את הקובץ ומוסיפים את שם המשתמש ב-JMX ואחריו הרשאה (READONLY/READWRITE)
      USERNAME READONLY
    3. מוודאים שהקובץ נמצא בבעלות של apigee ושהמצב של הקובץ הוא 400:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.access
      chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
  5. מפעילים מחדש את רכיב Edge המתאים:
    apigee-service edge-management-server restart

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

SSL ב-JMX

כדי להפעיל JMX מבוסס-SSL ברכיב edge-* ‎:

  1. עורכים את קובץ התצורה המתאים (ראו הפניה לקובץ תצורה). יוצרים את קובץ התצורה אם הוא לא קיים:
    conf_system_jmxremote_enable=true
    conf_system_jmxremote_ssl=true
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
    conf_system_javax_net_ssl_keystorepassword=<keystore-password>
    שומרים את קובץ התצורה ומוודאים שהוא בבעלות של apigee:apigee.
  2. מכינים מאגר מפתחות שמכיל את מפתח השרת וממקמים אותו בנתיב שצוין בהגדרה conf_system_javax_net_ssl_keystore שלמעלה. מוודאים שקובץ מאגר המפתחות ניתן לקריאה על ידי apigee:apigee.
  3. מפעילים מחדש את רכיב Edge המתאים:
    apigee-service edge-management-server restart

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

מעקב באמצעות JConsole

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

אם SSL מופעל ב-JMX, צריך להפעיל את JConsole עם truststore וסיסמת truststore. שימוש ב-JConsole

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

service:jmx:rmi:///jndi/rmi://IP_address:port_number/jmxrmi

כאשר:

  • ‫IP_address היא כתובת ה-IP של השרת שרוצים לעקוב אחריו.
  • ‫port_number הוא מספר היציאה של JMX בשרת שרוצים לעקוב אחריו.

לדוגמה, כדי לנטר את שרת הניהול, מריצים פקודה כמו הפקודה הבאה (בהנחה שכתובת ה-IP של השרת היא 216.3.128.12):

service:jmx:rmi:///jndi/rmi://216.3.128.12:1099/jmxrmi

שימו לב שבמקרה הזה צוינה יציאה 1099, שהיא יציאת ה-JMX של שרת הניהול. ליציאות אחרות, ראו יציאות למעקב אחרי JMX ו-Management API.

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

JMX MBeans מאפייני JMX

זיכרון

HeapMemoryUsage

NonHeapMemoryUsage

שימוש

הסבר על קובץ התצורה

בקטעים הבאים מתוארים שינויים שאולי תצטרכו לבצע בקובצי התצורה של רכיבי Edge עבור הגדרות שקשורות ל-JMX. מידע נוסף מופיע במאמר מעקב אחרי יציאות וקובצי תצורה.

הגדרת JMX שצריך להוסיף לקובץ התצורה של הרכיב המתאים

  • מפעילים את סוכן JMX ברכיב הקצה. ערך ברירת המחדל הוא False.
    conf_system_jmxremote_enable=true

הגדרות לאימות מבוסס-סיסמה

  • להפעיל אימות מבוסס-סיסמה. ערך ברירת המחדל הוא False.
    conf_system_jmxremote_authenticate=true
  • הנתיב לקובץ הגישה. הקובץ צריך להיות בבעלות משתמש Apigee ורק הוא יכול לקרוא אותו.
    conf_system_jmxremote_access_file=/opt/apigee/customer/application/management-server/jmxremote.access
  • הנתיב לקובץ הסיסמאות. הקובץ צריך להיות בבעלות משתמש Apigee ורק הוא יכול לקרוא אותו.
    conf_system_jmxremote_password_file=/opt/apigee/customer/application/management-server/jmxremote.password
  • הפעלת אחסון הסיסמה בפורמט מוצפן. ערך ברירת המחדל הוא False.
    conf_system_jmxremote_encrypted_auth=true

הגדרות ל-JMX מבוסס-SSL

  • הפעלת SSL לתקשורת JMX. ערך ברירת המחדל הוא False.
    conf_system_jmxremote_ssl=true
  • הנתיב למאגר המפתחות. הקובץ צריך להיות בבעלות משתמש Apigee ורק הוא יכול לקרוא אותו.
    conf_system_javax_net_ssl_keystore=/opt/apigee/customer/application/management-server/jmxremote.keystore
  • סיסמת Keystore:
    conf_system_javax_net_ssl_keystorepassword=changeme

הגדרות JMX אופציונליות

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

  • יציאת JMX. ערכי ברירת המחדל מפורטים בטבלה הבאה.
    conf_system_jmxremote_port=
  • יציאת JMX RMI. כברירת מחדל, תהליך Java יבחר יציאה אקראית.
    conf_system_jmxremote_rmi_port=
  • שם המארח של ה-stub מרחוק. כתובת ה-IP שמשמשת כברירת מחדל של localhost.
    conf_system_java_rmi_server_hostname=
  • הגנה על מרשם JMX באמצעות SSL. ערך ברירת המחדל הוא False. ההגדרה הזו רלוונטית רק אם SSL מופעל.
    conf_system_jmxremote_registry_ssl=false

מעקב באמצעות Management API

‫Edge כולל כמה ממשקי API שבהם אפשר להשתמש כדי לבצע בדיקות שירות בשרתים, וגם כדי לבדוק את המשתמשים, הארגונים והפריסות. בקטע הזה מתוארים ממשקי ה-API האלה.

ביצוע בדיקות שירות

ב-Management API יש כמה נקודות קצה שמאפשרות לעקוב אחרי השירותים שלכם ולאבחן בעיות בהם. נקודות הקצה האלה כוללות:

נקודת קצה תיאור
/servers/self/up

בודקת אם שירות פועל. הקריאה הזו ל-API לא דורשת אימות.

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

<ServerField>
  <Up>true</Up>
</ServerField>

אם השירות לא פועל, תקבלו תשובה דומה לזו (בהתאם לשירות ולשיטה שבה בדקתם):

curl: Failed connect to localhost:port_number; Connection refused
/servers/self

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

  • מאפייני ההגדרה
  • שעת ההתחלה וזמן הפעילות התקינה
  • פרטי ה-build,‏ ה-RPM וה-UUID
  • שם מארח פנימי וחיצוני וכתובת IP
  • אזור ו-pod
  • המאפיין <isUp>, שמציין אם השירות פועל

כדי לבצע את הקריאה הזו ל-API, צריך לבצע אימות באמצעות פרטי הכניסה של האדמין ב-Apigee.

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

curl http://host:port_number/v1/servers/self/up -H "Accept: [application/json|application/xml]"
curl http://host:port_number/v1/servers/self -u username:password -H "Accept: [application/json|application/xml]"

כאשר:

  • ‫host היא כתובת ה-IP של השרת שרוצים לבדוק. אם אתם מחוברים לשרת, אתם יכולים להשתמש ב-"localhost". אחרת, ציינו את כתובת ה-IP של השרת, וגם את שם המשתמש והסיסמה.
  • ‫port_number הוא יציאת ה-Management API של השרת שרוצים לבדוק. לכל סוג רכיב יש יציאה שונה. לדוגמה, יציאת Management API של שרת הניהול היא 8080. רשימת מספרי הפורטים של Management API לשימוש מופיעה במאמר בנושא פורטים של ניטור JMX ו-Management API.

כדי לשנות את פורמט התשובה, אפשר לציין את הכותרת Accept כ-application/json או כ-application/xml.

בדוגמה הבאה מוצג הסטטוס של הנתב ב-localhost (יציאה 8081):

curl http://localhost:8081/v1/servers/self/up -H "Accept: application/xml"

בדוגמה הבאה מוצג איך לקבל מידע על מעבד ההודעות בכתובת 216.3.128.12 (יציאה 8082):

curl http://216.3.128.12:8082/v1/servers/self -u sysAdminEmail:password
  -H "Accept: application/xml"

מעקב אחרי סטטוס המשתמש, הארגון והפריסה

אתם יכולים להשתמש ב-Management API כדי לעקוב אחרי סטטוס המשתמש, הארגון והפריסה של שרתי ה-proxy בשרתי הניהול ובמעבדי הבקשות, באמצעות הפקודות הבאות:

curl http://host:port_number/v1/users -u sysAdminEmail:password
curl http://host:port_number/v1/organizations -u sysAdminEmail:password
curl http://host:port_number/v1/organizations/orgname/deployments -u sysAdminEmail:password

כאשר port_number הוא 8080 עבור שרת הניהול או 8082 עבור מעבד ההודעות.

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

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

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

    כאשר service_name הוא:

    • edge-management-server
    • edge-message-processor

בודקים את הסטטוס באמצעות הפקודה apigee-service

כדי לפתור בעיות בשירותי Edge, אתם יכולים להשתמש בפקודה apigee-service כשאתם מחוברים לשרת שבו פועל השירות.

כדי לבדוק את הסטטוס של שירות עם apigee-service:

  1. מתחברים לשרת ומריצים את הפקודה הבאה:
    /opt/apigee/apigee-service/bin/apigee-service service_name status

    ‫service_name הוא אחד מהבאים:

    • שרת ניהול: edge-management-server
    • מעבד ההודעות: edge-message-processor
    • ‫Postgres: edge-postgres-server
    • Qpid: edge-qpid-server
    • נתב: edge-router

    לדוגמה:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor status
  2. אם השירות לא פועל, מפעילים אותו:
    /opt/apigee/apigee-service/bin/apigee-service service_name start
  3. אחרי שמפעילים מחדש את השירות, בודקים שהוא פועל. אפשר לעשות את זה באמצעות הפקודה apigee-service status שבה השתמשתם קודם, או באמצעות Management API שמתואר במאמר מעקב באמצעות Management API.

    לדוגמה:

    curl -v http://localhost:port_number/v1/servers/self/up

    כאשר port_number היא יציאת Management API של השירות.

    בדוגמה הזו אנחנו מניחים שאתם מחוברים לשרת ויכולים להשתמש ב-"localhost" בתור שם המארח. כדי לבדוק את הסטטוס מרחוק באמצעות Management API, צריך לציין את כתובת ה-IP של השרת ולכלול את שם המשתמש והסיסמה של מנהל המערכת בקריאה ל-API.

מעקב אחרי Postgres

ב-Postgres יש כמה כלי שירות שמאפשרים לבדוק את הסטטוס שלו. הכלים האלה מתוארים בקטעים הבאים.

בדיקת ארגונים וסביבות ב-Postgres

כדי לבדוק את שמות הארגונים והסביבות שהוגדרו בשרת Postgres, מריצים את הפקודה הבאה של curl:

curl -v http://postgres_IP:8084/v1/servers/self/organizations

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

אימות סטטוס הניתוח

כדי לאמת את הסטטוס של שרתי הניתוח של Postgres ו-Qpid, מריצים את הפקודה הבאה: curl

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

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

{
  "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

בקטע הזה מתוארות שיטות שבהן אפשר להשתמש במיוחד למעקב אחרי מסד הנתונים של Postgres.

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

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

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

  1. צריך להתקין את הסקריפט check_postgres.pl בכל צומת של Postgres.
  2. מוודאים שהתקנתם את perl-Time-HiRes.x86_64, מודול Perl שמטמיע התראה ברזולוציה גבוהה, שינה, gettimeofday וטיימרים לאינטרוולים. לדוגמה, אפשר להתקין אותו באמצעות הפקודה הבאה:
    yum install perl-Time-HiRes.x86_64
  3. ‫CentOS 7: לפני שמשתמשים ב-check_postgres.pl ב-CentOS v7, צריך להתקין את ה-RPM‏ perl-Data-Dumper.x86_64.

פלט של check_postgres.pl

פלט ברירת המחדל של הקריאות ל-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

הרצת בדיקות של מסד הנתונים

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

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

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

\d analytics."org.env.fact"

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

כדי לבצע בדיקות API במכונת Postgres, מפעילים את הפקודה הבאה של curl:

curl -v http://postgres_IP:8084/v1/servers/self/health

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

משאבים של Postgres

למידע נוסף על מעקב אחרי שירות Postgres:

Apache Cassandra

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

הפעלת אימות JMX ל-Cassandra

אפשר להפעיל אימות JMX עבור Cassandra. אחרי שתעשו את זה, תצטרכו להעביר שם משתמש וסיסמה לכל הקריאות לכלי nodetool.

כדי להפעיל אימות JMX עבור Cassandra:

  1. יוצרים ועורכים את הקובץ cassandra.properties:
    1. עורכים את הקובץ /opt/apigee/customer/application/cassandra.properties. אם הקובץ לא קיים, יוצרים אותו.
    2. מוסיפים את הטקסט הבא לקובץ:
      conf_cassandra_env_com.sun.management.jmxremote.authenticate=true
      conf_cassandra_env_com.sun.management.jmxremote.password.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.password
      conf_cassandra_env_com.sun.management.jmxremote.access.file=${APIGEE_ROOT}/customer/application/apigee-cassandra/jmxremote.access
    3. שומרים את קובץ ה-cassandra.properties.
    4. משנים את הבעלים של הקובץ ל-apigee:apigee, כמו בדוגמה הבאה:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties

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

  2. יצירה ועריכה של jmx_auth.sh:
    1. אם הקובץ לא קיים, יוצרים קובץ במיקום הבא:
      /opt/apigee/customer/application/jmx_auth.sh
    2. מוסיפים לקובץ את המאפיינים הבאים:
      export CASS_JMX_USERNAME=JMX_USERNAME
      export CASS_JMX_PASSWORD=JMX_PASSWORD
    3. שומרים את קובץ ה-jmx_auth.sh.
    4. מגדירים את הקובץ כמקור:
      source /opt/apigee/customer/application/jmx_auth.sh
  3. מעתיקים ועורכים את הקובץ jmxremote.password:
    1. מעתיקים את הקובץ הבא מהספרייה $JAVA_HOME אל /opt/apigee/customer/application/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
    2. עורכים את קובץ jmxremote.password ומוסיפים את שם המשתמש והסיסמה של JMX באמצעות התחביר הבא:
      JMX_USERNAME JMX_PASSWORD

      כאשר JMX_USERNAME ו-JMX_PASSWORD הם שם המשתמש והסיסמה של JMX שהגדרתם קודם.

    3. חשוב לוודא שהקובץ בבעלות apigee ושהרשאות הקובץ הן 400:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
  4. מעתיקים ועורכים את הקובץ jmxremote.access:
    1. מעתיקים את הקובץ הבא מהספרייה $JAVA_HOME אל /opt/apigee/customer/application/apigee-cassandra/:
      cp ${JAVA_HOME}/lib/management/jmxremote.access
      $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
    2. עורכים את הקובץ jmxremote.access ומוסיפים את התפקיד הבא:
      JMX_USERNAME readwrite
    3. מוודאים שהקובץ בבעלות של apigee ושהמצב של הקובץ הוא 400:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
  5. מריצים את configure ב-Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. מפעילים מחדש את Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. חוזרים על התהליך הזה בכל שאר הצמתים של Cassandra.

הפעלת הצפנת סיסמאות JMX

כדי להפעיל הצפנת סיסמאות ב-JMX, מבצעים את הפעולות הבאות:

  1. פותחים את הקובץ source/conf/casssandra-env.sh.
  2. יוצרים ועורכים את הקובץ cassandra.properties:
    1. עורכים את הקובץ /opt/apigee/customer/application/cassandra.properties. אם הקובץ לא קיים, יוצרים אותו.
    2. מוסיפים את הטקסט הבא לקובץ:
      conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
    3. שומרים את הקובץ cassandra.properties.
    4. משנים את הבעלים של הקובץ ל-apigee:apigee, כמו בדוגמה הבאה:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
  3. בשורת הפקודה, יוצרים גיבוב SHA1 של הסיסמאות הרצויות על ידי הזנת echo -n 'Secret' | openssl dgst -sha1
  4. מגדירים את הסיסמאות מול שם המשתמש ב-$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password (שנוצר בקטע הקודם).
  5. מריצים את הפקודה configure ב-Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
  6. מפעילים מחדש את Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
  7. חוזרים על התהליך הזה בכל שאר הצמתים של Cassandra.

הפעלת JMX עם SSL ל-Cassandra

הפעלת JMX עם SSL מספקת אבטחה והצפנה נוספות לתקשורת מבוססת-JMX עם Cassandra. כדי להפעיל JMX עם SSL, צריך לספק מפתח ואישור ל-Cassandra כדי לאפשר חיבורי JMX מבוססי SSL. צריך גם להגדיר את nodetool (וכל כלי אחר שמתקשר עם Cassandra באמצעות JMX) ל-SSL.

‫JMX עם SSL תומך בסיסמאות JMX מוצפנות ובסיסמאות בטקסט פשוט.

כדי להפעיל JMX עם SSL ל-Cassandra, מבצעים את הפעולות הבאות:

  1. הפעלת JMX. אם צריך, מפעילים את הצפנת הסיסמה.
  2. הפעלת אימות JMX ל-Cassandra. כפי שמתואר למעלה. מוודאים ש-nodetool פועל עם שם המשתמש והסיסמה שהוגדרו.
    /opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
  3. מכינים את מאגר המפתחות ואת ה-truststore.

    • מאגר המפתחות צריך להכיל מפתח ואישור, והוא משמש להגדרת שרת Cassandra. אם מאגר המפתחות מכיל כמה זוגות מפתחות, Cassandra משתמשת בזוג המפתחות הראשון כדי להפעיל את SSL.

      חשוב לזכור שהסיסמאות של מאגר המפתחות ושל המפתח צריכות להיות זהות (ברירת המחדל כשיוצרים את המפתח באמצעות keytool).

    • ה-truststore צריך להכיל רק את האישור, והלקוחות משתמשים בו (פקודות שמבוססות על apigee-service או nodetool) כדי להתחבר דרך JMX.

    אחרי שמוודאים שהדרישות שלמעלה מתקיימות:

    1. מציבים את קובץ מאגר המפתחות ב-/opt/apigee/customer/application/apigee-cassandra/.
    2. כדי לוודא שרק משתמש Apigee יכול לקרוא את קובץ מאגר המפתחות, מזינים את הפקודה הבאה:
      chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
      chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
  4. כדי להגדיר את Cassandra ל-JMX עם SSL:
    1. מזינים את הפקודה הבאה כדי לעצור את הצומת של Cassandra:
      apigee-service apigee-cassandra stop
    2. כדי להפעיל SSL ב-Cassandra, פותחים את הקובץ /opt/apigee/customer/application/cassandra.properties ומוסיפים את השורות הבאות:
      conf_cassandra_env_com.sun.management.jmxremote.ssl=true
      conf_cassandra_env_javax.net.ssl.keyStore=/opt/apigee/customer/application/apigee-cassandra/keystore.node1
      conf_cassandra_env_javax.net.ssl.keyStorePassword=keystore-password
    3. משנים את הבעלים של הקובץ ל-apigee:apigee, כמו בדוגמה הבאה:
      chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
    4. מריצים את הפקודה configure ב-Cassandra:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
    5. מפעילים מחדש את Cassandra:
      /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
    6. חוזרים על התהליך הזה בכל שאר הצמתים של Cassandra.
    7. מפעילים את צומת Cassandra על ידי הזנת הפקודה
      apigee-service apigee-cassandra start
  5. מגדירים את הפקודות של apigee-service Cassandra. צריך להגדיר משתני סביבה מסוימים כשמריצים פקודות apigee-service, כולל הפקודות הבאות:
    apigee-service apigee-cassandra stop
    apigee-service apigee-cassandra wait_for_ready
    apigee-service apigee-cassandra ring
    apigee-service apigee-cassandra backup

    יש כמה אפשרויות להגדרת apigee-service לאימות JMX ול-SSL. בוחרים אפשרות על סמך נוחות השימוש ושיטות האבטחה שלכם.

    אפשרות 1 (ארגומנטים של SSL מאוחסנים בקובץ)

    מגדירים את משתני הסביבה הבאים:

    export CASS_JMX_USERNAME=ADMIN
    # Provide encrypted password here if you have setup JMX password encryption
    export CASS_JMX_PASSWORD=PASSWORD
    export CASS_JMX_SSL=Y

    יוצרים קובץ בספריית הבית של המשתמש ב-Apigee‏ (/opt/apigee).

    $HOME/.cassandra/nodetool-ssl.properties

    עורכים את הקובץ ומוסיפים את השורות הבאות:

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true
    -Djavax.net.ssl.trustStoreType=PKCS12

    מוודאים שמשתמש Apigee יכול לקרוא את קובץ מאגר האמון.

    מריצים את הפקודה הבאה apigee-service. אם הפקודה פועלת ללא שגיאה, ההגדרות שלכם נכונות.

    apigee-service apigee-cassandra ring

    אפשרות 2 (ארגומנטים של SSL שמאוחסנים במשתני סביבה)

    מגדירים את משתני הסביבה הבאים:

    export CASS_JMX_USERNAME=ADMIN
    # Provide encrypted password here if you have setup JMX password encryption
    export CASS_JMX_PASSWORD=PASSWORD
    export CASS_JMX_SSL=Y
    # Ensure the truststore file is accessible by Apigee user.
    export CASS_JMX_TRUSTSTORE=<path-to-trustore.node1>
    export CASS_JMX_TRUSTSTORE_PASSWORD=<truststore-password>
    # If you are using a non standard truststore type, export truststore type as well
    # Possible values are JKS, PKCS12, BCFKS
    export CASS_JMX_TRUSTSTORE_TYPE=PKCS12

    מריצים את הפקודה הבאה apigee-service. אם הפקודה פועלת ללא שגיאה, ההגדרות שלכם נכונות.

    apigee-service apigee-cassandra ring

    אפשרות 3 (ארגומנטים של SSL שמועברים ישירות אל apigee-service)

    מריצים פקודת apigee-service כמו זו שבהמשך. אתם לא צריכים להגדיר משתני סביבה.

    CASS_JMX_USERNAME=ADMIN CASS_JMX_PASSWORD=PASSWORD CASS_JMX_SSL=Y CASS_JMX_TRUSTSTORE=<path-to-trustore.node1> CASS_JMX_TRUSTSTORE_PASSWORD=<trustore-password> CASS_JMX_TRUSTSTORE_TYPE=PKCS12 /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. מגדירים את nodetool. כדי להשתמש ב-Nodetool צריך להעביר אליו פרמטרים של JMX. יש שתי דרכים להגדיר את nodetool להפעלה עם JMX שמופעל באמצעות SSL, כמו שמתואר באפשרויות ההגדרה שבהמשך:

    האפשרויות שונות באופן שבו הגדרות שקשורות ל-SSL מועברות ל-nodetool. בשני המקרים, למשתמש שמפעיל את nodetool צריכות להיות הרשאות קריאה בקובץ ה-truststore. בוחרים באפשרות המתאימה לפי נוחות השימוש ונוהלי האבטחה שלכם.

    מידע נוסף על הפרמטרים של nodetool זמין ב מסמכי התיעוד של Apache Cassandra nodetool.

    אפשרות הגדרה 1

    יוצרים קובץ בספריית הבית של המשתמש שמריץ את nodetool.

    $HOME/.cassandra/nodetool-ssl.properties

    מוסיפים לקובץ את השורות הבאות:

    -Djavax.net.ssl.trustStore=<path-to-truststore.node1>
    -Djavax.net.ssl.trustStorePassword=<truststore-password>
    -Dcom.sun.management.jmxremote.registry.ssl=true
    -Djavax.net.ssl.trustStoreType=PKCS12

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

    מריצים את הפקודה nodetool עם האפשרות --ssl.

    /opt/apigee/apigee-cassandra/bin/nodetool --ssl -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

    אפשרות הגדרה 2

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

    /opt/apigee/apigee-cassandra/bin/nodetool -Djavax.net.ssl.trustStore=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.trustStoreType=PKCS12 -Dssl.enable=true -u <jmx-user-name> -pw <jmx-user-password> -h localhost ring

חזרה להגדרות ה-SSL הקודמות

אם אתם צריכים לבטל את הגדרות ה-SSL שמתוארות בתהליך שלמעלה, בצעו את השלבים הבאים:

  1. כדי להפסיק את apigee-cassandra, מזינים
    apigee-service apigee-cassandra stop
  2. מסירים את השורה conf_cassandra-env_com.sun.management.jmxremote.ssl=true מהקובץ /opt/apigee/customer/application/cassandra.properties.
  3. מסמנים כהערה את השורות הבאות בקובץ /opt/apigee/apigee-cassandra/source/conf/cassandra-env.sh
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/opt/apigee/data/apigee-cassandra/keystore.node0"
    # JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=keypass"
    # JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true”
  4. כדי להפעיל את apigee-cassandra, צריך להזין
  5. apigee-service apigee-cassandra start
  6. מסירים את משתנה הסביבה CASS_JMX_SSL אם הוא הוגדר.

    unset CASS_JMX_SSL
  7. בודקים שפקודות שמבוססות על apigee-service, כמו ring, stop, ‏backup וכו', פועלות.
  8. מפסיקים להשתמש במתג --ssl עם nodetool

השבתת אימות JMX ל-Cassandra

כדי להשבית את אימות JMX ב-Cassandra:

  1. עריכה של /opt/apigee/customer/application/cassandra.properties.
  2. מסירים את השורה הבאה בקובץ:
    conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
  3. מריצים את הפקודה configure ב-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.

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

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

service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi

כאשר IP_address היא כתובת ה-IP של שרת 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.

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

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

    צריך להעביר את שם המשתמש והסיסמה רק אם הפעלתם אימות JMX ל-Cassandra.

    הפלט של הפקודה שלמעלה אמור להיראות כך:

    Datacenter: dc-1
    ==========
    Address            Rack     Status State   Load    Owns    Token
    192.168.124.201    ra1      Up     Normal  1.67 MB 33,33%  0
    192.168.124.202    ra1      Up     Normal  1.68 MB 33,33%  5671...5242
    192.168.124.203    ra1      Up     Normal  1.67 MB 33,33%  1134...0484
  2. מידע כללי על צמתים (קריאה לכל צומת)
    nodetool [-u username -pw password]  -h localhost info

    הפלט של הפקודה שלמעלה אמור להיראות כך:

    ID                     : e2e42793-4242-4e82-bcf0-oicu812
    Gossip active          : true
    Thrift active          : true
    Native Transport active: true
    Load                   : 273.71 KB
    Generation No          : 1234567890
    Uptime (seconds)       : 687194
    Heap Memory (MB)       : 314.62 / 3680.00
    Off Heap Memory (MB)   : 0.14
    Data Center            : dc-1
    Rack                   : ra-1
    Exceptions             : 0
    Key Cache              : entries 150, size 13.52 KB, capacity 100 MB, 1520781 hits, 1520923 requests, 1.000 recent hit rate, 14400 save period in seconds
    Row Cache              : entries 0, size 0 bytes, capacity 0 bytes, 0 hits, 0 requests, NaN recent hit rate, 0 save period in seconds
    Counter Cache          : entries 0, size 0 bytes, capacity 50 MB, 0 hits, 0 requests, NaN recent hit rate, 7200 save period in seconds
    Token                  : 0
  3. סטטוס שרת ה-thrift (משרת את ה-API של הלקוח)
    nodetool [-u username -pw password] -h localhost statusthrift

    הפלט של הפקודה שלמעלה נראה כך:

    running
  4. סטטוס של פעולות סטרימינג של נתונים: צפייה בתנועה של צומתי Cassandra:
    nodetool [-u username -pw password] -h localhost netstats

    הפלט של הפקודה שלמעלה נראה כך:

    Mode: NORMAL
    Not sending any streams.
    Read Repair Statistics:
    Attempted: 151612
    Mismatch (Blocking): 0
    Mismatch (Background): 0
    Pool Name                    Active   Pending      Completed   Dropped
    Commands                        n/a         0              0         0
    Responses                       n/a         0              0       n/a

מידע נוסף על השימוש ב-nodetool זמין במאמר מידע על כלי השירות nodetool.

משאב Cassandra

מעקב אחרי Cassandra

מעקב אחרי Apache Qpid Broker-J

אתם יכולים לעקוב אחרי Qpid Broker-J ממסוף הניהול של Qpid. בקטע הזה מוסבר איך לגשת למסוף ולהשתמש בו כדי לבצע פעולות מעקב בסיסיות. מידע מפורט יותר על השימוש במסוף הניהול זמין במאמר מסוף הניהול באינטרנט במסמכי התיעוד של Apache Qpid.

גישה למסוף הניהול

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

http://QPID_NODE_IP:8090

כדי להתחבר למסוף, משתמשים בפרטי הכניסה שמוגדרים כברירת מחדל על ידי Apigee או בפרטי הכניסה שמוגדרים בקובץ התצורה של Edge. לפרטים, ראו הפניה לקובץ תצורה של Edge.

מעקב אחרי תורים והודעות

בחלונית הניווט שמימין, עוברים אל Java-Broker > virtualhosts > queues. בוחרים תור כדי להציג את הפרטים שלו בחלק הראשי של ממשק המשתמש. בתצוגת הפרטים אפשר לראות את המאפיינים והנתונים הסטטיסטיים של התור, כולל מידע על הודעות שנשלחו, הודעות שהתווספו לתור, שיעורי ההודעות וכו'.

הצגה והורדה של קובצי יומן

בחלונית הניווט הימנית, עוברים אל Java-Broker > brokerloggers > logfile. בצד שמאל של ממשק המשתמש הראשי, בתצוגת הפרטים, אפשר לראות את פרטי קובץ היומן ולהוריד את קובצי היומן.

שימוש ב-Qpid Management API

אתם יכולים להשתמש ב-Apache Qpid Broker-J API בארכיטקטורת REST כדי להפוך משימות ניהול לאוטומטיות ולעקוב אחרי הברוקר. פרטים נוספים מופיעים ב מאמרי העזרה של Apache Qpid Broker REST API.

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

curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"

הפעלת מעקב באמצעות SSL ל-Qpid

כדי לספק אבטחה נוספת למעקב ולניהול, צריך להפעיל SSL בפורטל הניהול של Qpid ובממשקי ה-Management API לניהול של Qpid. כדי לספק מפתח ואישור, צריך לפעול לפי ההנחיות הבאות.

ב-Qpid יש אפשרות ל-File Keystore, שמופעל ב-Apigee. הסוג הזה מקבל את הפורמט הרגיל של מאגר מפתחות JKS, שמוכר ל-Java ולכלים של Java כמו keytool. הוא יכול לקבל גם מאגר מפתחות PKCS12, שאפשר ליצור באמצעות כלים כמו OpenSSL.

הכנת מאגר המפתחות

כדי ליצור מאגרי מפתחות, אפשר לעיין במסמכי התיעוד של Java Keytool.

מידע על יצירת מאגרי מפתחות PKCS12 מופיע במסמכי התיעוד של OpenSSL.

אחרי שמוודאים שהדרישות מתקיימות

  1. מציבים את קובץ מאגר המפתחות ב-/opt/apigee/customer/application/apigee-qpidd.
  2. מוודאים שרק משתמש Apigee יכול לקרוא את קובץ מאגר המפתחות:
    chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd.keystore

הפעלת SSL ב-Qpid

מבצעים את השלבים הבאים בכל צומת Qpid בנפרד:

פותחים את הקובץ /opt/apigee/customer/application/qpidd.properties ומוסיפים את השורות הבאות:

conf_qpidd_qpid_management.https.enabled=true
conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/qpidd.keystore
conf_qpidd_qpid.keystore.password=keystore-password
conf_qpidd_qpid.keystore.certificateAlias=certificate-alias
## If you are using a PKCS12 keystore, specify the keystore type
conf_qpidd_qpid.keystore.keyStoreType=PKCS12
  1. משנים את הבעלים של הקובץ ל-apigee:apigee:
    chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
  2. הגדרת Qpidd:
    apigee-service apigee-qpidd configure
  3. מפעילים מחדש את Qpidd:
    apigee-service apigee-qpidd restart
  4. בודקים את הסטטוס באמצעות wait_for_ready:
    apigee-service apigee-qpidd wait_for_ready

חזרה להגדרות ה-SSL הקודמות

מסירים את המאפיינים מהקובץ /opt/apigee/customer/application/qpidd.properties או מסמנים אותם כהערה:

conf_qpidd_qpid_management.https.enabled=true
conf_qpidd_qpid.keystore.storeUrl=/opt/apigee/customer/application/apigee-qpidd/keystore
  1. מגדירים את Qpidd:
    apigee-service apigee-qpidd configure
  2. מפעילים מחדש את Qpidd:
    apigee-service apigee-qpidd restart
  3. בודקים את הסטטוס באמצעות wait_for_ready:
    apigee-service apigee-qpidd wait_for_ready

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

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

למידע נוסף על פקודות ZooKeeper, ראו: חומר עזר בנושא פקודות Apache ZooKeeper.

לדוגמה:

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

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

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

    החזרות:

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

    החזרות:

    Zookeeper version: 3.8.5-19f1842d4b6ee1f82cc8b05284959b26c6ae507d, built on 2025-09-18 17:23 UTC
    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
  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

בדיקה ברמת LDAP

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

  1. משתמשים ב-ldapsearch (yum install symasldap-clients) כדי לשלוח שאילתה לגבי הרשומה של אדמין המערכת. הרשומה הזו משמשת לאימות של כל הקריאות ל-API.
    /opt/symas/bin/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"
    }

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