החלפת יומנים – התהליך של החלפת כמה קובצי יומן בשימוש ומחוץ לשימוש – מפשטת את הניהול של מערכות שיוצרות מספר גדול של קובצי יומן. החלפת יומנים מאפשרת החלפה, דחיסה, הסרה ושליחה אוטומטית של קובצי יומן.
ב-Edge for Private Cloud, חלק מקובצי היומן הראשיים בכל רכיב apigee מוגדרים עם מנגנון רוטציה שמוגדר כברירת מחדל. לדוגמה, ברכיב Message Processor, הקבצים הבאים מוגדרים עם מנגנון רוטציה שמוגדר כברירת מחדל באמצעות logback:
/opt/apigee/var/log/edge-message-processor/logs/system.log/opt/apigee/var/log/edge-message-processor/logs/events.log/opt/apigee/var/log/edge-message-processor/logs/startupruntimeerrors.log/opt/apigee/var/log/edge-message-processor/logs/configurations.log/opt/apigee/var/log/edge-message-processor/logs/transactions.log
יש קבצים דומים לרכיבים אחרים של edge-* (שהשמות שלהם מתחילים ב-edge-), כמו edge-management-server, edge-router, edge-postgres-server ו-edge-qpid-server.
edge-* יוצר גם קובץ יומן נוסף, שהוא פלט מנותב מחדש של מסוף הרכיב המתאים. במקרה של הרכיב מעבד בקשות, הקובץ נקרא /opt/apigee/var/log/edge-message-processor/edge-message-processor.log.
רכיבים אחרים של edge-* יוצרים קובץ דומה. הרוטציה של הקבצים האלה לא מתבצעת על ידי ספריית logback, אלא באמצעות logrotate ו-crontab.
לפני שמתחילים
- אם אתם לא מכירים את ההגדרות של
logrotate, קראו את המדריך של logrotate. - אם אתם לא מכירים את ההגדרות של
crontab, קראו את המדריך של crontab.
הפעלת החלפת יומנים
החל מגרסה 4.52 של Edge for Private Cloud, כשמתקינים רכיב edge-*, נוצרת באופן אוטומטי רשומת crontab לרוטציה של היומן הזה ב-crontab של המשתמש apigee. משימת ה-cron הזו פועלת כל שעה כברירת מחדל, ומשתמשת בכלי logrotate כדי לבצע רוטציה של היומנים. אם כמה רכיבים של edge-* מותקנים באותו צומת (לדוגמה, בהתקנה של All-in-One, או אם הנתב ומעבד הבקשות מותקנים בצומת אחד), לכל רכיב תהיה רשומת cron משלו לרוטציה של היומנים המתאימים.
הערות:
- אם במהלך ההתקנה של רכיב
edge-*אתם לא רוצים להגדיר באופן אוטומטי משימת cron שלlogrotate, הגדירו את הדגל ENABLE_LOGROTATE=n בקובץ התצורה השקט שבו אתם משתמשים להתקנה. אם משימת ה-cron לא מוגדרת במהלך ההתקנה, אפשר להגדיר אותה מאוחר יותר לפי השלבים להפעלת cron של רכיבlogrotate. - לרכיב
edge-router, מוגדרת כברירת מחדל גם משימת cron נוספת שלlogrotate. ה-cron הזה מחליף את יומני הגישה והשגיאות שנוצרו על ידי Nginx.
בדוגמאות הבאות מוצגות הגדרות שונות ופעולות ניהוליות שאפשר לבצע.
הצגת רשומות cron בצומת
sudo crontab -u apigee -l
הצגת רשומת cron של logrotate ברכיב
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -s
לדוגמה, כדי להציג את ה-cron של logrotate ב-edge-message-processor, מריצים את הפקודה:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -s
הצגת ההגדרה של logrotate ברכיב
אפשר למצוא את ההגדרות של logrotate בקובץ $APIGEE_ROOT/<component>/logrotate/logrotate.conf.
לדוגמה, במקרה של edge-message-processor, אפשר למצוא את ההגדרה logrotate של הצומת ב-$APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.
הפעלת cron של logrotate ברכיב
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e
לדוגמה, כדי להפעיל את ה-cron של logrotate ב-edge-message-processor, מריצים את הפקודה:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e
השבתת ה-cron של logrotate ברכיב
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -d
לדוגמה, כדי להשבית את ה-cron של logrotate ב-edge-message-processor, מריצים את:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -d
שינוי לוח הזמנים של cron לפקודת logrotate מסוימת
בצומת שבו רוצים לשנות את לוח הזמנים של cron ב-logrotate, פותחים את קובץ שינוי ההגדרות של הרכיב הרלוונטי. בטבלה הבאה מפורטים קובצי שינוי ההגדרות של הרכיב edge-*:
| רכיב | קובץ שינוי הגדרות אישיות |
|---|---|
edge-message-processor |
$APIGEE_ROOT/customer/application/message-processor.properties |
edge-management-server |
$APIGEE_ROOT/customer/application/management-server.properties |
edge-router |
$APIGEE_ROOT/customer/application/router.properties |
edge-postgres-server |
$APIGEE_ROOT/customer/application/postgres-server.properties |
edge-qpid-server |
$APIGEE_ROOT/customer/application/qpid-serverproperties |
פותחים את קובץ שינוי ההגדרות המתאים ומגדירים את שינוי ההגדרות הבא. בדוגמה הבאה, משימת ה-cron מוגדרת לפעול בדקה ה-0 של כל שעה.
conf_logrotate_cron_duration=0 * * * *
כדי להגדיר את שינוי הגדרת ברירת המחדל:
- מוודאים שהמשתמש
apigeeיכול לקרוא את הקובץ. - מחילים את לוח הזמנים החדש של cron על הרכיב:
$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e
לדוגמה, כדי להחיל לוח זמנים חדש יותר של cron על logrotate של edge-message-processor, מזינים:
$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e
כדי לוודא שהשינויים בוצעו, בודקים את רשומות ה-cron או את רשומת ה-cron של הרכיב logrotate.
הגדרות נוספות של logrotate
בדומה לשלבים שמופיעים בקטע שלמעלה לשינוי לוח הזמנים של cron, אפשר גם לשנות הגדרות נוספות. בטבלה הבאה מתוארות ההגדרות האלה:
| הגדרות אישיות | תיאור |
|---|---|
conf_logrotate_bin_location |
המיקום של הקובץ הבינארי של logrotate. ברירת המחדל: /usr/sbin/logrotate |
conf_logrotate_status_file |
קובץ סטטוס שמתעד את סטטוס זמן הריצה של logrotate – צריך הרשאות קריאה/כתיבה למשתמש apigee. ברירת המחדל: $APIGEE_ROOT/var/run/<component>/logrotate.status |
conf_logrotate_logs |
אילו יומנים להעביר לסבב. השם יכול לכלול תווים כלליים לחיפוש. ברירת המחדל:
$APIGEE_ROOT/var/log/<component>/<component>.log
|
conf_logrotate_rotate |
מספר הסיבובים. ברירת המחדל: "5" |
conf_logrotate_compress |
אם לדחוס קבצים שעברו רוטציה. ברירת המחדל: "compress" |
conf_logrotate_compress_type |
סוג הדחיסה. ברירת המחדל: "delaycompress". דחיית הדחיסה של קובץ היומן האחרון שעבר רוטציה למחזור הבא של logrotate. |
conf_logrotate_size |
מגבלת הגודל של היומן לרוטציה. ברירת המחדל: "10M" |
שימוש במנגנון החלפת יומנים משלכם וב-cron
אם הדרישות שלכם להחלפת הקובץ <component>.log לא מתקיימות בהגדרות האישיות שסופקו על ידי Apigee, אתם יכולים להשתמש במנגנון משלכם להחלפת יומנים באמצעות כלים כמו logrotate או כלים אחרים. לדוגמה, ההגדרות ש-Apigee מספקת מאפשרות לכם להחליף את היומנים לפי גודל, אבל אתם רוצים להחליף את היומנים לפי תאריך/שעה או גורמים אחרים. במקרים כאלה, צריך להשבית את ה-cron של logrotate שסופק על ידי Apigee ולהגדיר משימות cron משלכם לפי הצורך.
אם אתם צריכים לעיין ברשומת ה-cron של החלפת היומנים של Apigee, היא נמצאת בקובץ $APIGEE_ROOT/. לדוגמה, במקרה של edge-message-processor, הקובץ הזה נקרא $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. הקובץ הזה כולל גם את רשומת ה-cron וגם את הפקודה ש-Apigee מריצה כדי להחליף את היומנים. אם אתם רוצים להשתמש ב-logrotate אבל לא רוצים להשתמש בהגדרות של Apigee, אתם יכולים ליצור קובץ תצורה משלכם ל-logrotate ולהשתמש בפקודה דומה של logrotate כדי לבצע החלפת יומנים.