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

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

ב-Edge for Private Cloud, חלק מקובצי היומן הראשיים בכל apigee מוגדרים עם מנגנון ברירת מחדל לרוטציה. לדוגמה, בשקף רכיב מעבד הודעות, הקבצים הבאים מוגדרים עם סבב ברירת מחדל מנגנון שימוש ב-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, אפשר לקרוא את המאמר logהשבתה ידנית.
  • אם לא מכירים את ההגדרות של crontab, אפשר לקרוא את המאמר crontab manual.

הפעלה של סיבובי יומנים

החל מגרסה 4.52 של Edge ל-Cloud פרטי, כשמתקינים edge-* רכיב, ערך crontab עבור סבב ביומן הזה נוצר אוטומטית ב-crontab של המשתמש apigee. משימת ה-cron הזו פועלת בכל שעה כברירת מחדל, ומשתמש בכלי logrotate כדי לסובב יומנים. אם מספר edge-* מותקנים באותו צומת (לדוגמה, בהתקנה מלאה, שהנתב ומעבד ההודעות מותקנים בצומת אחד), לכל רכיב תהיה רשומת cron משלו עבור שמחליפים את היומנים התואמים שלו.

הערות:

  • אם במהלך ההתקנה של רכיב edge-*, לא רוצים לבצע יגדיר אוטומטית logrotate cronjob, מגדירים את הדגל 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 של מעבד הודעות קצה, מריצים את:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -s

הצגת רכיב הגדרה של logrotate

בקובץ אפשר למצוא את ההגדרה logrotate של הרכיב $APIGEE_ROOT/<component>/logrotate/logrotate.conf. לדוגמה, במקרה של מעבד הודעות קצה, התצורה logrotate של הצומת יכולה להיות נמצא ב-$APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

הפעלת cron logrotate של רכיב

$APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

לדוגמה, כדי להפעיל את ה-cron logrotate של מעבד הודעות קצה, מריצים את:

$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 במעבד הודעות קצה, מריצים את:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -d

שינוי לוח הזמנים של cron של פקודת logrotate ספציפית

בצומת שבו רוצים לשנות את לוח הזמנים של 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 של מעבד הודעות קצה, צריך להזין:

$APIGEE_ROOT/apigee-service/bin/apigee-service edge-message-processor logrotate -e

כדי לוודא שהשינויים הוחלו, יש לבדוק רשומות cron או להציג את רשומת cron אחת (logrotate).

logrotate הגדרות נוספות

בדומה לשלבים שצוינו בקטע שלמעלה לשינוי לוח הזמנים של cron, אפשר לשנות גם תצורות נוספות. הטבלה הבאה מתארת את התצורות האלה:

תצורה תיאור
conf_logrotate_bin_location המיקום של הקובץ הבינארי ל-Logרוט ברירת מחדל: /usr/sbin/logrotate
conf_logrotate_status_file סטטוס זמן הריצה של יומן הרוטציה בקובץ הסטטוס של הקובץ – להצגה יש הרשאות קריאה/כתיבה למשתמש אחד (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 הגדרה שקובעת אם לדחוס קבצים מסובבים. ברירת המחדל: 'דחיסה'
conf_logrotate_compress_type סוג הדחיסה. ברירת המחדל: delayדחיסה. דחיית דחיסה של לסבב הבא של הרוטציה ביומן, של הקובץ האחרון שסובב.
conf_logrotate_size מגבלת גודל יומן לסיבוב. ברירת מחדל: '10M'

שימוש במנגנון משלכם לסבב יומנים ו-cron

אם ההגדרות לא עומדות בדרישות לרוטציה של <component>.log שמסופקים על ידי Apigee, משתמשים במנגנון משלכם לרוטציית יומנים באמצעות כלים כמו Logרוט או אחרים. לדוגמה, ההגדרות שניתנות על ידי 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 דומה כדי לבצע סיבוב יומנים.