דרישות חומרה
כדי להגדיר תשתית זמינה מאוד בסביבת ייצור, אתם צריכים לעמוד בדרישות המינימליות הבאות לחומרה.
בסרטון הבא מוסבר איך להעריך את הגודל של ההתקנה:
בטבלאות הבאות מפורטות דרישות החומרה המינימליות לרכיבי ההתקנה בכל תרחישי ההתקנה שמתוארים במאמר טופולוגיות של התקנה.
בטבלאות האלה, הדרישות לגבי הדיסק הקשיח הן בנוסף למקום בדיסק הקשיח שנדרש למערכת ההפעלה. יכול להיות שההתקנה תדרוש יותר או פחות משאבים מהמפורט בהמשך, בהתאם לאפליקציות ולתנועת הרשת.
| רכיב ההתקנה | RAM | מעבד (CPU) | דיסק קשיח מינימלי |
|---|---|---|---|
| Cassandra | 16GB | 8 ליבות | נפח אחסון מקומי של 250GB עם כונן SSD שתומך ב-2,000 IOPS |
| מעבד ההודעות או הנתב באותו מחשב | 16GB | 8 ליבות | 100GB |
| מעבד הודעות (עצמאי) | 16GB | 8 ליבות | 100GB |
| נתב (standalone) | 16GB | 8 ליבות | 100GB |
| Analytics – Postgres/Qpid באותו שרת | 16GB* | 8‑core* | נפח אחסון ברשת של 500GB עד 1TB*****, רצוי עם קצה עורפי של SSD, עם תמיכה ב-1,000 פעולות קלט/פלט בשנייה (IOPS) ומעלה* |
| ניתוח נתונים – Postgres ראשי או המתנה (עצמאי) | 16GB* | 8 ליבות* | נפח אחסון ברשת של 500GB עד 1TB*****, רצוי עם קצה עורפי של SSD, עם תמיכה ב-1,000 פעולות קלט/פלט בשנייה (IOPS) ומעלה* |
| Analytics – Qpid standalone | 8GB | 4 ליבות | 30GB עד 50GB של אחסון מקומי עם SSD
גודל התור שמוגדר כברירת מחדל ב-Qpid הוא 1GB, ואפשר להגדיל אותו ל-2GB. אם אתם צריכים קיבולת נוספת, תוכלו להוסיף עוד צמתי Qpid. |
| OpenLDAP/UI/Management Server | 8GB | 4 ליבות | 60GB |
| ממשק משתמש/שרת ניהול | 4GB | 2 ליבות | 60GB |
| OpenLDAP (עצמאי) | 4GB | 2 ליבות | 60GB |
|
* התאמת דרישות המערכת של Postgres על סמך קצב העברת הנתונים:
** הערך של הכונן הקשיח של Postgres מבוסס על ניתוח הנתונים שמתבצע מחוץ לקופסה על ידי Edge. אם מוסיפים ערכים מותאמים אישית לנתוני הניתוח, צריך להגדיל את הערכים האלה בהתאם. כדי להעריך את נפח האחסון הנדרש, משתמשים בנוסחה הבאה:
לדוגמה:
*** מומלץ להשתמש באחסון ברשת עבור מסד נתונים של Postgresql כי:
|
|||
בנוסף, בהמשך מפורטות דרישות החומרה אם רוצים להתקין את Monetization Services (לא נתמך בהתקנת All-in-One):
| רכיב עם מונטיזציה | RAM | מעבד (CPU) | כונן קשיח |
|---|---|---|---|
| שרת ניהול (עם שירותי מונטיזציה) | 8GB | 4 ליבות | 60GB |
| Analytics – Postgres/Qpid באותו שרת | 16GB | 8 ליבות | אחסון ברשת בנפח 500GB עד 1TB, רצוי עם קצה עורפי של SSD, שתומך ב-1,000 פעולות קלט/פלט בשנייה (IOPS) או יותר, או שימוש בכלל מהטבלה שלמעלה. |
| ניתוח נתונים – Postgres master או standby standalone | 16GB | 8 ליבות | אחסון ברשת בנפח 500GB עד 1TB, רצוי עם קצה עורפי של SSD, שתומך ב-1,000 פעולות קלט/פלט בשנייה (IOPS) או יותר, או שימוש בכלל מהטבלה שלמעלה. |
| Analytics – Qpid standalone | 16GB | 8 ליבות | אחסון מקומי בנפח 40GB עד 500GB עם SSD או HDD מהיר
אם אתם מתקינים יותר מ-250 עסקאות לשנייה, מומלץ להשתמש בכונן HDD עם אחסון מקומי שתומך ב-1,000 פעולות קלט/פלט לשנייה. |
דרישות מערכת הפעלה ותוכנה של צד שלישי
הוראות ההתקנה וקבצי ההתקנה שסופקו נבדקו במערכות ההפעלה ובתוכנות של צד שלישי שמפורטות במאמר בנושא תוכנות נתמכות וגרסאות נתמכות.
Java
לפני ההתקנה, צריך להתקין בכל מכונה גרסה נתמכת של Java 1.8. רשימת ה-JDK הנתמכים מופיעה במאמר תוכנות נתמכות וגרסאות נתמכות.
מוודאים שמשתנה הסביבה JAVA_HOME מצביע על שורש ה-JDK של המשתמש שמבצע את ההתקנה.
SELinux
בהתאם להגדרות של SELinux, יכולות להיות בעיות בהתקנה ובהפעלה של רכיבי Edge. במקרה הצורך, אפשר להשבית את SELinux או להגדיר אותו למצב הרשאה במהלך ההתקנה, ואז להפעיל אותו מחדש אחרי ההתקנה. מידע נוסף זמין במאמר בנושא התקנת כלי השירות apigee-setup של Edge.
יצירת המשתמש apigee
תהליך ההתקנה יוצר משתמש במערכת Unix בשם apigee. הבעלים של הספריות והקבצים ב-Edge הוא 'apigee', כמו גם של התהליכים ב-Edge. כלומר, רכיבי Edge פועלים כמשתמש 'apigee'. אם צריך, אפשר להריץ רכיבים כמשתמש אחר.
ספריית ההתקנה
כברירת מחדל, תוכנת ההתקנה כותבת את כל הקבצים לספרייה /opt/apigee. אי אפשר לשנות את מיקום הספרייה. אי אפשר לשנות את הספרייה הזו, אבל אפשר ליצור קישור סמלי כדי למפות את /opt/apigee למיקום אחר, כמו שמתואר במאמר יצירת קישור סמלי מ- /opt/apigee.
בהוראות במדריך הזה, ספריית ההתקנה מצוינת כ-/opt/apigee.
יצירת קישור סמלי מ- /opt/apigee
לפני שיוצרים את הקישור הסמלי, צריך קודם ליצור משתמש וקבוצה בשם apigee. זו אותה קבוצה ואותו משתמש שנוצרו על ידי תוכנת ההתקנה של Edge.
כדי ליצור את הקישור הסמלי, מבצעים את השלבים הבאים לפני שמורידים את הקובץ bootstrap_4.51.00.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
הגדרת רשת
מומלץ לבדוק את הגדרות הרשת לפני ההתקנה של Apigee. התוכנה להתקנה מניחה שלכל המכונות יש כתובות IP קבועות. משתמשים בפקודות הבאות כדי לאמת את ההגדרה:
-
hostnameמחזירה את שם המחשב -
hostname -iמחזירה את כתובת ה-IP של שם המארח שאפשר לפנות אליו ממכונות אחרות.
יכול להיות שתצטרכו לערוך את /etc/hosts ואת /etc/sysconfig/network אם שם המארח לא מוגדר בצורה נכונה, בהתאם לסוג ולגרסה של מערכת ההפעלה. מידע נוסף מופיע במסמכי התיעוד של מערכת ההפעלה הספציפית שלכם.
אם לשרת יש כמה כרטיסי ממשק, הפקודה hostname -i מחזירה רשימה של כתובות IP מופרדות ברווח. כברירת מחדל, תוכנת ההתקנה של Edge משתמשת בכתובת ה-IP הראשונה שמוחזרת, שיכול להיות שהיא לא נכונה בכל המצבים. לחלופין, אפשר להגדיר את המאפיין הבא בקובץ ההגדרות של ההתקנה:
ENABLE_DYNAMIC_HOSTIP=y
אם מגדירים את המאפיין הזה לערך y, תוכנת ההתקנה תבקש מכם לבחור את כתובת ה-IP שתשמש כחלק מההתקנה. ערך ברירת המחדל הוא n. מידע נוסף זמין במאמר Edge Configuration File Reference.
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 שיש להן דרישות מיוחדות מתהליכי Edge:
| שירות | ספרייה | תיאור |
|---|---|---|
| נתב | /etc/rc.d/init.d/functions |
נתב הגבולות משתמש בנתב NGINX ונדרשת לו גישת קריאה אל
אם תהליך האבטחה שלכם מחייב אתכם להגדיר הרשאות ב- אפשר להגדיר את ההרשאות ל-744 כדי לאפשר גישת קריאה ל- |
| מטפל בבעלי חיים | /dev/random |
ספריית הלקוח Zookeeper דורשת הרשאת קריאה למחולל המספרים האקראיים
/dev/random. אם /dev/random חסום בקריאה, יכול להיות ששירות Zookeeper לא יופעל. |
Cassandra
כל הצמתים של Cassandra צריכים להיות מחוברים לטבעת. Cassandra מאחסנת עותקים של נתונים בכמה צמתים כדי להבטיח אמינות ועמידות בפני תקלות. שיטת השכפול של כל מרחב מפתחות Edge קובעת את צמתי Cassandra שבהם ממוקמות רפליקות. מידע נוסף זמין במאמר About Cassandra replication factor and consistency level.
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 apigee soft nproc 32768 apigee hard nproc 65536
מידע נוסף מופיע במאמר Recommended production settings (הגדרות מומלצות לייצור) במסמכי התיעוד של Apache Cassandra.
- בצמתים של מעבד בקשות, מגדירים את המספר המקסימלי של מתארים של קבצים פתוחים ל-64K ב-
/etc/security/limits.d/90-apigee-edge-limits.conf, כמו שמוצג בהמשך:apigee soft nofile 32768 apigee hard nofile 65536
במקרה הצורך, אפשר להגדיל את המגבלה הזו. לדוגמה, אם יש לכם מספר גדול של קבצים זמניים שפתוחים בכל רגע נתון.
אם מוצגת השגיאה הבאה בנתב או במעבד הודעות
system.log, יכול להיות שהמגבלות של מתאר הקובץ מוגדרות נמוך מדי:"java.io.IOException: Too many open files"
כדי לבדוק את מכסות המשתמשים, מריצים את הפקודה:
# su - apigee $ ulimit -n 100000
אם אתם עדיין מגיעים למגבלות של קבצים פתוחים אחרי שהגדרתם את המגבלות של מתאר הקבצים ל-
100000, פתחו כרטיס תמיכה בתמיכה של Apigee Edge כדי לקבל עזרה נוספת בפתרון הבעיה.
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 דורשת קובץ רישיון ייחודי שמתקבל מ-Apigee. תצטרכו לציין את הנתיב לקובץ הרישיון כשמתקינים את שרת הניהול, למשל /tmp/license.txt.
תוכנת ההתקנה מעתיקה את קובץ הרישיון אל
/opt/apigee/customer/conf/license.txt.
אם קובץ הרישיון תקין, שרת הניהול מאמת את התפוגה ואת מספר מעבדי ההודעות (MP) המותרים. אם אחת מהגדרות הרישיון פגות, אפשר למצוא את היומנים במיקום הבא: /opt/apigee/var/log/edge-management-server/logs.
במקרה כזה, אפשר לפנות אל התמיכה של Apigee Edge כדי לקבל פרטים על ההעברה.
אם עדיין אין לכם רישיון, אתם יכולים לפנות למחלקת המכירות של Apigee.