רוטציית יומנים – התהליך של רוטציה של מספר קובצי יומן כניסה או מחוץ לשימוש – שמפשט את הניהול של מערכות ליצור מספר גדול של קובצי יומן. סיבוב היומנים מאפשר סיבוב אוטומטי, דחיסה, הסרה ודיוור של קובצי יומן.
ב-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-*, לא רוצים לבצע יגדיר אוטומטיתlogrotatecronjob, מגדירים את הדגל ENABLE_LOGROTATE=n בקובץ התצורה השקט שבו משתמשים להתקנה. אם משימת ה-cron לא מוגדרת במהלך ההתקנה, אפשר להגדיר אותה מאוחר יותר על ידי ביצוע השלבים הפעלת cronlogrotateשל רכיב. - לרכיב
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 * * * *
כדי להגדיר את שינוי ההגדרות האישיות:
- חשוב לוודא שהמשתמש
apigeeקריא את הקובץ. - מחילים את לוח הזמנים החדש של 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/ לדוגמה, במקרה של
edge-message-processor, הקובץ הזה נקרא
$APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. הקובץ הזה
כוללת גם את רשומת ה-cron וגם את הפקודה שמופעלת על ידי Apigee לרוטציית יומנים. אם
רוצים להשתמש ב-logrotate אבל לא רוצים להשתמש בהגדרות של Apigee, אפשר ליצור
הבעלים של logrotate
של קובץ התצורה ולהשתמש בפקודת logrotate דומה כדי לבצע סיבוב יומנים.