Edge bileşenleri için günlük rotasyonunu etkinleştirme

Log rotasyonu, birden fazla günlük dosyasını kullanıma sokma ve kullanımdan kaldırma işlemidir. Bu işlem, çok sayıda günlük dosyası oluşturan sistemlerin yönetimini kolaylaştırır. Günlük rotasyonu; günlük dosyalarının otomatik olarak döndürülmesini, sıkıştırılmasını, kaldırılmasını ve postalanmasını sağlar.

Edge for Private Cloud'da, her bileşendeki ana günlük dosyalarından bazıları varsayılan bir rotasyon mekanizmasıyla yapılandırılır.apigee Örneğin, Mesaj İşleyici bileşeninde aşağıdaki dosyalar, logback kullanılarak varsayılan bir rotasyon mekanizmasıyla yapılandırılır:

  • /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

Diğer edge-* bileşenleri (adları edge- ile başlayan) için de benzer dosyalar vardır. Örneğin, edge-management-server, edge-router, edge-postgres-server ve edge-qpid-server.

Bu edge-* bileşenlerin her biri, ilgili bileşenin konsolunun yönlendirilmiş bir çıkışı olan ek bir günlük dosyası da oluşturur. Mesaj İşleyici bileşeni için bu dosyanın adı /opt/apigee/var/log/edge-message-processor/edge-message-processor.log şeklindedir. Diğer edge-* bileşenleri benzer bir dosya oluşturur. Bu dosyaların rotasyonu logback kitaplığı tarafından değil, logrotate ve crontab kullanılarak yapılır.

Başlamadan önce

Günlük rotasyonlarını etkinleştirme

Edge for Private Cloud sürüm 4.52'den itibaren, bir edge-* bileşeni yüklediğinizde bu günlüğü rotasyona tabi tutmak için apigee kullanıcısının crontab dizininde otomatik olarak bir crontab girişi oluşturulur. Bu cron işi varsayılan olarak her saat çalışır ve günlükleri rotasyona tabi tutmak için logrotate yardımcı programını kullanır. Aynı düğüme birden fazla edge-* bileşeni yüklenirse (örneğin, hepsi bir arada yüklemede veya yönlendirici ile mesaj işleyici bir düğüme yüklenirse) her bileşenin kendi günlüklerini rotasyona tabi tutmak için kendi cron girişi olur.

Notlar:

  • Bir edge-* bileşeninin yüklenmesi sırasında otomatik olarak bir logrotate cronjob oluşturmak istemiyorsanız yükleme için kullandığınız sessiz yapılandırma dosyanızda "ENABLE_LOGROTATE=n" işaretini ayarlayın. Cron işi, yükleme sırasında ayarlanmazsa daha sonra bir bileşenin logrotate cron'unu etkinleştirme adımlarını uygulayarak ayarlayabilirsiniz.
  • edge-router bileşeni için varsayılan olarak ek bir logrotate cron işi de yapılandırılır. Bu cron, Nginx tarafından oluşturulan erişim ve hata günlüklerini rotasyona tabi tutar.

Aşağıdaki örneklerde, gerçekleştirebileceğiniz çeşitli yapılandırmalar ve yönetim işlemleri gösterilmektedir.

Düğümdeki cron girişlerini görüntüleme

sudo crontab -u apigee -l

Bileşenin logrotate cron girişini görüntüleme

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

Örneğin, edge-message-processor'ın logrotate cron'unu görüntülemek için şunu çalıştırın:

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

Bileşenlerin logrotate yapılandırmasını görüntüleme

Bir bileşenin logrotate yapılandırması $APIGEE_ROOT/<component>/logrotate/logrotate.conf dosyasında bulunabilir. Örneğin, edge-message-processor için düğümün logrotate yapılandırması $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf içinde bulunabilir.

Bir bileşenin logrotate cron'unu etkinleştirme

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

Örneğin, edge-message-processor'ın logrotate cron'unu etkinleştirmek için şunu çalıştırın:

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

Bir bileşenin logrotate cron'unu devre dışı bırakma

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

