במאמר הזה מתוארות טכניקות המעקב של רכיבים שנתמכים על ידי פריסה מקומית של Apigee Edge לענן פרטי.
סקירה כללית
ב-Edge יש כמה דרכים לקבל פרטים על שירותים ולבדוק את הסטטוסים שלהם. בטבלה הבאה מפורטים סוגי הבדיקות שאפשר לבצע בכל שירות שעומד בדרישות:
Mgmt API | |||||||
רכיב | שימוש בזיכרון [JMX*] | בדיקת שירות | סטטוס המשתמש/הארגון/ הפריסה | axstatus | בדיקת מסד נתונים | apigee-service סטטוס |
apigee-monit ** |
שרת ניהול | |||||||
מעבד בקשות | |||||||
נתב | |||||||
Qpid | |||||||
Postgres | |||||||
מידע נוסף | מידע נוסף | מידע נוסף | מידע נוסף | מידע נוסף | מידע נוסף | מידע נוסף | |
* כדי להשתמש ב-JMX, צריך להפעיל אותו כמו שמתואר במאמר הפעלת JMX. ** שירות |
מעקב אחרי יציאות וקבצי הגדרה
כל רכיב תומך ב-Java Management Extensions (JMX) ובקריאות לניטור של 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 לצורך אבטחה.
- עורכים את קובץ התצורה המתאים (ראו
הפניה לקובץ התצורה). יוצרים את קובץ ההגדרות אם הוא לא קיים.
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 ברכיב edge-* :
- עורכים את קובץ התצורה המתאים (ראו
הפניה לקובץ התצורה). יוצרים את קובץ התצורה אם הוא לא קיים:
שומרים את קובץ ההגדרות ומוודאים שהבעלים שלו הוא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 ברכיב Edge. ברירת המחדל היא 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=
- שם המארח של קובצי stub מרחוק. כתובת ה-IP שמשמשת כברירת מחדל של המארח המקומי.
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 |
מחזירה מידע על השירות, כולל:
כדי לבצע את קריאת ה-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 כדי לעקוב אחרי הסטטוס של המשתמשים, הארגון והפריסה של ה-proxies בשרתי הניהול ובמעבדי ההודעות, באמצעות הפקודות הבאות:
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 עבור מעבד ההודעות.
כדי להשתמש בשיחה הזו, צריך לבצע אימות באמצעות שם המשתמש והסיסמה שלכם לניהול המערכת.
השרת צריך להחזיר את הסטטוס 'deployed' (פריסה) לכל הקריאות. אם הפעולות האלה לא עוזרות, צריך לבצע את הפעולות הבאות:
- בודקים אם יש שגיאות ביומני השרת. היומנים נמצאים במיקום הבא:
- שרת ניהול:
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
- Postgres:
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 הוא היציאה של Management API בשירות.
בדוגמה הזו מניחים שאתם מחוברים לשרת ויכולים להשתמש ב-localhost כשם המארח. כדי לבדוק את הסטטוס מרחוק באמצעות Management API, צריך לציין את כתובת ה-IP של השרת ולכלול את שם המשתמש והסיסמה של אדמין המערכת בקריאה ל-API.
מעקב אחר Postgres
Postgres תומך בכמה כלי עזר שאפשר להשתמש בהם כדי לבדוק את הסטטוס שלו. הכלי הזה מתואר בקטעים הבאים.
בדיקת ארגונים וסביבות ב-Postgres
אפשר לבדוק את השמות של הארגון והסביבה שנוספו ל-Postgres Server באמצעות הפקודה 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.
לפני שמריצים את הסקריפט:
- צריך להתקין את הסקריפט check_postgres.pl בכל צומת של Postgres.
- מוודאים שהתקנתם את
perl-Time-HiRes.x86_64
, מודול Perl שמיישם אזעקה ברזולוציה גבוהה, שינה, gettimeofday וטיימרים של מרווחי זמן. לדוגמה, אפשר להתקין אותו באמצעות הפקודה הבאה:
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
Apache Cassandra
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 בטקסט פשוט.
כדי להפעיל JMX עם SSL עבור Cassandra, משתמשים בהליך הבא:
- הפעלת JMX. אם צריך, מפעילים הצפנת סיסמה.
- הפעלת אימות JMX ל-Cassandra.
כפי שמתואר למעלה. מוודאים שכלי nodetool פועל עם שם המשתמש והסיסמה שהוגדרו.
/opt/apigee/apigee-cassandra/bin/nodetool -u <JMX_USER> -pw <JMX_PASS> ring
הכנה של חנות מפתחות וחנות אישורים.
Keystore צריך להכיל מפתח ואישור, והוא משמש להגדרת שרת Cassandra. אם מאגר המפתחות מכיל כמה צמדי מפתחות, Cassandra משתמשת בצמד המפתחות הראשון כדי להפעיל SSL.
שימו לב שהסיסמאות למאגר המפתחות ולמפתח צריכות להיות זהות (ברירת המחדל כשיוצרים את המפתח באמצעות keytool).
- מאגר האישורים צריך להכיל רק את האישור, והלקוחות (פקודות שמבוססות על 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=<path-to-truststore.node1> -Djavax.net.ssl.trustStorePassword=<truststore-password> -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 יכול לקרוא את קובץ ה-truststore.
מריצים את הפקודה
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
מגדירים את nodetool. כדי להשתמש ב-Nodetool צריך להעביר אליו פרמטרים של JMX. יש שתי דרכים להגדיר את nodetool להפעלה עם JMX שמופעל באמצעות SSL, כפי שמתואר באפשרויות ההגדרה שבהמשך:
ההבדל בין האפשרויות הוא באופן שבו ההגדרות שקשורות ל-SSL מועברות אל nodetool. בשני המקרים, למשתמש שמריץ את nodetool צריכות להיות הרשאות קריאה בקובץ של מאגר האישורים. בוחרים באפשרות המתאימה בהתאם לשימושיות ולשיטות האבטחה שלכם.
מידע נוסף על פרמטרים של 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 ## If you are using a non standard truststore, set below, otherwise skip ## Possible values are JKS, PKCS12, BCFKS -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 שמתוארות בתהליך שלמעלה, אתם יכולים לבצע את השלבים הבאים:
- כדי להפסיק את
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.
נתוני 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:
- מידע כללי על הטבעת (אפשר גם עבור צומת יחיד של 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
- מידע כללי על צמתים (שיחה לכל צומת)
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 REST API.
אפשר גם להשתמש בכלים של שורת הפקודה כדי לעקוב אחרי הברוקר. לדוגמה:
curl "QPID_NODE_IP":"8090"/api/latest/broker -u "USERNAME":"PASSWORD"
הפעלת מעקב עם SSL עבור Qpid
כדי לספק אבטחה נוספת לניטור ולניהול, מפעילים SSL בפורטל הניהול של Qpid ובממשקי ה-API לניהול של Qpid. כדי לספק מפתח ואישור, צריך לפעול לפי ההנחיות הבאות.
Qpid מספק אפשרות ל-File Keystore, שמופעלת ב-Apigee. הסוג הזה מקבל את פורמט JKS keystore הרגיל שמובן על ידי Java וכלים של Java כמו keytool. הוא יכול גם לקבל מאגר מפתחות PKCS12, שאפשר ליצור באמצעות כלים כמו OpenSSL.
הכנה של מאגר מפתחות
מידע על יצירת מאגרי מפתחות זמין במאמרי העזרה של Java Keytool.
למידע על יצירת מאגרי מפתחות PKCS12, אפשר לעיין במסמכי OpenSSL.
אחרי שמאמתים את הדרישות
- מציבים את קובץ מאגר המפתחות ב-
/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
הפעלת 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
- משנים את הבעלים של הקובץ ל-apigee:apigee:
chown apigee:apigee /opt/apigee/customer/application/qpidd.properties
- מגדירים את Qpidd:
apigee-service apigee-qpidd configure
- מפעילים מחדש את Qpidd:
apigee-service apigee-qpidd restart
- בודקים את הסטטוס באמצעות 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
- מגדירים את 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 פועל. ZooKeeper כותב קובץ PID אל
opt/apigee/var/run/apigee-zookeeper/apigee-zookeeper.pid
. - בודקים את היציאות של ZooKeeper כדי לוודא שאפשר ליצור חיבור TCP ליציאות 2181 ו-3888 בכל שרת ZooKeeper.
- מוודאים שאפשר לקרוא ערכים ממסד הנתונים של ZooKeeper. מתחברים באמצעות ספריית לקוח של ZooKeeper (או
/opt/apigee/apigee-zookeeper/bin/zkCli.sh
) וקוראים ערך ממסד הנתונים. - בודקים את הסטטוס:
/opt/apigee/apigee-service/bin/apigee-service apigee-zookeeper status
שימוש במילים בנות ארבע אותיות ב-ZooKeeper
אפשר לנטר את ZooKeeper באמצעות קבוצה קטנה של פקודות (מילים בנות ארבע אותיות) שנשלחות ליציאה 2181 באמצעות netcat (nc) או telnet.
מידע נוסף על פקודות ZooKeeper זמין במאמר Apache ZooKeeper command reference.
לדוגמה:
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
אתם יכולים לעקוב אחרי SymasLDAP כדי לראות אם הבקשות הספציפיות מטופלות בצורה תקינה. במילים אחרות, צריך לבדוק אם חיפוש ספציפי מחזיר את התוצאה הנכונה.
- משתמשים ב-
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
- בודקים אם שרת הניהול עדיין מחובר ל-LDAP באמצעות הפקודה הבאה:
curl -u userEMail:password http://localhost:8080/v1/users/ADMIN
החזרות:
{ "emailId" : ADMIN, "firstName" : "admin", "lastName" : "admin" }
אפשר גם לעקוב אחרי מטמוני הנתונים של SymasLDAP, שעוזרים להפחית את מספר הגישות לדיסק, וכך לשפר את הביצועים של המערכת. מעקב אחרי גודל המטמון בשרת SymasLDAP וכוונון שלו יכולים להשפיע באופן משמעותי על הביצועים של שרת הספריות. אפשר להציג את קובצי היומן (opt/apigee/var/log
) כדי לקבל מידע על המטמון.