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.
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
logrotateyapılandırmaları hakkında bilginiz yoksa logrotate kılavuzunu okuyun.crontabyapılandırmaları hakkında bilginiz yoksa crontab kılavuzunu okuyun.
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 birlogrotatecronjob 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şeninlogrotatecron'unu etkinleştirme adımlarını uygulayarak ayarlayabilirsiniz. edge-routerbileşeni için varsayılan olarak ek birlogrotatecron 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:
- Dosyanın
apigeekullanıcısı tarafından okunabilir olduğundan emin olun. - 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/ 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.