Mengaktifkan rotasi log untuk komponen Edge

Rotasi log—proses merotasi beberapa file log untuk digunakan dan tidak digunakan— menyederhanakan administrasi sistem yang menghasilkan file log dalam jumlah besar. Rotasi log memungkinkan rotasi, kompresi, penghapusan, dan pengiriman file log secara otomatis.

Di Edge for Private Cloud, beberapa file log utama di setiap komponen apigee dikonfigurasi dengan mekanisme rotasi default. Misalnya, pada komponen Message Processor, file berikut dikonfigurasi dengan mekanisme rotasi default menggunakan 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

File serupa ada untuk komponen edge-* lainnya (yang namanya dimulai dengan edge-), seperti edge-management-server, edge-router, edge-postgres-server, dan edge-qpid-server.

Setiap komponen edge-* ini juga menghasilkan file log tambahan yang merupakan output yang dialihkan dari konsol komponen masing-masing. Dalam kasus komponen Message Processor, file ini disebut /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. Komponen edge-* lainnya menghasilkan file yang serupa. Rotasi file ini tidak dilakukan oleh library logback, melainkan menggunakan logrotate dan crontab.

Sebelum memulai

Mengaktifkan rotasi log

Mulai dari Edge untuk Private Cloud versi 4.52, saat Anda menginstal komponen edge-*, entri crontab untuk merotasi log ini akan otomatis dibuat di crontab pengguna apigee. Cron job ini berjalan setiap jam secara default, dan menggunakan utilitas logrotate untuk merotasi log. Jika beberapa komponen edge-* diinstal pada node yang sama (misalnya, dalam penginstalan all-in-one, atau jika router dan pemroses pesan diinstal pada satu node), setiap komponen akan memiliki entri cron-nya sendiri untuk merotasi log masing-masing.

Catatan:

  • Jika selama penginstalan komponen edge-*, Anda tidak ingin otomatis menyiapkan cronjob logrotate, tetapkan flag “ENABLE_LOGROTATE=n” dalam file konfigurasi otomatis yang Anda gunakan untuk penginstalan. Jika cron job tidak ditetapkan selama penginstalan, Anda dapat menyiapkannya nanti dengan mengikuti langkah-langkah untuk mengaktifkan cron logrotate komponen.
  • Untuk komponen edge-router, cron job logrotate tambahan juga dikonfigurasi secara default. Cron ini merotasi log akses dan error yang dihasilkan oleh Nginx.

Contoh berikut mengilustrasikan berbagai konfigurasi dan operasi administratif yang dapat Anda lakukan.

Melihat entri cron di node

sudo crontab -u apigee -l

Melihat entri cron logrotate komponen

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

Misalnya, untuk melihat cron logrotate edge-message-processor, jalankan:

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

Melihat konfigurasi logrotate komponen

Konfigurasi logrotate komponen dapat ditemukan di file $APIGEE_ROOT/<component>/logrotate/logrotate.conf. Misalnya, dalam kasus edge-message-processor, konfigurasi logrotate node dapat ditemukan di $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

Mengaktifkan cron logrotate komponen

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

Misalnya, untuk mengaktifkan cron logrotate edge-message-processor, jalankan:

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

Menonaktifkan cron logrotate komponen

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

Misalnya, untuk menonaktifkan cron logrotate edge-message-processor, jalankan:

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

Mengubah jadwal cron perintah logrotate tertentu

Pada node tempat Anda ingin mengubah jadwal cron logrotate, buka file penggantian konfigurasi komponen masing-masing. File penggantian konfigurasi komponen edge-* tercantum dalam tabel di bawah:

Komponen File penggantian konfigurasi
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

Buka file penggantian yang sesuai dan tetapkan penggantian konfigurasi berikut. Contoh di bawah mengganti cron job untuk berjalan pada menit ke-0 setiap jam.

conf_logrotate_cron_duration=0 * * * *

Untuk menetapkan penggantian konfigurasi:

  1. Pastikan file dapat dibaca oleh pengguna apigee.
  2. Terapkan jadwal cron yang lebih baru ke komponen:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Misalnya, untuk menerapkan jadwal cron yang lebih baru ke logrotate edge-message-processor, masukkan:

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

Untuk memverifikasi bahwa perubahan telah diterapkan, periksa entri cron atau lihat entri cron logrotate komponen.

Konfigurasi logrotate tambahan

Serupa dengan langkah-langkah yang tercantum di bagian di atas untuk mengubah jadwal cron, Anda juga dapat mengubah konfigurasi tambahan. Tabel di bawah menjelaskan konfigurasi ini:

Konfigurasi Deskripsi
conf_logrotate_bin_location Lokasi biner logrotate. Default: /usr/sbin/logrotate
conf_logrotate_status_file File status yang menangkap status runtime logrotate - menampilkan izin baca/tulis untuk pengguna apigee. Default: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Log yang akan dirotasi. Dapat menyertakan karakter pengganti. Default: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Jumlah rotasi. Default: “5”
conf_logrotate_compress Apakah akan mengompresi file yang dirotasi. Default: “compress”
conf_logrotate_compress_type Jenis kompresi. Default: “delaycompress”. Menunda kompresi file yang dirotasi terbaru ke siklus logrotate berikutnya.
conf_logrotate_size Batas ukuran log untuk rotasi. Default: “10M”

Menggunakan mekanisme rotasi log dan cron Anda sendiri

Jika persyaratan Anda untuk merotasi <component>.log tidak terpenuhi oleh konfigurasi yang disediakan oleh Apigee, Anda dapat menggunakan mekanisme rotasi log Anda sendiri menggunakan alat seperti logrotate atau lainnya. Misalnya, konfigurasi yang disediakan oleh Apigee memungkinkan Anda merotasi log berdasarkan ukuran, tetapi Anda ingin merotasi log berdasarkan tanggal/waktu atau faktor lainnya. Dalam kasus tersebut, Anda harus menonaktifkan cron logrotate yang disediakan oleh Apigee dan menyiapkan cron job Anda sendiri sesuai kebutuhan.

Jika perlu merujuk ke entri cron rotasi log Apigee, Anda dapat menemukannya di file $APIGEE_ROOT//logrotate/logrotate.cron. Misalnya, dalam kasus edge-message-processor, file ini disebut $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. File ini mencakup entri cron dan perintah yang dijalankan oleh Apigee untuk rotasi log. Jika Anda ingin menggunakan logrotate, tetapi tidak ingin menggunakan konfigurasi Apigee, Anda dapat membuat file konfigurasi logrotate sendiri dan menggunakan perintah logrotate yang serupa untuk melakukan rotasi log.