שימוש בהחלפת יומנים ביומנים עצמיים של סוכן תפעול

סוכן התפעול כותב לקובץ יומן שנקרא logging-module.log. כשהסוכן פועל ללא השגחה במשך תקופות ארוכות או כשמתרחשת בעיה, קובץ הרישום העצמי הזה יכול לתפוס את כל נפח האחסון הזמין. במסמך הזה נסביר איך להשתמש בהחלפת יומנים כדי למנוע את הבעיה הזו.

בגרסה 2.31.0 של סוכן תפעול נוספה תכונה חדשה של החלפת יומנים, שאפשר להגדיר אותה בסוכן. אם אתם מריצים את סוכן התפעול בגרסה 2.31.0 ומעלה, אתם יכולים להשתמש בתכונה המובנית של החלפת יומנים. מידע נוסף זמין במאמר הגדרת החלפת יומנים בסוכן התפעול.

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

הגדרת החלפת יומנים בסוכן תפעול

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

הגדרות ברירת מחדל

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

  default_self_log_file_rotation:
    enabled: true
    max_file_size_megabytes: 400
    backup_count: 1

ההגדרה default_self_log_file_rotation כוללת שלוש אפשרויות:

  • enabled: האם מופעלת החלפת יומנים. ברירת המחדל היא true.
  • max_file_size_megabytes: הגודל המקסימלי שאליו יכול להגיע קובץ היומן לפני שהוא מגובה על ידי רוטציה של יומנים. הגודל נמדד במגה-בייט (1,0242 בייטים). ברירת המחדל היא 400, והערך המינימלי התקין הוא 1.
  • backup_count: מספר קובצי היומן הישנים שיישארו. ברירת המחדל היא 1, הערך המינימלי התקין הוא 1.

הגדרת החלפת יומנים על ידי המשתמש

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

  • ב-Linux: /etc/google-cloud-ops-agent/config.yaml
  • ב-Windows: C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml

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

logging:  ...
metrics:  ...
global:
  default_self_log_file_rotation:
    enabled: true
    max_file_size_megabytes: 400
    backup_count: 1

הגדרות לדוגמה

כדי להשבית את החלפת יומנים באמצעות סוכן תפעול, מציינים את האפשרות enabled עם הערך false:

logging:  ...
metrics:  ...
global:
  default_self_log_file_rotation:
    enabled: false

כדי לסובב את היומן כשקובץ היומן מגיע ל-20MB ולשמור 5 גיבויים (6 קבצים בסך הכול):

logging:  ...
metrics:  ...
global:
  default_self_log_file_rotation:
    max_file_size_megabytes: 20
    backup_count: 5

כדי לבצע רוטציה של היומן כשקובץ היומן מגיע ל-2,000MB‏ (2GB) ולשמור גיבוי אחד (2 קבצים בסך הכול):

logging:  ...
metrics:  ...
global:
  default_self_log_file_rotation:
    max_file_size_megabytes: 2000

כדי לסובב את היומן כשקובץ היומן מגיע ל-400MB ולשמור 2 גיבויים (3 קבצים בסך הכול):

logging:  ...
metrics:  ...
global:
  default_self_log_file_rotation:
    backup_count: 2

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

הגדרה של רוטציה של קובצי יומן עצמיים במכונות וירטואליות של Linux

כדי להגביל את הגודל של יומן הרישום של סוכן המשנה בנתיב /var/log/google-cloud-ops-agent/subagents/logging-module.log, צריך להתקין ולהגדיר את כלי השירות logrotate.

  1. מריצים את הפקודה הבאה כדי להתקין את כלי השירות logrotate:

    ב-Debian וב-Ubuntu

    sudo apt install logrotate
    

    ב-CentOS, ‏ RHEL ו-Fedora

    sudo yum install logrotate
    
  2. יוצרים קובץ תצורה logrotate במיקום /etc/logrotate.d/google-cloud-ops-agent.conf.

    sudo tee /etc/logrotate.d/google-cloud-ops-agent.conf > /dev/null << EOF
    # logrotate config to rotate Google Cloud Ops Agent self log file.
    # See https://manpages.debian.org/jessie/logrotate/logrotate.8.en.html for
    # the full options.
    /var/log/google-cloud-ops-agent/subagents/logging-module.log
    {
        # Log files are rotated every day.
        daily
        # Log files are rotated this many times before being removed. This
        # effectively limits the disk space used by the Ops Agent self log files.
        rotate 30
        # Log files are rotated when they grow bigger than maxsize even before the
        # additionally specified time interval
        maxsize 256M
        # Skip rotation if the log file is missing.
        missingok
        # Do not rotate the log if it is empty.
        notifempty
        # Old versions of log files are compressed with gzip by default.
        compress
        # Postpone compression of the previous log file to the next rotation
        # cycle.
        delaycompress
    }
    EOF
    
  3. מגדירים את crontab או את systemd timer להפעלת כלי השירות logrotate באופן תקופתי.

אחרי שהחלפת היומן תיכנס לתוקף, תראו קבצים שהוחלפו בספרייה /var/log/google-cloud-ops-agent/subagents/. התוצאות אמורות להיראות כך:

/var/log/google-cloud-ops-agent/subagents$ ls -lh
total 24K
-rw-r--r-- 1 root root  717 Sep  3 19:54 logging-module.log
-rw-r--r-- 1 root root 6.8K Sep  3 19:51 logging-module.log.1
-rw-r--r-- 1 root root  874 Sep  3 19:50 logging-module.log.2.gz
-rw-r--r-- 1 root root  873 Sep  3 19:50 logging-module.log.3.gz
-rw-r--r-- 1 root root 3.2K Sep  3 19:34 logging-module.log.4.gz

כדי לבדוק את החלפת היומנים:

  1. כדי להקטין באופן זמני את גודל הקובץ שמפעיל את הרוטציה, צריך להגדיר את הערך maxsize ל-1k בקובץ /etc/logrotate.d/google-cloud-ops-agent.conf.

  2. מפעילים את קובץ היומן של הסוכן כך שיהיה גדול מ-1K על ידי הפעלה מחדש של הסוכן כמה פעמים:

    sudo service google-cloud-ops-agent restart
    
  3. מחכים עד שההגדרה crontab או systemd timer תיכנס לתוקף כדי להפעיל את כלי השירות logrotate, או מפעילים את כלי השירות logrotate באופן ידני על ידי הפעלת הפקודה הבאה:

    sudo logrotate /etc/logrotate.d/google-cloud-ops-agent.conf
    
  4. מוודאים שרואים קבצים מסובבים של יומנים בספרייה /var/log/google-cloud-ops-agent/subagents/.

  5. כדי לאפס את ההגדרה של רוטציית היומנים, משחזרים את הערך המקורי של maxsize.