איך לעקוב

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

סקירה

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

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

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

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

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

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

רכיב יציאת JMX יציאת ממשק ה-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 ברכיב קצה*, עורכים את קובץ התצורה המתאים (ראו הסבר על קובץ התצורה). יוצרים את קובץ התצורה אם הוא לא קיים:
    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.password/jmxremote.access
    2. עורכים את הקובץ ומוסיפים את שם המשתמש שלכם ב-JMX ואחריו הרשאה (READONLY/READWRITE)
      USERNAME READONLY
    3. מוודאים שהקובץ נמצא בבעלות apigee ושמצב הקובץ הוא 400:
      chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password
      
      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 ברכיב קצה-* :

  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 יהיו זהות לאלו שמפורטות בכתובת https://docs.apigee.com/private-cloud/v4.52.01/how-monitor#jconsole.

ניתן להוסיף שורה אחת כך: "צריך להפעיל את jconsole עם סיסמת truststore ו-Truststore אם SSL מופעל עבור JMX". מידע נוסף: https://docs.oracle.com/javase/8/docs/technotes/guides/management/jconsole.html

מעקב עם 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

Usage

מסמך עזר של קובץ התצורה

בקטעים הבאים מתוארים השינויים שצריך לבצע בקובצי התצורה של רכיבי 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
  • סיסמת מאגר המפתחות:
    conf_system_javax_net_ssl_keystorepassword=changeme

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

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

  • יציאת JMX. ערכי ברירת המחדל מפורטים בטבלה שבהמשך.
    conf_system_jmxremote_port=
  • יציאת JMX RMI. כברירת מחדל, תהליך Java יבחר יציאה אקראית.
    conf_system_jmxremote_rmi_port=
  • שם המארח של ה-stubs המרוחקים. כתובת ה-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 לא מחייבת ביצוע אימות.

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

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

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

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

מחזירה מידע על השירות, כולל:

  • מאפייני ההגדרות האישיות
  • שעת ההתחלה ושעת הפעולה
  • מידע על build, RPM ו-UUID
  • שם מארח וכתובת IP פנימיים וחיצוניים
  • אזור וקבוצה
  • מאפיין <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
    • הודעות אימייל שנשלחו: 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 היא יציאת ה-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 לא פועל, הוא מחזיר את הסטטוס INACTIVE.

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

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

אפאצ'י קסנדרה

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. מריצים את ההגדרה ב-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 עם קסנדרה. כדי להפעיל JMX עם SSL, עליכם לספק ל-Cassandra מפתח ואישור לקבל חיבורי JMX מבוססי SSL. כמו כן, צריך להגדיר את כלי הצומת (וכל כלי אחר שמתקשר עם 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. הכנה של Keystore ו-Truststore.

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

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

    • 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. מריצים את ההגדרה ב-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

    חשוב לוודא שמשתמש Apigee יכול לקרוא את הקובץ ה-Trustore.

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

    מריצים את הפקודה הבאה של 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> /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring
  6. מגדירים אתNodetool. כדי להשתמש ב-Nodetool, צריך להעביר פרמטרים של JMX אליו. יש שתי דרכים להגדיר אתNodetool לרוץ עם JMX תומך ב-SSL, כפי שמתואר באפשרויות התצורה הבאות:

    האפשרויות שונות באופן שבו תצורות הקשורות ל-SSL מועברות ל-Nodetool. בשני המקרים, למשתמש שרץ ב-Nodetool צריכות להיות הרשאות READ בקובץ ה-Truststore. בחרו אפשרות מתאימה בהתאם לנוחות השימוש ולנוהלי האבטחה שלכם.

    מידע נוסף על הפרמטרים שלNodetool זמין ב מאמרי העזרה של DataStax.

    אפשרות 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

    הנתיב של מאגר ה-Truststore שצוין למעלה צריך להיות נגיש לכל משתמש שמשתמש ב-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 -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. מריצים את ההגדרה ב-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_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 (למעלה) ו-Standard (רגיל) לכל הצמתים.
    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 server) (שרת ה-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.

משאב קסנדרה

בודקים את כתובת ה-URL הבאה: http://www.datastax.com/docs/1.0/operations/monitoring.

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

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

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

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

http://QPID_NODE_IP:8090

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

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

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

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

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

שימוש ב-Qpid management API

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

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

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

הפעלת מעקב עם SSL ל-Qpid

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

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

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

עליכם לספק את קובץ האישור ישירות לשימוש של לקוחות של Qpidd, בנוסף לשימוש ב-keytool.

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

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

  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
        
      chown apigee:apigee /opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem
      chmod 400 /opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem

הפעלת 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
  conf_qpidd_qpid.keystore.certificate=/opt/apigee/customer/application/apigee-qpidd/qpidd-cert.pem
  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

שומר בגן החיות אפאצ'י

בדיקת הסטטוס של גן החיות

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

שימוש במילים בנות ארבע אותיות ב-ZooKeeper

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

מידע נוסף על פקודות ZoKeeper זמין במאמר קובץ עזר של פקודת ApachezoKeeper.

למשל:

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

ניתן להנפיק את הפקודות הבאות ליציאת ZoomKeeper:

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

ניתן לעקוב אחר 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) כדי לקבל מידע על המטמון.