במסמך הזה מתוארות שיטות המעקב אחר רכיבים שנתמכים בפריסה מקומית של Apigee Edge לענן פרטי.
סקירה כללית
Edge תומך בכמה דרכים לקבלת פרטים על שירותים, וכן לבדיקת הסטטוס שלהם. בטבלה הבאה מפורטים סוגי הבדיקות שאפשר לבצע לכל שירות שעומד בדרישות:
Mgmt API | |||||||
רכיב | שימוש בזיכרון [JMX*] | בדיקת שירות | סטטוס משתמש/ארגון/ פריסה | axstatus | בדיקה של מסדי נתונים | סטטוס של apigee-service |
apigee-monit ** |
שרת ניהול | |||||||
מעבד בקשות | |||||||
נתב | |||||||
Qpid | |||||||
Postgres | |||||||
מידע נוסף | מידע נוסף | מידע נוסף | מידע נוסף | מידע נוסף | מידע נוסף | מידע נוסף | |
* לפני שמשתמשים ב-JMX, צריך להפעיל אותו, כמו שמתואר במאמר הפעלת JMX. ** השירות |
מעקב אחר יציאות וקובצי תצורה
כל רכיב תומך בהפעלות של תוספי ניהול ב-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 למטרות אבטחה.
- עורכים את קובץ התצורה המתאים (ראו
מידע על קובץ התצורה). אם הוא לא קיים, יוצרים את קובץ התצורה.
conf_system_jmxremote_enable=true
- צריך לשמור את קובץ התצורה ולוודא שהוא בבעלות של
apigee:apigee
. - מפעילים מחדש את הרכיב המתאים של Edge
apigee-service edge-management-server restart
כדי להשבית את JMX, צריך להסיר את המאפיין conf_system_jmxremote_enable
או לשנות
את הערך שלו ל-false
. לאחר מכן מפעילים מחדש את רכיב Edge המתאים.
אימות ב-JMX
ב-Edge for Private Cloud יש תמיכה באימות מבוסס סיסמה באמצעות פרטים ששמורים בקבצים. אתם יכולים לאחסן סיסמאות כ-Hash כדי להגביר את האבטחה.
- כדי להפעיל אימות 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
. - יוצרים גיבוב SHA256 של הסיסמה:
echo -n '
' | openssl dgst -sha256 - יוצרים קובץ
jmxremote.password
עם פרטי הכניסה של משתמש JMX:- מעתיקים את הקבצים הבאים מהספרייה
$JAVA_HOME
לספרייה/opt/apigee/customer/application/<component>/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- עורכים את הקובץ ומוסיפים את שם המשתמש והסיסמה של JMX באמצעות התחביר הבא:
USERNAME <HASH-PASSWORD>
- מוודאים שהקובץ בבעלות
apigee
ושמצב הקובץ הוא 400:chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.password
- מעתיקים את הקבצים הבאים מהספרייה
- יוצרים קובץ
jmxremote.access
עם הרשאות משתמש ב-JMX:- מעתיקים את הקבצים הבאים מהספרייה $JAVA_HOME לתיקייה
/opt/apigee/customer/application/<component>/
cp ${JAVA_HOME}/lib/management/jmxremote.access$APIGEE_ROOT/customer/application/management-server/jmxremote.password/jmxremote.access
- עורכים את הקובץ ומוסיפים את שם המשתמש שלכם ב-JMX ואחריו הרשאה (READONLY/READWRITE)
USERNAME READONLY
- מוודאים שהקובץ נמצא בבעלות
apigee
ושמצב הקובץ הוא 400:chown apigee:apigee $APIGEE_ROOT/customer/application/management-server/jmxremote.password chmod 400 $APIGEE_ROOT/customer/application/management-server/jmxremote.access
- מעתיקים את הקבצים הבאים מהספרייה $JAVA_HOME לתיקייה
- מפעילים מחדש את רכיב Edge המתאים:
apigee-service edge-management-server restart
כדי להשבית את אימות ה-JMX, מסירים את המאפיין conf_system_jmxremote_authenticate
או משנים את הערך ל-false
ומפעילים מחדש את רכיב Edge המתאים.
SSL ב-JMX
כדי להפעיל JMX מבוסס SSL ברכיב קצה-* :
- עורכים את קובץ התצורה המתאים (ראו
חומר עזר בנושא קובץ תצורה). יוצרים את קובץ התצורה אם הוא לא קיים:
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
. - מכינים מאגר מפתחות שמכיל את מפתח השרת וממקמים אותו בנתיב שצוין בהגדרה
conf_system_javax_net_ssl_keystore
שלמעלה. מוודאים שapigee:apigee
יכול לקרוא את קובץ מאגר המפתחות. - מפעילים מחדש את רכיב 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 |
|
שימוש |
|
קובץ עזר בנושא קובץ תצורה
בקטעים הבאים מתוארים השינויים שצריך לבצע בקובצי התצורה של רכיבי 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=
- יציאת RMI של JMX. כברירת מחדל, תהליך 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 |
הפונקציה מחזירה מידע על השירות, כולל:
הקריאה הזו ל-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"
בדוגמה הבאה מוצגת קבלת מידע על Message Processor בכתובת 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:passwordcurl 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 במעבד ההודעות.
הקריאה הזו מחייבת אימות באמצעות שם המשתמש והסיסמה של ניהול המערכת.
השרת אמור להחזיר את הסטטוס 'פרוס' לכל הקריאות. אם הפעולות האלה נכשלות, מבצעים את הפעולות הבאות:
- כדאי לבדוק אם יש שגיאות ביומני השרת. היומנים נמצאים בכתובת:
- שרת ניהול:
opt/apigee/var/log/edge-management-server
- מעבד הודעות:
opt/apigee/var/log/edge-message-processor
- שרת ניהול:
- לבצע קריאה אל השרת כדי לבדוק אם הוא פועל כראוי.
- מסירים את השרת מ-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
:
- מתחברים לשרת ומריצים את הפקודה הבאה:
/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
- שרת ניהול:
- אם השירות לא פועל, מפעילים אותו:
/opt/apigee/apigee-service/bin/apigee-service service_name start
- אחרי שמפעילים מחדש את השירות, בודקים שהוא פועל באמצעות הפקודה
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
המערכת אמורה להציג סטטוס הצלחה לכל שרתי Analytics, כפי שמוצג בדוגמה הבאה:
{ "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.
לפני שמריצים את הסקריפט:
- צריך להתקין את הסקריפט check_postgres.pl בכל צומת של Postgres.
- מוודאים ש-
perl-Time-HiRes.x86_64
מותקן. זהו מודול Perl שמטמיע שעונים מסוג 'התראה ברזולוציה גבוהה', 'שינה', gettimeofday ו-interval. לדוגמה, אפשר להתקין אותו באמצעות הפקודה הבאה:
yum install perl-Time-HiRes.x86_64
- CentOS 7: לפני שמשתמשים ב-check_postgres.pl ב-CentOS v7, צריך להתקין את ה-RPM
perl-Data-Dumper.x86_64
.
פלט של check_postgres.pl
פלט ברירת המחדל של הקריאות ל-API באמצעות check_postgres.pl
תואם ל-Nagios. אחרי שמתקינים את הסקריפט, מבצעים את הבדיקות הבאות:
- בודקים את הגודל של מסד הנתונים:
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'
- בודקים את מספר החיבורים הנכנסים למסד הנתונים ומשווים אותם למספר המקסימלי של חיבורים שמותר:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action backends
- בודקים אם מסד הנתונים פועל וזמין:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action connection
- בודקים את נפח האחסון:
check_postgres.pl -H 10.176.218.202 -db apigee -u apigee -dbpass postgres -action disk_space --warning='80%' --critical='90%'
- בודקים את מספר הארגונים והסביבות שצורפו בצומת 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:
- http://www.postgresql.org/docs/9.0/static/monitoring.html
- http://www.postgresql.org/docs/9.0/static/diskusage.html
- http://bucardo.org/check_postgres/check_postgres.pl.html
אפאצ'י קסנדרה
JMX מופעל כברירת מחדל ב-Cassandra, ולא נדרשת סיסמה כדי לגשת ל-JMX מרחוק ב-Cassandra.
הפעלת אימות JMX ל-Cassandra
אפשר להפעיל אימות JMX עבור Cassandra. לאחר מכן תצטרכו להעביר שם משתמש וסיסמה לכל הקריאות לכלי nodetool.
כדי להפעיל אימות JMX ב-Cassandra:
- יוצרים ועורכים את הקובץ
cassandra.properties
:- עורכים את הקובץ
/opt/apigee/customer/application/cassandra.properties
. אם הקובץ לא קיים, יוצרים אותו. - מוסיפים את הפרטים הבאים לקובץ:
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
- שומרים את קובץ ה-
cassandra.properties
. - משנים את הבעלים של הקובץ ל-
apigee:apigee
, כפי שמתואר בדוגמה הבאה:chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
למידע נוסף על שימוש בקובצי מאפיינים להגדרת אסימונים, ראו איך מגדירים את Edge.
- עורכים את הקובץ
- ליצור ולערוך את
jmx_auth.sh
:- יוצרים קובץ במיקום הבא, אם הוא לא קיים:
/opt/apigee/customer/application/jmx_auth.sh
- מוסיפים לקובץ את המאפיינים הבאים:
export CASS_JMX_USERNAME=JMX_USERNAME export CASS_JMX_PASSWORD=JMX_PASSWORD
- שומרים את קובץ ה-
jmx_auth.sh
. - מקור הקובץ:
source /opt/apigee/customer/application/jmx_auth.sh
- יוצרים קובץ במיקום הבא, אם הוא לא קיים:
- מעתיקים את הקובץ
jmxremote.password
ועורכים אותו:- מעתיקים את הקובץ הבא מהספרייה
$JAVA_HOME
אל/opt/apigee/customer/application/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.password.template $APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
- עורכים את הקובץ
jmxremote.password
ומוסיפים את שם המשתמש והסיסמה של JMX באמצעות התחביר הבא:JMX_USERNAME JMX_PASSWORD
כאשר JMX_USERNAME ו-JMX_PASSWORD הם שם המשתמש והסיסמה של JMX שהגדרתם קודם.
- מוודאים שהקובץ בבעלות apigee ושמצב הקובץ הוא 400:
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.password
- מעתיקים את הקובץ הבא מהספרייה
- מעתיקים את הקובץ
jmxremote.access
ועורכים אותו:- מעתיקים את הקובץ הבא מהספרייה
$JAVA_HOME
אל/opt/apigee/customer/application/apigee-cassandra/
:cp ${JAVA_HOME}/lib/management/jmxremote.access
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.access
- עורכים את הקובץ
jmxremote.access
ומוסיפים את התפקיד הבא:JMX_USERNAME readwrite
- מוודאים שהקובץ בבעלות apigee ושמצב הקובץ הוא 400:
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
chmod 400 /opt/apigee/customer/application/apigee-cassandra/jmxremote.access
- מעתיקים את הקובץ הבא מהספרייה
- מריצים את
configure
ב-Cassandra:/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- מפעילים מחדש את Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- חוזרים על התהליך בכל צמתים אחרים של Cassandra.
הפעלת הצפנה של סיסמאות JMX
כדי להפעיל את ההצפנה של סיסמה ב-JMX:
- פותחים את הקובץ
source/conf/casssandra-env.sh
. - יוצרים ועורכים את הקובץ
cassandra.properties
:- עורכים את הקובץ
/opt/apigee/customer/application/cassandra.properties
. אם הקובץ לא קיים, יוצרים אותו. - מוסיפים את הטקסט הבא לקובץ:
conf_cassandra_env_com.sun.management.jmxremote.encrypted.authenticate=true
- שומרים את הקובץ cassandra.properties.
- משנים את הבעלים של הקובץ ל-apigee:apigee, כפי שמוצג בדוגמה הבאה:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- עורכים את הקובץ
- בשורת הפקודה, יוצרים גיבובי SHA1 של הסיסמאות הרצויות על ידי הזנת הפקודה
echo -n 'Secret' | openssl dgst -sha1
. - מגדירים את הסיסמאות מול שם המשתמש ב-
$APIGEE_ROOT/customer/application/apigee-cassandra/jmxremote.password
(נוצרה בקטע הקודם). - מריצים את configure ב-Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- מפעילים מחדש את Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- חוזרים על התהליך הזה בכל הצמתים האחרים של Cassandra.
הפעלת JMX עם SSL ל-Cassandra
הפעלת JMX עם SSL מספקת אבטחה והצפנה נוספות לתקשורת מבוססת-JMX עם Cassandra. כדי להפעיל JMX עם SSL, צריך לספק ל-Cassandra מפתח ואישור לקבל חיבורי JMX מבוססי SSL. צריך גם להגדיר את nodetool (וכלים אחרים שמתקשרים עם Cassandra דרך JMX) ל-SSL.
JMX תואם SSL תומך גם בטקסט ללא הצפנה וגם בסיסמאות JMX מוצפנות.
כדי להפעיל את JMX עם SSL ב-Cassandra, פועלים לפי השלבים הבאים:
- מפעילים JMX. אם צריך, מפעילים את הצפנת הסיסמה.
- מפעילים אימות JMX ל-Cassandra.
כפי שמתואר למעלה. מוודאים ש-nodetool פועל עם שם המשתמש והסיסמה שהוגדרו.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
הכנת מאגר המפתחות ומאגר האמון.
מאגר המפתחות צריך להכיל מפתח ואישור, והוא משמש להגדרת שרת Cassandra. אם מאגר המפתחות מכיל כמה זוגות מפתחות, Cassandra משתמשת בזוג המפתחות הראשון כדי להפעיל את SSL.
שימו לב שצריך להשתמש באותה סיסמה למאגר המפתחות ולמפתח (ברירת המחדל כשיוצרים את המפתח באמצעות keytool).
- Truststore צריך להכיל את האישור בלבד, ומשמש את הלקוחות (פקודות מבוססות-apigee-service אוNodetool) כדי להתחבר דרך JMX.
אחרי שתבדקו את הדרישות שלמעלה:
- מעבירים את קובץ מאגר המפתחות אל
/opt/apigee/customer/application/apigee-cassandra/
. - מוודאים שמשתמש Apigee יכול לקרוא את קובץ מאגר המפתחות רק על ידי הזנת
chown apigee:apigee /opt/apigee/customer/application/apigee-cassandra/keystore.node1
chmod 400 /opt/apigee/customer/application/apigee-cassandra/keystore.node1
- כדי להגדיר את Cassandra ל-JMX עם SSL:
- כדי להפסיק את צומת Cassandra, מזינים את הפקודה
apigee-service apigee-cassandra stop
- כדי להפעיל את 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 ## On FIPS enabled systems, when you are using non standard keystore, set the following: ## These can be skipped otherwise ## Possible values are JKS, PKCS12, BCFKS conf_cassandra_env_javax.net.ssl.keyStoreType=PKCS12 conf_cassandra_env_javax.net.ssl.keyStoreAlias=cassjmx-tls-alias
- משנים את הבעלים של הקובץ ל-apigee:apigee, כפי שמוצג בדוגמה הבאה:
chown apigee:apigee /opt/apigee/customer/application/cassandra.properties
- מריצים את configure ב-Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- מפעילים מחדש את Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- חוזרים על התהליך בכל צמתים אחרים של Cassandra.
- מפעילים את צומת Cassandra באמצעות הקלדה של
apigee-service apigee-cassandra start
- כדי להפסיק את צומת Cassandra, מזינים את הפקודה
- מגדירים את הפקודות של
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 שמאוחסנים בקובץ)
- אפשרות 2 (ארגומנטים של SSL שמאוחסנים במשתני סביבה)
- אפשרות 3 (ארגומנטים של SSL מועברים ישירות אל
apigee-service
)
אפשרות 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=
-Djavax.net.ssl.trustStorePassword= -Dcom.sun.management.jmxremote.registry.ssl=true ## If you are using a non standard truststore, set below, otherwise skip ## Possible values are JKS, PKCS12, BCFKS -Djavax.net.ssl.trustStoreType=PKCS12 מוודאים שמשתמש 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=
export CASS_JMX_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=
CASS_JMX_TRUSTSTORE_PASSWORD= CASS_JMX_TRUSTSTORE_TYPE=PKCS12 /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra ring הגדרת כלי הצומת. כדי להשתמש ב-Nodetool, צריך להעביר אליו פרמטרים של JMX. יש שתי דרכים להגדיר את nodetool כך שיפעל עם JMX עם תמיכה ב-SSL, כפי שמתואר באפשרויות ההגדרה הבאות:
ההבדל בין האפשרויות הוא באופן שבו ההגדרות שקשורות ל-SSL מועברות אל nodetool. בשני המקרים, למשתמש שמפעיל את nodetool צריכות להיות הרשאות קריאה בקובץ truststore. בוחרים אפשרות מתאימה על סמך נוחות השימוש ושיטות האבטחה שלכם.
מידע נוסף על הפרמטרים של nodetool זמין ב מסמכי התיעוד של DataStax.
אפשרות הגדרה 1
יצירת קובץ בספריית הבית של ה-Nodetool של המשתמש שמריץ.
$HOME/.cassandra/nodetool-ssl.properties
מוסיפים את השורות הבאות לקובץ:
-Djavax.net.ssl.trustStore=
-Djavax.net.ssl.trustStorePassword= -Dcom.sun.management.jmxremote.registry.ssl=true ## If you are using a non standard truststore, set below, otherwise skip ## Possible values are JKS, PKCS12, BCFKS -Djavax.net.ssl.trustStoreType=PKCS12 הנתיב של מאגר ה-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=
-Djavax.net.ssl.trustStorePassword= -Dcom.sun.management.jmxremote.registry.ssl=true -Djavax.net.ssl.trustStoreType=PKCS12 -Dssl.enable=true -u -pw -h localhost ring
החזרה של הגדרות ה-SSL לגרסה הקודמת
אם צריך לשנות את הגדרות ה-SSL שמתוארות בתהליך שלמעלה, מבצעים את הפעולות הבאות:
- כדי להפסיק את
apigee-cassandra
, מזינים את הערךapigee-service apigee-cassandra stop
- מסירים את השורה
conf_cassandra-env_com.sun.management.jmxremote.ssl=true
מהקובץ/opt/apigee/customer/application/cassandra.properties
. - הוספת הערה לשורות הבאות ב-
/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”
- כדי להפעיל את
apigee-cassandra
, מזינים - מסירים את משתנה הסביבה
CASS_JMX_SSL
, אם הוא מוגדר.unset CASS_JMX_SSL
- בודקים אם פקודות שמבוססות על
apigee-service
, כמוring
, stop
, backup
וכו', פועלות. - הפסקת השימוש במתג
--ssl
עם nodetool
apigee-service apigee-cassandra start
השבתת אימות JMX ל-Cassandra
כדי להשבית את אימות ה-JMX ב-Cassandra:
- עריכה של
/opt/apigee/customer/application/cassandra.properties
. - מסירים את השורה הבאה מהקובץ:
conf_cassandra-env_com.sun.management.jmxremote.authenticate=true
- מריצים את configure ב-Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra configure
- מפעילים מחדש את Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
- חוזרים על התהליך בכל צמתים אחרים של Cassandra.
שימוש ב-JConsole: מעקב אחר נתונים סטטיסטיים של משימות
משתמשים ב-JConsole ובכתובת ה-URL של השירות הבאה כדי לעקוב אחרי מאפייני ה-JMX (MBeans) שמוצעים דרך JMX:
service:jmx:rmi:///jndi/rmi://IP_address:7199/jmxrmi
כאשר IP_address הוא כתובת ה-IP של שרת Cassandra.
נתונים סטטיסטיים של JMX ב-Cassandra
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:
- מידע כללי על הטבעת (אפשר גם לבדוק צומת יחיד של Cassandra): מחפשים את הערכים 'פעיל' ו'תקין' לכל הצמתים.
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
- מידע כללי על צמתים (קריאה לכל צומת)
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
- סטטוס שרת ה-thrift (הצגת API של לקוח)
nodetool [-u username -pw password] -h localhost statusthrift
הפלט של הפקודה שלמעלה נראה כך:
running
- סטטוס של פעולות סטרימינג של נתונים: מעקב אחר התנועה בצמתים של 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
אפשר לעיין בכתובת ה-URL הבאה: http://www.datastax.com/docs/1.0/operations/monitoring.
מעקב אחרי 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 REST API כדי להפוך משימות ניהול לאוטומטיות ולעקוב אחרי הברוקר. פרטים נוספים זמינים ב מסמכי התיעוד של 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, כמו keytool, מבינים.
הכנת מאגר המפתחות
בנוסף לשימוש ב-keytool, צריך לספק את קובץ האישור ישירות לשימוש של לקוחות Qpidd.
מידע נוסף על יצירת מאגרי מפתחות זמין במסמכי התיעוד של Java Keytool.
אחרי אימות הדרישות
- מעבירים את קובצי מאגר המפתחות ואת קובצי האישורים לתיקייה
/opt/apigee/customer/application/apigee-qpidd
. - מוודאים שרק למשתמש 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
- משנים את הבעלים של הקובץ ל-apigee:apigee:
chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
- הגדרת Qpidd:
apigee-service apigee-qpidd configure
- הפעלה מחדש של Qpidd:
apigee-service apigee-qpidd restart
- בודקים את הסטטוס בעזרת pending_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
- הגדרת Qpidd:
apigee-service apigee-qpidd configure
- מפעילים מחדש את Qpidd:
apigee-service apigee-qpidd restart
- בודקים את הסטטוס באמצעות wait_for_ready:
apigee-service apigee-qpidd wait_for_ready
Apache ZooKeeper
בדיקת הסטטוס של גן החיות
- מוודאים שתהליך ZooKeeper פועל. ZooKeeper כותב קובץ PID אל
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
. - צריך לבדוק את היציאות שלzoKeeper כדי לוודא שאפשר ליצור חיבור TCP ליציאות 2181 ו-3888 בכל שרת של ZoKeeper.
- מוודאים שאפשר לקרוא ערכים ממסד הנתונים של ZooKeeper. מתחברים באמצעות ספריית לקוח של ZooKeeper (או
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
) וקוראים ערך מהמסד נתונים. - בודקים את הסטטוס:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
שימוש במילים של ארבע אותיות ב-ZooKeeper
אפשר לנטר אתzoKeeper באמצעות קבוצה קטנה של פקודות (מילים בארבע אותיות) שנשלחות ליציאה 2181 באמצעות netcat (nc) או telnet.
מידע נוסף על פקודות ZoKeeper זמין במאמר קובץ עזר של פקודת ApachezoKeeper.
לדוגמה:
srvr
: מציין את הפרטים המלאים של השרת.stat
: פרטים קצרים על השרת ועל הלקוחות המחוברים.
אפשר להריץ את הפקודות הבאות ביציאה של ZooKeeper:
- מריצים את הפקודה ruok בת ארבע האותיות כדי לבדוק אם השרת פועל במצב ללא שגיאות. בתגובה מוצלחת מופיעה המילה "imok".
echo ruok | nc host 2181
החזרות:
imok
- מריצים את הפקודה
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
- אם 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 כדי לראות אם הבקשות הספציפיות מוצגות כראוי. במילים אחרות, צריך לבדוק אם חיפוש ספציפי מחזיר את התוצאה הנכונה.
- משתמשים ב-
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
- בודקים אם שרת הניהול עדיין מחובר ל-LDAP באמצעות הפקודה הבאה:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
החזרות:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
אפשר גם לעקוב אחרי המטמון של OpenLDAP, שעוזר לצמצם את מספר הגישה לדיסק וכך לשפר את הביצועים של המערכת. מעקב אחרי גודל המטמון בשרת OpenLDAP ואז שינוי שלו יכול להשפיע מאוד על הביצועים של שרת הספרייה. אפשר להציג את קובצי היומן (opt/apigee/var/log
) כדי לקבל מידע על המטמון.