Örneğin, edge-message-processor'ın logrotate cron'unu devre dışı bırakmak için şu komutu çalıştırın:

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

Belirli bir logrotate komutunun cron planını değiştirme

logrotate cron programını değiştirmek istediğiniz düğümde ilgili bileşenin yapılandırma geçersiz kılma dosyasını açın. edge-* bileşeninin yapılandırma geçersiz kılma dosyaları aşağıdaki tabloda listelenmiştir:

Bileşen Yapılandırma geçersiz kılma dosyası
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

Uygun geçersiz kılma dosyasını açın ve aşağıdaki yapılandırma geçersiz kılma işlemini ayarlayın. Aşağıdaki örnek, cron işini her saatin 0. dakikasında çalışacak şekilde geçersiz kılar.

conf_logrotate_cron_duration=0 * * * *

Yapılandırma geçersiz kılma işlemini ayarlamak için:

  1. Dosyanın apigee kullanıcısı tarafından okunabilir olduğundan emin olun.
  2. Bileşene daha yeni cron programını uygulayın:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Örneğin, edge-message-processor'ın logrotate dosyasına daha yeni bir cron planı uygulamak için şunu girin:

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

Değişikliklerin uygulandığını doğrulamak için cron girişlerini kontrol edin veya bileşenin logrotate cron girişini görüntüleyin.

Ek logrotate yapılandırma

Cron programını değiştirmek için yukarıdaki bölümde listelenen adımlara benzer şekilde, ek yapılandırmaları da değiştirebilirsiniz. Aşağıdaki tabloda bu yapılandırmalar açıklanmaktadır:

Yapılandırma Açıklama
conf_logrotate_bin_location logrotate ikili programının konumu. Varsayılan: /usr/sbin/logrotate
conf_logrotate_status_file logrotate'in çalışma zamanı durumunu yakalayan durum dosyası: apigee kullanıcısı için okuma/yazma izinleri olmalıdır. Varsayılan: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Hangi günlüklerin rotasyona tabi tutulacağı. Joker karakterler içerebilir. Varsayılan: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Rotasyon sayısı. Varsayılan: "5"
conf_logrotate_compress Döndürülen dosyaların sıkıştırılıp sıkıştırılmayacağı. Varsayılan: "compress"
conf_logrotate_compress_type Sıkıştırma türü. Varsayılan: "delaycompress". En son döndürülen dosyanın sıkıştırılmasını bir sonraki logrotate döngüsüne erteler.
conf_logrotate_size Rotasyon için günlük boyutu sınırı. Varsayılan: "10M"

Kendi log rotasyonu mekanizmanızı ve cron'unuzu kullanma

<component>.log dosyasını rotasyona tabi tutma şartlarınız Apigee tarafından sağlanan yapılandırmalarla karşılanmıyorsa logrotate gibi araçları kullanarak kendi log rotasyonu mekanizmanızı kullanırsınız. Örneğin, Apigee tarafından sağlanan yapılandırmalar, günlükleri boyuta göre rotasyona tabi tutmanıza olanak tanır ancak günlükleri tarih/saat veya diğer faktörlere göre rotasyona tabi tutmak isteyebilirsiniz. Bu gibi durumlarda, Apigee tarafından sağlanan logrotate cron'u devre dışı bırakmanız ve gerektiğinde kendi cron işlerinizi ayarlamanız gerekir.

Apigee'nin log rotasyonu cron girişine başvurmanız gerekiyorsa bu girişi $APIGEE_ROOT//logrotate/logrotate.cron dosyasında bulabilirsiniz. Örneğin, edge-message-processor için bu dosyanın adı $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron şeklindedir. Bu dosya, hem cron girişini hem de günlük rotasyonu için Apigee tarafından yürütülen komutu içerir. logrotate kullanmak istiyor ancak Apigee'nin yapılandırmalarını kullanmak istemiyorsanız kendi logrotate yapılandırma dosyanızı oluşturabilir ve log rotasyonu gerçekleştirmek için benzer bir logrotate komutu kullanabilirsiniz.