דרישות חומרה
כדי להגדיר תשתית זמינה מאוד בסביבת ייצור, צריך לעמוד בדרישות המינימליות הבאות לחומרה.
בסרטון הבא מפורטות הנחיות כלליות לגבי גודל ההתקנה:
בטבלאות הבאות מפורטות דרישות החומרה המינימליות לרכיבי ההתקנה בכל תרחישי ההתקנה שמתוארים במאמר טופולוגיות של התקנה.
בטבלאות האלה, הדרישות לגבי הכונן הקשיח הן בנוסף לשטח הכונן הקשיח שנדרש על ידי מערכת ההפעלה. יכול להיות שההתקנה תדרוש יותר או פחות משאבים מהרשימה שלמטה, בהתאם לאפליקציות ולתנועת הרשת.
רכיב התקנה | RAM | CPU | כונן קשיח מינימלי |
---|---|---|---|
Cassandra (עצמאי) | 16GB | 8 ליבות | נפח אחסון מקומי של 250GB עם כונן SSD שתומך ב-2,000 IOPS |
Cassandra/Zookeeper באותה מכונה | 16GB | 8 ליבות | נפח אחסון מקומי של 250GB עם כונן SSD שתומך ב-2,000 IOPS |
מעבד הודעות/נתב באותו מחשב | 16GB | 8 ליבות | 100GB |
מעבד הודעות (עצמאי) | 16GB | 8 ליבות | 100GB |
נתב (כרישיון נפרד) | 8GB | 8 ליבות | 100GB |
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) | 8GB | 4 ליבות | אחסון מקומי בנפח 30GB עד 50GB עם SSD
גודל התור שמוגדר כברירת מחדל ב-Qpid הוא 1GB, ואפשר להגדיל אותו ל-2GB. אם אתם צריכים קיבולת נוספת, תוכלו להוסיף עוד צמתים של Qpid. |
SymasLDAP/UI/Management Server | 8GB | 4 ליבות | 60GB |
ממשק משתמש/שרת ניהול | 4GB | 2 ליבות | 60GB |
SymasLDAP (עצמאי) | 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) | 8GB | 4 ליבות | אחסון מקומי של 40GB עד 500GB עם SSD או HDD מהיר
להתקנות עם יותר מ-250 עסקאות לשנייה, מומלץ להשתמש בכונן HDD עם אחסון מקומי שתומך ב-1,000 פעולות קלט/פלט לשנייה. |
דרישות רוחב הפס ברשת של Cassandra
Cassandra משתמשת בפרוטוקול Gossip כדי להעביר מידע לצמתים אחרים על טופולוגיית הרשת. השימוש ב-Gossip, בשילוב עם האופי המבוזר של Cassandra – שכולל תקשורת עם כמה צמתים לפעולות קריאה וכתיבה – מוביל להעברת נתונים משמעותית ברשת.
ב-Cassandra נדרש רוחב פס מינימלי של 1 Gbps לכל צומת. לצורך התקנות של מוצרים, מומלץ להשתמש ברוחב פס גבוה יותר.
זמן האחזור המקסימלי או האחוזון ה-99 של Cassandra צריך להיות מתחת ל-100 מילישניות.
דרישות מערכת הפעלה ותוכנות צד שלישי
הוראות ההתקנה וקבצי ההתקנה שסופקו נבדקו במערכות ההפעלה ובתוכנות של צד שלישי שמפורטות בתוכנות נתמכות וגרסאות נתמכות.
דרישה מוקדמת: הפעלת מאגר EPEL
לפני שממשיכים בהתקנה, מוודאים שהמאגר EPEL (חבילות נוספות ל-Enterprise Linux) מופעל. משתמשים בפקודות הבאות בהתאם לגרסת מערכת ההפעלה:
- ב-Red Hat/CentOS/Oracle 8.X:
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo rpm -ivh epel-release-latest-8.noarch.rpm
- ב-Red Hat/CentOS/Oracle 9.X:
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
sudo rpm -ivh epel-release-latest-9.noarch.rpm
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.53.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
הגדרת רשת
מומלץ לבדוק את הגדרות הרשת לפני ההתקנה. התוכנה להתקנה מניחה שלכל המחשבים יש כתובות 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 יכולים לחסום תקשורת של חלק מהיציאות ולהשפיע על ההתקנה של SymasLDAP, Postgres ו-Cassandra. בצמתים האלה, בודקים את /etc/hosts.allow
ואת /etc/hosts.deny
כדי לוודא שאין הגבלות על היציאות הנדרשות של SymasLDAP, Postgres ו-Cassandra.
iptables
מוודאים שאין מדיניות של iptables שמונעת קישוריות בין הצמתים ביציאות ה-Edge הנדרשות. במקרה הצורך, אפשר לעצור את iptables במהלך ההתקנה באמצעות הפקודה:
sudo/etc/init.d/iptables stop
גישה לספרייה
בטבלה הבאה מפורטים ספריות בצמתי Edge שיש להן דרישות מיוחדות מתהליכי Edge:
שירות | ספרייה | תיאור |
---|---|---|
נתב | /etc/rc.d/init.d/functions |
נתב Edge משתמש בנתב Nginx ונדרשת לו הרשאת קריאה ל- אם תהליך האבטחה שלכם מחייב אתכם להגדיר הרשאות ב- אפשר להגדיר את ההרשאות ל-744 כדי לאפשר גישת קריאה ל- |
מטפל בבעלי חיים | /dev/random |
ספריית הלקוח Zookeeper דורשת הרשאת קריאה למחולל המספרים האקראיים
/dev/random . אם /dev/random חסום בקריאה, יכול להיות שהשירות Zookeeper לא יופעל. |
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_name
initial_token
partitioner
seeds
listen_address
rpc_address
snitch
מסד נתונים של 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
הגדרת שילוב של שפה ואזור ב-Rocky 9.X
אם אתם משתמשים ב-Rocky 9.X, ודאו שהמערכת מוגדרת עם LANG=en_US.utf8
בהגדרות הלוקאל של המערכת. כדי להגדיר את האפשרות הזו, מריצים את הפקודות הבאות:
dnf -y -q install langpacks-en localectl set-locale LANG=en_US.utf8 reboot
מגבלות מערכת
חשוב לוודא שהגדרתם את מגבלות המערכת הבאות בצמתי Cassandra ו-Message Processor:
- בצמתים של Cassandra, מגדירים את המגבלות של soft ו-hard 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
- בצמתים של מעבד ההודעות, מגדירים את המספר המקסימלי של מתארים פתוחים של קבצים ל-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) היא קבוצה של ספריות שתומכות בפיתוח של אפליקציות לקוח ושרת עם אבטחה מופעלת. צריך לוודא שהתקנתם את NSS בגרסה 3.19 ואילך.
כדי לבדוק את הגרסה הנוכחית:
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 ב-RHEL 8 ואילך
אם אתם מתקינים את Edge ב-RHEL 8 או בגרסאות חדשות יותר ב-Google Cloud Platform, אתם צריכים להשבית את IPv6 בכל צמתי Qpid.
הוראות להשבתת IPv6 מופיעות בתיעוד שספק מערכת ההפעלה סיפק. לדוגמה, אפשר למצוא מידע רלוונטי בתיעוד של Red Hat Enterprise Linux.
כלים
תוכנת ההתקנה משתמשת בכלים הבאים של UNIX בגרסה הרגילה כפי שסופקה על ידי EL5 או EL6.
awk |
expr |
libxslt |
RPM |
לפתוח קובץ ZIP |
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
או בכלי מקביל כדי לבדוק אם השעונים בשרתים מסונכרנים. לדוגמה, אפשר להשתמש בפקודה yum install ntp
או בפקודה מקבילה כדי להתקין את כלי השירות. האפשרות הזו שימושית במיוחד לשכפול הגדרות LDAP. חשוב לשים לב שצריך להגדיר את אזור הזמן של השרת ל-UTC.
חומות אש ומארחים וירטואליים
המונח virtual
משמש בדרך כלל למגוון רחב של מטרות בתחום ה-IT, וכך גם בהקשר של פריסה ומארחים וירטואליים ב-Apigee Edge לענן פרטי. כדי להבהיר, יש שני שימושים עיקריים במונח 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 שפועל בכל אחת משתי המכונות הווירטואליות. נתבי ה-API חושפים נקודות קצה של מארחים וירטואליים, כמו בדוגמה ההיפותטית הזו:
נתב 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
ב-VM1 ו-111.111.111.222
ב-VM2). הפונקציה הזו ספציפית להתקנה שלכם, והיא מוגדרת על ידי קבוצת הרשתות המקומיות.
נתיב הבסיס מוגדר כשפורסים 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.