הפעלת סיבוב יומן עבור רכיבי Edge

החלפת יומנים – התהליך של החלפת כמה קובצי יומן בשימוש ומחוץ לשימוש – מפשטת את הניהול של מערכות שיוצרות מספר גדול של קובצי יומן. החלפת יומנים מאפשרת החלפה, דחיסה, הסרה ושליחה אוטומטית של קובצי יומן.

ב-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.

לפני שמתחילים

הפעלת החלפת יומנים

החל מגרסה 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 * * * *

כדי להגדיר את שינוי הגדרת ברירת המחדל:

  1. מוודאים שהמשתמש apigee יכול לקרוא את הקובץ.
  2. מחילים את לוח הזמנים החדש של 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//logrotate/logrotate.cron. לדוגמה, במקרה של edge-message-processor, הקובץ הזה נקרא $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. הקובץ הזה כולל גם את רשומת ה-cron וגם את הפקודה ש-Apigee מריצה כדי להחליף את היומנים. אם אתם רוצים להשתמש ב-logrotate אבל לא רוצים להשתמש בהגדרות של Apigee, אתם יכולים ליצור קובץ תצורה משלכם ל-logrotate ולהשתמש בפקודה דומה של logrotate כדי לבצע החלפת יומנים.