Edge for Private Cloud v4.18.01
דרישות חומרה
כדי להגדיר תשתית זמינה מאוד בסביבת ייצור, אתם צריכים לעמוד בדרישות המינימליות הבאות לחומרה. בטבלאות הבאות מפורטות דרישות החומרה המינימליות לרכיבי ההתקנה בכל תרחישי ההתקנה שמתוארים במאמר טופולוגיות התקנה.
בטבלאות האלה, הדרישות לגבי הדיסק הקשיח הן בנוסף למקום בדיסק הקשיח שנדרש למערכת ההפעלה. יכול להיות שההתקנה תדרוש יותר או פחות משאבים מהמפורט בהמשך, בהתאם לאפליקציות ולתנועת הרשת.
| רכיב ההתקנה | RAM | מעבד (CPU) | דיסק קשיח מינימלי |
|---|---|---|---|
| Cassandra | 16GB | 8 ליבות | נפח אחסון מקומי של 250GB עם SSD או HDD מהיר שתומך ב-2,000 IOPS |
| מעבד/נתב הודעות באותו מחשב | 16GB | 8 ליבות | 100GB |
| Analytics – Postgres/Qpid באותו שרת (לא מומלץ לשימוש בסביבת ייצור) | 16GB* | 8‑core* | נפח אחסון ברשת של 500GB עד 1TB*****, רצוי עם קצה עורפי של SSD, עם תמיכה ב-1,000 פעולות קלט/פלט בשנייה (IOPS) ומעלה* |
| Analytics – Postgres standalone | 16GB* | 8 ליבות* | נפח אחסון ברשת של 500GB עד 1TB*****, רצוי עם קצה עורפי של SSD, עם תמיכה ב-1,000 פעולות קלט/פלט בשנייה (IOPS) ומעלה* |
| Analytics – Qpid standalone | 8GB | 4 ליבות | 30GB עד 50GB של אחסון מקומי עם SSD או HDD מהיר
אם אתם מתקינים יותר מ-250 עסקאות לשנייה, מומלץ להשתמש בכונן HDD עם אחסון מקומי שתומך ב-1,000 פעולות קלט/פלט לשנייה. גודל התור שמוגדר כברירת מחדל ב-Qpid הוא 20GB. אם צריך להוסיף עוד קיבולת, מוסיפים עוד צמתי Qpid. |
| אחר (OpenLDAP, ממשק משתמש, שרת ניהול) | 4GB | 2 ליבות | 60GB |
* התאמת דרישות המערכת של Postgres על סמך קצב העברת הנתונים:
- פחות מ-250 TPS: אפשר לשקול 8GB, 4 ליבות עם אחסון מנוהל ברשת*** שתומך ב-1,000 IOPS ומעלה
- יותר מ-250 TPS: 16GB, 8 ליבות, אחסון רשת מנוהל*** עם תמיכה ב-1,000 IOPS ומעלה
- יותר מ-1,000 TPS: 16GB, 8 ליבות, אחסון מנוהל ברשת*** עם תמיכה ב-2,000 IOPS ומעלה
- מעל 2,000 TPS: 32GB, 16 ליבות, אחסון רשת מנוהל*** עם תמיכה ב-2,000 IOPS ומעלה
- יותר מ-4,000 TPS: 64GB, 32 ליבות, אחסון מנוהל ברשת*** תמיכה ב-4,000 IOPS ומעלה
** הערך של הכונן הקשיח של Postgres מבוסס על ניתוח הנתונים שמתבצע מחוץ לקופסה על ידי Edge. אם מוסיפים ערכים מותאמים אישית לנתוני הניתוח, צריך להגדיל את הערכים האלה בהתאם. כדי להעריך את נפח האחסון הנדרש, משתמשים בנוסחה הבאה:
bytes of storage needed =
(# bytes of analytics data/request) *
(requests/second) *
(seconds/hour) *
(hours of peak usage/day) *
(days/month) *
(months of data retention)
לדוגמה:
(2K bytes) * (100 req/sec) * (3600 secs/hr) * (18 peak hours/day) * (30 days/month) * (3 months retention)
= 1,194,393,600,000 bytes or 1194.4 GB
*** מומלץ להשתמש באחסון ברשת עבור מסד נתונים של Postgresql כי:
- הוא מאפשר להגדיל את נפח האחסון באופן דינמי אם וכאשר יש צורך בכך.
- אפשר לשנות את ערכי ה-IOPS של הרשת תוך כדי תנועה ברוב מערכות המשנה של הסביבה, האחסון והרשת של היום.
- אפשר להפעיל צילומי מצב של רמת האחסון כחלק מפתרונות גיבוי ושחזור.
בנוסף, בהמשך מפורטות דרישות החומרה אם רוצים להתקין את שירותי המונטיזציה:
| רכיב עם מונטיזציה | RAM | מעבד (CPU) | כונן קשיח |
|---|---|---|---|
| שרת ניהול (עם שירותי מונטיזציה) | 8GB | 4 ליבות | 60GB |
| Analytics – Postgres/Qpid באותו שרת | 16GB | 8 ליבות | אחסון ברשת בנפח 500GB עד 1TB, רצוי עם קצה עורפי של SSD, שתומך ב-1,000 פעולות קלט/פלט בשנייה (IOPS) או יותר, או שימוש בכלל מהטבלה שלמעלה. |
| Analytics – Postgres standalone | 16GB | 8 ליבות | אחסון ברשת בנפח 500GB עד 1TB, רצוי עם קצה עורפי של SSD, שתומך ב-1,000 פעולות קלט/פלט בשנייה (IOPS) או יותר, או שימוש בכלל מהטבלה שלמעלה. |
| Analytics – Qpid standalone | 8GB | 4 ליבות | אחסון מקומי בנפח 40GB עד 500GB עם SSD או HDD מהיר
אם אתם מתקינים יותר מ-250 עסקאות לשנייה, מומלץ להשתמש בכונן HDD עם אחסון מקומי שתומך ב-1,000 פעולות קלט/פלט לשנייה. |
אם רוצים להתקין API BaaS, צריך לעמוד בדרישות החומרה הבאות:
| API BaaS Component | RAM | מעבד (CPU) | כונן קשיח |
|---|---|---|---|
| ElasticSearch* | 8GB | 4 ליבות | 60-80GB |
| API BaaS Stack* | 8GB | 4 ליבות | 60-80GB |
| API BaaS Portal | 1GB | 2 ליבות | 20GB |
| Cassandra** | 16GB | 8 ליבות | נפח אחסון מקומי של 250GB עם SSD או HDD מהיר שתומך ב-2,000 IOPS |
* אפשר להתקין את ElasticSearch ואת API BaaS Stack באותו צומת. אם כן, צריך להגדיר את ElasticSearch לשימוש בזיכרון של 4GB (ברירת מחדל). אם ElasticSearch מותקן בצומת משלו, צריך להגדיר אותו כך שישתמש בזיכרון של 6GB.
** אופציונלי; בדרך כלל משתמשים באותו אשכול Cassandra גם בשירותי Edge וגם בשירותי API BaaS.
דרישות מערכת הפעלה ותוכנת צד שלישי
הוראות ההתקנה וקבצי ההתקנה שסופקו נבדקו במערכות ההפעלה ובתוכנות של צד שלישי שמפורטות במאמר בנושא תוכנות נתמכות וגרסאות נתמכות.
יצירת משתמש Apigee
תהליך ההתקנה יוצר משתמש במערכת Unix בשם apigee. הבעלים של הספריות והקבצים ב-Edge הוא 'apigee', כמו גם של התהליכים ב-Edge. המשמעות היא שרכיבי Edge פועלים כמשתמש 'apigee'. אם צריך, אפשר להפעיל רכיבים כמשתמש אחר.
ספריית ההתקנה
כברירת מחדל, תוכנת ההתקנה כותבת את כל הקבצים לספרייה /opt/apigee. אי אפשר לשנות את מיקום הספרייה. אי אפשר לשנות את הספרייה הזו, אבל אפשר ליצור קישור סמלי כדי למפות את /opt/apigee למיקום אחר, כמו שמתואר בהמשך.
בהוראות במדריך הזה, ספריית ההתקנה מצוינת כ-/opt/apigee.
יצירת קישור סמלי מ- /opt/apigee
לפני שיוצרים את הקישור הסמלי, צריך קודם ליצור משתמש וקבוצה בשם apigee. זו אותה קבוצה ואותו משתמש שנוצרו על ידי תוכנת ההתקנה של Edge.
כדי ליצור את הקישור הסמלי, מבצעים את השלבים הבאים לפני שמורידים את הקובץ bootstrap_4.18.01.sh. צריך לבצע את כל השלבים האלה כמשתמש root:
- יוצרים את המשתמש והקבוצה apigee:
groupadd -r apigee > useradd -r -g apigee -d /opt/apigee -s /sbin/nologin -c "Apigee platform user" apigee
- יוצרים קישור סמלי מ-
/opt/apigeeלתיקיית השורש הרצויה להתקנה:ln -Ts /srv/myInstallDir /opt/apigee
/srv/myInstallDir הוא המיקום הרצוי של קובצי Edge.
- משנים את הבעלות על ספריית השורש של ההתקנה ואת הקישור הסמלי למשתמש apigee:
chown -h apigee:apigee /srv/myInstallDir /opt/apigee
Java
לפני ההתקנה, צריך להתקין בכל מכונה גרסה נתמכת של Java 1.8. רשימת ה-JDK הנתמכים מופיעה במאמר תוכנות נתמכות וגרסאות נתמכות.
מוודאים שהנתיב JAVA_HOME מצביע על שורש ה-JDK של המשתמש שמבצע את ההתקנה.
SELinux
בהתאם להגדרות של SELinux, יכולות להיות בעיות בהתקנה ובהפעלה של רכיבי Edge. במקרה הצורך, אפשר להשבית את SELinux או להגדיר אותו למצב הרשאה במהלך ההתקנה, ואז להפעיל אותו מחדש אחרי ההתקנה. מידע נוסף זמין במאמר בנושא התקנת כלי השירות apigee-setup של Edge.
הגדרת רשת
מומלץ לבדוק את הגדרות הרשת לפני ההתקנה. התוכנה להתקנה מניחה שלכל המכונות יש כתובות IP קבועות. משתמשים בפקודות הבאות כדי לאמת את ההגדרה:
-
hostnameמחזירה את שם המחשב -
hostname -iמחזירה את כתובת ה-IP של שם המארח שאפשר לפנות אליו ממכונות אחרות.
בהתאם לסוג ולגרסה של מערכת ההפעלה, יכול להיות שתצטרכו לערוך את /etc/hosts ואת /etc/sysconfig/network אם שם המארח לא מוגדר בצורה נכונה. מידע נוסף מופיע במסמכי התיעוד של מערכת ההפעלה הספציפית שלכם.
אם לשרת יש כמה כרטיסי ממשק, הפקודה hostname -i מחזירה רשימה של כתובות IP שמופרדות ברווחים. כברירת מחדל, תוכנת ההתקנה של Edge משתמשת בכתובת ה-IP הראשונה שמוחזרת, שיכול להיות שהיא לא נכונה בכל המצבים. לחלופין, אפשר להגדיר את המאפיין הבא בקובץ ההגדרות של ההתקנה:
ENABLE_DYNAMIC_HOSTIP=y
אם מגדירים את המאפיין הזה לערך y, תוכנת ההתקנה תבקש מכם לבחור את כתובת ה-IP שתשמש כחלק מההתקנה. ערך ברירת המחדל הוא n. מידע נוסף זמין במאמר בנושא קובץ ההגדרות של Edge.
TCP Wrappers
TCP Wrappers יכולים לחסום תקשורת של חלק מהיציאות ולהשפיע על ההתקנה של OpenLDAP, Postgres ו-Cassandra. בצמתים האלה, בודקים את /etc/hosts.allow ואת /etc/hosts.deny כדי לוודא שאין הגבלות על היציאות הנדרשות של OpenLDAP, Postgres ו-Cassandra.
iptables
מוודאים שאין מדיניות iptables שמונעת קישוריות בין הצמתים ביציאות ה-Edge הנדרשות. אם צריך, אפשר לעצור את iptables במהלך ההתקנה באמצעות הפקודה:
sudo/etc/init.d/iptables stop
ב-CentOS 7.x:
systemctl stop firewalld
מוודאים שלנתב Edge יש גישה אל /etc/rc.d/init.d/functions
הצמתים של Edge Router ושל BaaS Portal משתמשים בנתב Nginx ודורשים גישת קריאה אל /etc/rc.d/init.d/functions.
אם תהליך האבטחה שלכם מחייב הגדרת הרשאות ב-/etc/rc.d/init.d/functions, אל תגדירו אותן ל-700, אחרת הנתב לא יופעל. אפשר להגדיר את ההרשאות ל-744 כדי לאפשר גישת קריאה ל-/etc/rc.d/init.d/functions.
Cassandra
כל הצמתים של Cassandra צריכים להיות מחוברים לטבעת. Cassandra מאחסנת עותקים של נתונים בכמה צמתים כדי להבטיח אמינות ועמידות בפני תקלות. שיטת השכפול של כל מרחב מפתחות Edge קובעת את צמתי Cassandra שבהם ממוקמות רפליקות. מידע נוסף זמין במאמר בנושא גורם השכפול ורמת העקביות ב-Cassandra.
Cassandra משנה אוטומטית את גודל ה-heap של Java בהתאם לזיכרון הזמין. מידע נוסף זמין במאמר בנושא התאמה של משאבי Java. במקרה של ירידה בביצועים או צריכת זיכרון גבוהה.
אחרי שמתקינים את Edge for Private Cloud, אפשר לבדוק שההגדרה של Cassandra תקינה על ידי בדיקת הקובץ /opt/apigee/apigee-cassandra/conf/cassandra.yaml. לדוגמה, מוודאים שסקריפט ההתקנה של Edge for Private Cloud הגדיר את המאפיינים הבאים:
cluster_nameinitial_tokenpartitionerseedslisten_addressrpc_addresssnitch
מסד נתונים של PostgreSQL
אחרי שמתקינים את Edge, אפשר לשנות את ההגדרות הבאות של מסד הנתונים PostgreSQL בהתאם לכמות ה-RAM שזמינה במערכת:
conf_postgresql_shared_buffers = 35% of RAM # min 128kB conf_postgresql_effective_cache_size = 45% of RAM conf_postgresql_work_mem = 512MB # min 64kB
כדי להגדיר את הערכים האלה:
- עורכים את הקובץ postgresql.properties:
vi /opt/apigee/customer/application/postgresql.properties
אם הקובץ לא קיים, יוצרים אותו.
- מגדירים את המאפיינים שמפורטים למעלה.
- שומרים את השינויים.
- מפעילים מחדש את מסד הנתונים של PostgreSQL:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
מגבלות מערכת
מוודאים שהגדרתם את מגבלות המערכת הבאות בצמתי Cassandra ו-Message Processor:
- בצמתי Cassandra, מגדירים מגבלות של memlock, nofile ומרחב כתובות (as) עבור משתמש ההתקנה (ברירת המחדל היא apigee) ב-
/etc/security/limits.d/90-apigee-edge-limits.conf, כמו שמוצג בהמשך:apigee soft memlock unlimited apigee hard memlock unlimited apigee soft nofile 32768 apigee hard nofile 65536 apigee soft as unlimited apigee hard as unlimited
- בצמתים של מעבד בקשות, מגדירים את המספר המקסימלי של מתארים פתוחים של קבצים ל-64K ב-
/etc/security/limits.d/90-apigee-edge-limits.confכמו שמוצג בהמשך:apigee soft nofile 32768 apigee hard nofile 65536
במקרה הצורך, אפשר להגדיל את המגבלה הזו. לדוגמה, אם יש לכם מספר גדול של קבצים זמניים שפתוחים בכל רגע נתון.
jsvc
jsvc הוא תנאי מוקדם לשימוש ב-API BaaS. גרסה 1.0.15-dev מותקנת כשמתקינים את API BaaS.
Network Security Services (NSS)
Network Security Services (NSS) היא קבוצה של ספריות שתומכות בפיתוח של אפליקציות לקוח ושרת עם אבטחה מופעלת. צריך לוודא שמותקנת גרסה 3.19 של NSS או גרסה חדשה יותר.
כדי לבדוק את הגרסה הנוכחית:
yum info nss
כדי לעדכן את NSS:
yum update nss
מידע נוסף זמין במאמר הזה של RedHat.
השבתה של חיפוש DNS ב-IPv6 בשימוש ב-NSCD (Name Service Cache Daemon)
אם התקנתם והפעלתם את NSCD (Name Service Cache Daemon), מעבדי ההודעות מבצעים שני חיפושי DNS: אחד עבור IPv4 ואחד עבור IPv6. אם משתמשים ב-NSCD, צריך להשבית את חיפוש ה-DNS ב-IPv6.
כדי להשבית את חיפוש ה-DNS ב-IPv6:
- בכל צומת של מעבד ההודעות, עורכים את
/etc/nscd.conf - מגדירים את המאפיין הבא:
enable-cache hosts no
השבתת IPv6 ב-Google Cloud Platform ל-RedHat/CentOS 7
אם אתם מתקינים את Edge ב-RedHat 7 או ב-CentOS 7 ב-Google Cloud Platform, אתם צריכים להשבית את IPv6 בכל צמתי Qpid.
הוראות להשבתת IPv6 מופיעות במסמכי התיעוד של RedHat או CentOS לגרסת מערכת ההפעלה הספציפית שלכם. לדוגמה, אתם יכולים:
- פותחים את
/etc/hostsבעורך. - מוסיפים את התו '#' בעמודה הראשונה של השורה הבאה כדי להפוך אותה להערה:
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- שומרים את הקובץ.
AWS AMI
אם אתם מתקינים את Edge ב-Amazon Machine Image (AMI) של AWS עבור Red Hat Enterprise Linux 7.x, אתם צריכים קודם להריץ את הפקודה הבאה:
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
כלים
תוכנת ההתקנה משתמשת בכלים הבאים של UNIX בגרסה הרגילה כפי שסופקה על ידי EL5 או EL6.
|
awk |
expr |
libxslt |
RPM |
unzip |
|
basename |
grep |
lua-socket |
rpm2cpio |
useradd |
|
bash |
hostname |
ls |
sed |
wc |
|
bc |
id [מזהה] |
net-tools |
sudo |
wget |
|
curl |
libaio |
perl (מ-procps) |
זפת |
xerces-c |
| cyrus-sasl | libdb4 | pgrep (from procps) | tr | טעים |
|
תאריך |
libdb-cxx |
ps |
uuid |
chkconfig |
| dirname | libibverbs | pwd | uname | |
| echo | librdmacm | python |
ntpdate
מומלץ לסנכרן את השעות בשרתים. אם עדיין לא הגדרתם את זה, כדאי להשתמש בכלי השירות ntpdate, שבודק אם השרתים מסונכרנים עם השעון. אפשר להשתמש ב-yum install ntp כדי להתקין את כלי השירות. האפשרות הזו שימושית במיוחד לשכפול הגדרות של OpenLDAP. שימו לב שאתם מגדירים את אזור הזמן של השרת לפי UTC.
openldap 2.4
התקנה מקומית דורשת OpenLDAP 2.4. אם לשרת שלכם יש חיבור לאינטרנט, סקריפט ההתקנה של Edge יוריד ויתקין את OpenLDAP. אם לשרת שלכם אין חיבור לאינטרנט, אתם צריכים לוודא ש-OpenLDAP כבר מותקן לפני שמריצים את סקריפט ההתקנה של Edge. ב-RHEL/CentOS, אפשר להריץ את הפקודה
yum install openldap-clients openldap-servers כדי להתקין את OpenLDAP.
במקרים של התקנות עם 13 מארחים, ושל התקנות עם 12 מארחים ושני מרכזי נתונים, נדרשת שכפול OpenLDAP כי יש כמה צמתים שמארחים OpenLDAP.
חומות אש ומארחים וירטואליים
המונח virtual מקבל בדרך כלל משמעויות רבות בתחום ה-IT, וכך גם לגבי פריסה של Apigee Edge for Private Cloud ומארחים וירטואליים. חשוב להבהיר שיש שני שימושים עיקריים במונח virtual:
- מכונות וירטואליות (VM): לא חובה, אבל חלק מהפריסות משתמשות בטכנולוגיית VM כדי ליצור שרתים מבודדים לרכיבי Apigee. למארחי מכונות וירטואליות, כמו למארחים פיזיים, יכולים להיות ממשקי רשת וחומות אש.
- מארחים וירטואליים: נקודות קצה באינטרנט, בדומה למארח וירטואלי של Apache.
נתב במכונה וירטואלית יכול לחשוף כמה מארחים וירטואליים (כל עוד הם שונים זה מזה בכינוי המארח או ביציאת הממשק).
לדוגמה, בשרת פיזי אחד A יכולות לפעול שתי מכונות וירטואליות, שנקראות VM1 ו-VM2. נניח שמכונה וירטואלית בשם VM1 חושפת ממשק וירטואלי של Ethernet, שנקרא eth0 בתוך המכונה הווירטואלית, ומוקצית לו כתובת IP 111.111.111.111 על ידי מנגנון הווירטואליזציה או שרת DHCP ברשת. נניח גם שמכונה וירטואלית בשם VM2 חושפת ממשק וירטואלי של Ethernet שנקרא גם eth0, ומוקצית לו כתובת IP 111.111.111.222.
יכול להיות שיהיה לנו נתב Apigee שפועל בכל אחת משתי המכונות הווירטואליות. הנתבים חושפים נקודות קצה של מארח וירטואלי, כמו בדוגמה ההיפותטית הזו:
נתב Apigee במכונה וירטואלית VM1 חושף שלושה מארחים וירטואליים בממשק eth0 שלו (שיש לו כתובת IP ספציפית), api.mycompany.com:80, api.mycompany.com:443 ו-test.mycompany.com:80.
הנתב במכונה הווירטואלית VM2 חושף את api.mycompany.com:80 (אותו שם ואותה יציאה כמו אלה שנחשפו על ידי VM1).
יכול להיות שלמערכת ההפעלה של המארח הפיזי יש חומת אש ברשת. אם זה המצב, צריך להגדיר את חומת האש כך שתעביר תנועת TCP שמיועדת ליציאות שנחשפות בממשקים הווירטואליים (111.111.111.111:{80, 443} ו-111.111.111.222:80). בנוסף, יכול להיות שלמערכת ההפעלה של כל מכונה וירטואלית יש חומת אש משלה בממשק eth0, וגם בהן צריך לאפשר חיבור של תנועה ביציאות 80 ו-443.
נתיב הבסיס הוא הרכיב השלישי שמשתתף בהפניית קריאות ל-API אל שרתי proxy שונים של API שאולי פרסתם. חבילות של שרתי proxy ל-API יכולות לשתף נקודת קצה אם יש להן נתיבי בסיס שונים. לדוגמה, אפשר להגדיר נתיב בסיס אחד כ-http://api.mycompany.com:80/
ואחר כ-http://api.mycompany.com:80/salesdemo.
במקרה כזה, צריך מאזן עומסים או כלי לניהול תעבורה שיפצל את התעבורה של http://api.mycompany.com:80/ בין שתי כתובות ה-IP (111.111.111.111 במכונה וירטואלית 1 ו-111.111.111.222 במכונה וירטואלית 2). הפונקציה הזו ספציפית להתקנה שלכם, והיא מוגדרת על ידי קבוצת הרשתות המקומית שלכם.
נתיב הבסיס מוגדר כשפורסים API. בדוגמה שלמעלה, אפשר לפרוס שני ממשקי API, mycompany ו-testmycompany, לארגון mycompany-org עם המארח הווירטואלי שיש לו כינוי מארח api.mycompany.com והיציאה מוגדרת ל-80. אם לא מציינים basepath בפריסה, הנתב לא יודע לאיזה API לשלוח בקשות נכנסות.
עם זאת, אם פורסים את API testmycompany עם כתובת הבסיס /salesdemo, המשתמשים ניגשים ל-API הזה באמצעות http://api.mycompany.com:80/salesdemo. אם פורסים את ה-API mycompany עם כתובת ה-URL הבסיסית /, המשתמשים ניגשים ל-API באמצעות כתובת ה-URL http://api.mycompany.com:80/.
הדרישות לגבי יציאת קצה
הצורך בניהול חומת האש לא מסתכם רק במארחים הווירטואליים. חומות האש של המכונות הווירטואליות ושל המארחים הפיזיים צריכות לאפשר תעבורה ליציאות שנדרשות לרכיבים כדי לתקשר ביניהם.
בתמונה הבאה מוצגות דרישות היציאות לכל רכיב Edge:

הערות לגבי הדיאגרמה הזו:
- * צריך לפתוח את יציאה 8082 ב-מעבד בקשות רק כדי לאפשר גישה ל-נתב כשמגדירים TLS/SSL בין ה-נתב ל-מעבד בקשות. אם לא מגדירים TLS/SSL בין הנתב למעבד ההודעות, ההגדרה שמוגדרת כברירת מחדל, יציאה 8082, עדיין צריכה להיות פתוחה במעבד ההודעות כדי לנהל את הרכיב, אבל הנתב לא צריך גישה אליה.
- היציאות שמופיע לפניהן הקידומת M הן יציאות שמשמשות לניהול הרכיב, והן צריכות להיות פתוחות ברכיב כדי שלשרת הניהול תהיה גישה אליו.
- לרכיבים הבאים נדרשת גישה ליציאה 8080 בשרת הניהול: נתב, מעבד הודעות, ממשק משתמש, Postgres ו-Qpid.
- מעבד הודעות צריך לפתוח את יציאה 4528 כיציאת הניהול שלו. אם יש לכם כמה מעבדי הודעות, כולם צריכים להיות מסוגלים לגשת אחד לשני דרך יציאה 4528 (מסומן בחץ הלולאה בתרשים שלמעלה עבור יציאה 4528 במעבד ההודעות). אם יש לכם כמה מרכזי נתונים, היציאה צריכה להיות נגישה מכל מעבדי ההודעות בכל מרכזי הנתונים.
- אפשר לפתוח את הפורט 4527 בנתב כדי לאפשר גישה לכל מעבד הודעות, אבל זה לא חובה. אחרת, יכול להיות שיופיעו הודעות שגיאה בקובצי היומן של מעבד ההודעות.
- הנתב צריך לפתוח את יציאה 4527 כיציאת הניהול שלו. אם יש לכם כמה נתבים, כולם צריכים להיות מסוגלים לגשת זה לזה דרך יציאה 4527 (מסומנת בחץ הלולאה בתרשים שלמעלה עבור יציאה 4527 בנתב).
- ממשק המשתמש של Edge צריך גישה לנתב, ביציאות שנחשפות על ידי שרתי Proxy של API, כדי לתמוך בלחצן שליחה בכלי המעקב.
- לשרת הניהול נדרשת גישה ליציאת JMX בצמתי Cassandra.
- אפשר להגדיר את הגישה ליציאות JMX כך שתידרש סיסמה או שם משתמש. מידע נוסף זמין במאמר איך לנטר.
- אפשר גם להגדיר גישה באמצעות TLS/SSL לחיבורים מסוימים, שבהם אפשר להשתמש ביציאות שונות. מידע נוסף זמין במאמר בנושא TLS/SSL.
- אם מגדירים שני צמתי Postgres לשימוש בשכפול master-standby, צריך לפתוח את יציאה 22 בכל צומת לגישת SSH. אפשר גם לפתוח יציאות בצמתים ספציפיים כדי לאפשר גישה באמצעות SSH.
- אתם יכולים להגדיר את שרת הניהול ואת ממשק המשתמש של Edge כך שישלחו אימיילים דרך שרת SMTP חיצוני. אם כן, צריך לוודא שלשרת הניהול ולממשק המשתמש יש גישה ליציאה הנדרשת בשרת ה-SMTP. ב-SMTP ללא TLS, מספר היציאה הוא בדרך כלל 25. ב-SMTP עם TLS, המספר הוא לרוב 465, אבל כדאי לבדוק את זה מול ספק ה-SMTP.
בטבלה הבאה מפורטים הפורטים שצריך לפתוח בחומות אש, לפי רכיב Edge:
| רכיב | יציאה | תיאור |
|---|---|---|
| יציאות HTTP סטנדרטיות | 80, 443 | HTTP בתוספת כל יציאה אחרת שבה אתם משתמשים למארחים וירטואליים |
| שרת ניהול | 8080 | יציאה לקריאות ל-API לניהול Edge. הרכיבים האלה צריכים גישה ליציאה 8080 בשרת הניהול: נתב, מעבד הודעות, ממשק משתמש, Postgres ו-Qpid. |
| 1099 | יציאת JMX | |
| 4526 | למטמון מבוזר ולקריאות ניהול | |
| ממשק משתמש לניהול | 9000 | יציאה לגישה לדפדפן לממשק המשתמש לניהול |
| מעבד בקשות | 8998 | יציאת מעבד ההודעות לתקשורת מנתב |
| 8082 |
יציאת הניהול שמוגדרת כברירת מחדל עבור מעבד ההודעות, וצריכה להיות פתוחה ברכיב כדי ששרת הניהול יוכל לגשת אליה. אם מגדירים TLS/SSL בין הנתב למעבד ההודעות, הנתב משתמש בהם כדי לבצע בדיקות תקינות במעבד ההודעות. |
|
| 1101 | יציאת JMX | |
| 4528 | לזיכרון מטמון מבוזר ולקריאות ניהול בין מעבדי הודעות, ולתקשורת מהנתב ומהשרת לניהול | |
| נתב | 8081 | יציאת הניהול שמוגדרת כברירת מחדל לנתב, וצריכה להיות פתוחה ברכיב כדי ששרת הניהול יוכל לגשת אליה. |
| 4527 | למטמון מבוזר ולקריאות ניהול | |
| 15999 |
יציאה לבדיקת תקינות. מאזן העומסים משתמש ביציאה הזו כדי לקבוע אם הנתב זמין. כדי לקבל את הסטטוס של נתב, מאזן העומסים שולח בקשה ליציאה 15999 בנתב: curl -v http://routerIP:15999/v1/servers/self/reachable אם אפשר להגיע לנתב, הבקשה מחזירה HTTP 200. |
|
| 59001 | היציאה שמשמשת לבדיקת ההתקנה של Edge באמצעות כלי השירות apigee-validate.
כדי להשתמש בכלי הזה, צריך גישה ליציאה 59001 בנתב. מידע נוסף על יציאה 59001 זמין במאמר בנושא בדיקת ההתקנה. |
|
| ZooKeeper | 2181 | משמש רכיבים אחרים כמו שרת ניהול, נתב, מעבד הודעות וכו' |
| 2888, 3888 | משמש באופן פנימי את ZooKeeper לתקשורת בין אשכולות ZooKeeper (שנקראים ZooKeeper ensemble) | |
| Cassandra | 7000, 9042, 9160 | יציאות של Apache Cassandra לתקשורת בין צמתי Cassandra ולגישה של רכיבי Edge אחרים. |
| 7199 | יציאת JMX. היציאה צריכה להיות פתוחה לגישה של שרת הניהול. | |
| Qpid | 5672 | משמש לתקשורת מהנתב וממעבד ההודעות לשרת Qpid |
| 8083 | יציאת הניהול שמוגדרת כברירת מחדל בשרת Qpid, וצריכה להיות פתוחה ברכיב כדי ששרת הניהול יוכל לגשת אליה. | |
| 1102 | יציאת JMX | |
| 4529 | למטמון מבוזר ולקריאות ניהול | |
| Postgres | 5432 | משמש לתקשורת מ-Qpid/Management Server אל Postgres |
| 8084 | יציאת הניהול שמוגדרת כברירת מחדל בשרת Postgres, וצריך לפתוח אותה ברכיב כדי ששרת הניהול יוכל לגשת אליה. | |
| 1103 | יציאת JMX | |
| 4530 | למטמון מבוזר ולקריאות ניהול | |
| 22 | אם מגדירים שני צמתי Postgres לשימוש בשכפול master-standby, צריך לפתוח את יציאה 22 בכל צומת לגישת SSH. | |
| LDAP | 10389 | OpenLDAP |
| SmartDocs | 59002 | היציאה בנתב Edge שאליה נשלחות בקשות לדף SmartDocs. |
בטבלה הבאה מוצגים אותם פורטים, לפי סדר מספרי, עם רכיבי המקור והיעד:
| מספר יציאה | מטרה | רכיב המקור | רכיב היעד |
|---|---|---|---|
| virtual_host_port | HTTP ועוד יציאות שבהן אתם משתמשים לטראפיק של קריאות ל-API של מארחים וירטואליים. היציאות 80 ו-443 הן הנפוצות ביותר. נתב ההודעות יכול לסיים חיבורי TLS/SSL. | לקוח חיצוני (או מאזן עומסים) | האזנה בנתב ההודעות |
| 1099 עד 1103 | ניהול JMX | לקוח JMX | שרת ניהול (1099) מעבד הודעות (1101) שרת Qpid (1102) שרת Postgres (1103) |
| 2181 | תקשורת של לקוח Zookeeper | שרת ניהול נתב מעבד הודעות שרת Qpid שרת Postgres |
מטפל בבעלי חיים |
| 2888 ו-3888 | ניהול צמתים ב-Zookeeper | מטפל בבעלי חיים | מטפל בבעלי חיים |
| 4526 | יציאת ניהול RPC | שרת ניהול | שרת ניהול |
| 4527 | יציאת ניהול RPC למטמון מבוזר ולשיחות ניהול, ולתקשורת בין נתבים | שרת ניהול נתב |
נתב |
| 4528 | לשיחות במטמון מבוזר בין מעבדי הודעות, ולתקשורת מהנתב | שרת ניהול נתב מעבד הודעות |
מעבד בקשות |
| 4529 | יציאת ניהול של RPC למטמון מבוזר ולשיחות ניהול | שרת ניהול | Qpid Server |
| 4530 | יציאת ניהול של RPC למטמון מבוזר ולשיחות ניהול | שרת ניהול | שרת Postgres |
| 5432 | לקוח Postgres | Qpid Server | Postgres |
| 5672 |
משמש לשליחת נתוני ניתוח מ-Router ומ-מעבד בקשות אל Qpid |
נתב מעבד הודעות |
Qpid Server |
| 7000 | תקשורת בין צמתים ב-Cassandra | Cassandra | צומת Cassandra אחר |
| 7199 | ניהול JMX. צריך לאפשר גישה לצומת Cassandra על ידי שרת הניהול. | לקוח JMX | Cassandra |
| 8080 | יציאה של Management API | לקוחות של Management API | שרת ניהול |
| 8081 עד 8084 |
יציאות של Component API, שמשמשות להנפקת בקשות API ישירות לרכיבים נפרדים. כל רכיב פותח יציאה אחרת. היציאה המדויקת שבה נעשה שימוש תלויה בהגדרה, אבל היא צריכה להיות פתוחה ברכיב כדי ששרת הניהול יוכל לגשת אליה. |
לקוחות של Management API | נתב (8081) מעבד הודעות (8082) שרת Qpid (8083) שרת Postgres (8084) |
| 8998 | תקשורת בין נתב למעבד הודעות | נתב | מעבד בקשות |
| 9000 | יציאת ברירת המחדל של ממשק המשתמש לניהול Edge | דפדפן | שרת ממשק משתמש לניהול |
| 9042 | העברה מקורית של CQL | נתב מעבד הודעות שרת ניהול |
Cassandra |
| 9160 | לקוח Cassandra thrift | נתב מעבד הודעות שרת ניהול |
Cassandra |
| 10389 | יציאת LDAP | שרת ניהול | OpenLDAP |
| 15999 | יציאה לבדיקת תקינות. מאזן העומסים משתמש ביציאה הזו כדי לקבוע אם הנתב זמין. | מאזן עומסים | נתב |
| 59001 | היציאה שבה כלי השירות apigee-validate משתמש כדי לבדוק את ההתקנה של Edge |
apigee-validate | נתב |
| 59002 | יציאת הנתב שאליה נשלחות בקשות לדף SmartDocs | SmartDocs | נתב |
מעבד ההודעות שומר על מאגר חיבורים ייעודי פתוח ל-Cassandra, שמוגדר כך שאף פעם לא יפוג הזמן הקצוב לתפוגה. אם חומת אש ממוקמת בין מעבד ההודעות לבין שרת Cassandra, יכול להיות שהחיבור יפסיק לפעול בגלל חומת האש. עם זאת, מעבד ההודעות לא מיועד ליצור מחדש חיבורים ל-Cassandra.
כדי למנוע את המצב הזה, ב-Apigee מומלץ ששרת Cassandra, מעבד ההודעות והנתבים יהיו באותה רשת משנה, כך שחומת אש לא תהיה מעורבת בפריסה של הרכיבים האלה.
אם יש חומת אש בין הנתב לבין מעבדי ההודעות, והוגדר לה זמן קצוב לתפוגה של TCP במצב המתנה, ההמלצות שלנו הן:
- מגדירים את
net.ipv4.tcp_keepalive_time = 1800בהגדרות sysctl במערכת הפעלה Linux, כאשר הערך 1800 צריך להיות נמוך מהערך של הזמן הקצוב לתפוגה של TCP במצב לא פעיל בחומת האש. ההגדרה הזו אמורה לשמור על החיבור במצב מבוסס, כדי שחומת האש לא תנתק את החיבור. - בכל מעבדי ההודעות, עורכים את
/opt/apigee/customer/application/message-processor.propertiesכדי להוסיף את המאפיין הבא. אם הקובץ לא קיים, יוצרים אותו.conf_system_cassandra.maxconnecttimeinmillis=-1
- מפעילים מחדש את מעבד ההודעות:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- בכל הנתבים, עורכים את
/opt/apigee/customer/application/router.propertiesכדי להוסיף את המאפיין הבא. אם הקובץ לא קיים, יוצרים אותו.conf_system_cassandra.maxconnecttimeinmillis=-1
- מפעילים מחדש את הנתב:
/opt/apigee/apigee-service/bin/apigee-service edge-router restart
אם מתקינים את ההגדרה של 12 מארחים באשכול עם שני מרכזי נתונים, צריך לוודא שהצמתים בשני מרכזי הנתונים יכולים לתקשר דרך היציאות שמוצגות בהמשך:

דרישות לגבי יציאות ב-API BaaS
אם בוחרים להתקין את API BaaS, מוסיפים את רכיבי API BaaS Stack ו-API BaaS Portal. הרכיבים האלה משתמשים ביציאות שמוצגות באיור הבא:

הערות לגבי הדיאגרמה הזו:
- פורטל ה-API BaaS אף פעם לא שולח בקשות ישירות לצומת BaaS Stack. כשמפתח מתחבר לפורטל, אפליקציית הפורטל מורדת לדפדפן. אפליקציית הפורטל שפועלת בדפדפן שולחת בקשות לצמתים של BaaS Stack.
- בסביבת ייצור של API BaaS נעשה שימוש במאזן עומסים בין צומת API BaaS Portal לבין צומתי API BaaS Stack. כשמגדירים את הפורטל וכשמבצעים קריאות ל-API של BaaS, מציינים את כתובת ה-IP או את שם ה-DNS של מאזן העומסים, ולא של צמתי ה-Stack.
- כל הצמתים של Stack צריכים לפתוח את יציאה 2551 כדי לאפשר גישה מכל שאר הצמתים של Stack (כפי שמצוין בחץ הלולאה בתרשים שלמעלה עבור יציאה 2551 בצמתים של Stack). אם יש לכם כמה מרכזי נתונים, היציאה צריכה להיות נגישה מכל צמתי ה-Stack בכל מרכזי הנתונים.
- צריך להגדיר את כל הצמתים של Baas Stack לשליחת אימיילים דרך שרת SMTP חיצוני. ב-SMTP ללא TLS, מספר היציאה הוא בדרך כלל 25. ב-SMTP עם TLS, המספר הוא לרוב 465, אבל כדאי לבדוק את זה אצל ספק ה-SMTP.
- צמתי Cassandra יכולים להיות ייעודיים ל-API BaaS, או שהם יכולים להיות משותפים עם Edge.
בטבלה הבאה מוצגים פורטים שמוגדרים כברירת מחדל וצריך לפתוח בחומות אש, לפי רכיב:
| רכיב | יציאה | תיאור |
|---|---|---|
| API BaaS Portal | 9000 | יציאה לממשק המשתמש של API BaaS |
| API BaaS Stack | 8080 | יציאה שדרכה מתקבלות בקשות API |
| 2551 |
יציאה לתקשורת בין כל הצמתים של Stack. צריכה להיות גישה לכל שאר הצמתים של Stack במרכז הנתונים. אם יש לכם כמה מרכזי נתונים, צריך לוודא שהיציאה נגישה מכל צמתי Stack בכל מרכזי הנתונים. |
|
| ElasticSearch | 9200 עד 9400 | לתקשורת עם API BaaS Stack ולתקשורת בין צמתים של ElasticSearch |
רישוי
כל התקנה של Edge דורשת קובץ רישיון ייחודי שמתקבל מ-Apigee. תצטרכו לציין את הנתיב לקובץ הרישיון כשמתקינים את שרת הניהול, למשל /tmp/license.txt.
תוכנת ההתקנה מעתיקה את קובץ הרישיון אל
/opt/apigee/customer/conf/license.txt.
אם קובץ הרישיון תקין, שרת הניהול מאמת את התפוגה ואת מספר מעבדי ההודעות (MP) המותרים. אם אחת מהגדרות הרישיון פגות, אפשר למצוא את היומנים במיקום הבא: /opt/apigee/var/log/edge-management-server/logs.
במקרה כזה, אפשר לפנות אל התמיכה של Apigee Edge כדי לקבל פרטים על ההעברה.
אם עדיין אין לכם רישיון, אתם יכולים לפנות למחלקת המכירות של Apigee.