Menggunakan rotasi log untuk log mandiri Agen Operasional

Agen Ops menulis ke file log yang disebut logging-module.log. Saat agen berjalan tanpa pengawasan dalam waktu lama atau saat terjadi masalah, file "log mandiri" ini dapat menghabiskan semua ruang disk yang tersedia. Dokumen ini menjelaskan cara menggunakan rotasi log untuk mencegah masalah ini.

Ops Agent versi 2.31.0 memperkenalkan fitur rotasi log yang dapat dikonfigurasi dan terintegrasi dengan agen. Jika menjalankan Ops Agent versi 2.31.0 atau yang lebih baru, Anda dapat menggunakan fitur rotasi log bawaan; lihat Mengonfigurasi rotasi log di Ops Agent.

Anda juga dapat mengelola rotasi log secara manual. Anda mungkin memerlukan proses manual jika menggunakan versi Agen Operasi tanpa rotasi log bawaan, atau jika Anda lebih suka memutar log secara manual. Lihat Menyiapkan rotasi file log mandiri di VM Linux untuk mengetahui salah satu kemungkinan pendekatan.

Mengonfigurasi rotasi log di Agen Operasional

Bagian ini menjelaskan cara mengubah konfigurasi rotasi log default yang digunakan oleh Ops Agent untuk memutar log secara otomatis. Untuk menggunakan fitur ini, Anda memerlukan Ops Agent versi 2.31.0 atau yang lebih baru.

Konfigurasi default

Agen Operasi menggunakan entri default_self_log_file_rotation untuk mengonfigurasi rotasi log. Entri konfigurasi ini menggunakan tiga opsi; cuplikan berikut menunjukkan opsi dan nilai defaultnya:

  default_self_log_file_rotation:
    enabled: true
    max_file_size_megabytes: 400
    backup_count: 1

Konfigurasi default_self_log_file_rotation menggunakan tiga opsi:

  • enabled: Apakah rotasi log diaktifkan; defaultnya adalah true.
  • max_file_size_megabytes: Ukuran maksimum yang dapat dicapai file log sebelum dicadangkan oleh rotasi log. Diukur dalam megabyte (10242 byte). Default adalah 400, nilai minimum yang valid adalah 1.
  • backup_count: Jumlah file log lama yang akan dipertahankan. Default adalah 1, nilai minimum yang valid adalah 1.

Konfigurasi pengguna untuk rotasi log

Untuk mengubah konfigurasi rotasi log default, Anda mengganti konfigurasi tersebut dengan menentukan ulang konfigurasi dalam file konfigurasi pengguna Ops Agent:

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

Untuk mengonfigurasi rotasi log di Ops Agent, tambahkan bagian global ke file konfigurasi pengguna dan sertakan elemen konfigurasi default_self_log_file_rotation di bagian global. Anda mungkin sudah memiliki pipeline logging atau metrik dalam file konfigurasi ini; tambahkan bagian global setelah pipeline Anda. Hasilnya, yang menentukan semua opsi dan nilai default, akan terlihat seperti berikut:

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

Contoh konfigurasi

Untuk menonaktifkan rotasi log oleh Agen Operasi, tentukan opsi enabled dengan nilai false:

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

Untuk merotasi log saat file log mencapai 20 MB dan menyimpan 5 cadangan (total 6 file):

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

Untuk merotasi log saat file log mencapai 2.000 MB (2 GB) dan menyimpan 1 cadangan (total 2 file):

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

Untuk merotasi log saat file log mencapai 400 MB dan menyimpan 2 cadangan (total 3 file):

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

Jika Anda sering melakukan perubahan saat meningkatkan kualitas konfigurasi rotasi log, jangan lupa untuk memulai ulang agen untuk menerapkan perubahan Anda.

Menyiapkan rotasi file log mandiri di VM Linux

Untuk membatasi ukuran log sub-agen logging di /var/log/google-cloud-ops-agent/subagents/logging-module.log, instal dan konfigurasi utilitas logrotate.

  1. Instal utilitas logrotate dengan menjalankan perintah berikut:

    Di Debian dan Ubuntu

    sudo apt install logrotate
    

    Di CentOS, RHEL, dan Fedora

    sudo yum install logrotate
    
  2. Buat file konfigurasi logrotate di /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. Siapkan crontab atau systemd timer untuk memicu utilitas logrotate secara berkala.

Setelah rotasi log diterapkan, Anda akan melihat file yang dirotasi di direktori /var/log/google-cloud-ops-agent/subagents/. Hasilnya akan terlihat mirip dengan output berikut:

/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

Untuk menguji rotasi log, lakukan hal berikut:

  1. Kurangi ukuran file untuk sementara saat rotasi dipicu dengan menetapkan nilai maxsize ke 1k dalam file /etc/logrotate.d/google-cloud-ops-agent.conf.

  2. Memicu file log mandiri agen menjadi lebih besar dari 1 K dengan memulai ulang agen beberapa kali:

    sudo service google-cloud-ops-agent restart
    
  3. Tunggu hingga crontab atau systemd timer diterapkan untuk memicu utilitas logrotate, atau picu utilitas logrotate secara manual dengan menjalankan perintah ini:

    sudo logrotate /etc/logrotate.d/google-cloud-ops-agent.conf
    
  4. Pastikan Anda melihat file log yang dirotasi di direktori /var/log/google-cloud-ops-agent/subagents/.

  5. Reset konfigurasi rotasi log dengan memulihkan nilai maxsize asli.