Włącz rotację logów dla komponentów Edge

Rotacja logów, czyli proces rotacji wielu plików dziennika, upraszcza administrowanie systemami, które generują dużą liczbę plików dziennika. Rotacja logów umożliwia automatyczną rotację, kompresję, usuwanie i wysyłanie plików dziennika.

W Edge dla chmury prywatnej niektóre z głównych plików dziennika w każdym komponencie apigee są skonfigurowane z domyślnym mechanizmem rotacji. Na przykład w komponencie procesora komunikatów te pliki są skonfigurowane z domyślnym mechanizmem rotacji przy użyciu 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

Podobne pliki istnieją dla innych komponentów edge-* (których nazwy zaczynają się od edge-), takich jak edge-management-server, edge-router, edge-postgres-server i edge-qpid-server.

Każdy z tych komponentów edge-* generuje też dodatkowy plik dziennika, który jest przekierowanymi danymi wyjściowymi konsoli odpowiedniego komponentu. W przypadku komponentu procesora komunikatów ten plik nosi nazwę /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. Inne komponenty edge-* generują podobny plik. Rotacja tych plików nie jest wykonywana przez bibliotekę logback, ale za pomocą logrotate i crontab.

Zanim zaczniesz

Włączanie rotacji logów

Począwszy od Edge dla chmury prywatnej w wersji 4.52, gdy instalujesz komponent edge-*, wpis crontab dotyczący rotacji tego dziennika jest automatycznie tworzony w crontab użytkownika apigee. To zadanie cron jest domyślnie uruchamiane co godzinę i używa narzędzia logrotate do rotacji logów. Jeśli na tym samym węźle zainstalowanych jest kilka komponentów edge-* (np. w przypadku instalacji typu „wszystko w jednym” lub gdy router i procesor komunikatów są zainstalowane na jednym węźle), każdy komponent będzie miał własny wpis cron do rotacji odpowiednich logów.

Uwagi:

  • Jeśli podczas instalacji komponentu edge-* nie chcesz automatycznie konfigurować zadania cron logrotate, ustaw flagę „ENABLE_LOGROTATE=n” w pliku konfiguracji instalacji dyskretnej, którego używasz do instalacji. Jeśli zadanie cron nie zostanie ustawione podczas instalacji, możesz je skonfigurować później, wykonując czynności opisane w artykule Włączanie crona logrotate komponentu.
  • W przypadku komponentu edge-router domyślnie skonfigurowane jest też dodatkowe zadanie cron logrotate. To zadanie cron rotuje dzienniki dostępu i błędów generowane przez Nginx.

Poniższe przykłady ilustrują różne konfiguracje i operacje administracyjne, które możesz wykonać.

Wyświetlanie wpisów crona w węźle

sudo crontab -u apigee -l

Wyświetlanie wpisu cron logrotate komponentu

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

Aby na przykład wyświetlić zadanie cron logrotate procesora komunikatów Edge, uruchom:

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

Wyświetlanie konfiguracji logrotate komponentu

Konfigurację komponentu logrotate można znaleźć w pliku $APIGEE_ROOT/<component>/logrotate/logrotate.conf. Na przykład w przypadku procesora komunikatów Edge konfigurację węzła logrotate można znaleźć w $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

Włączanie zadania cron logrotate komponentu

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

Aby na przykład włączyć zadanie cron logrotate procesora komunikatów Edge, uruchom:

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

Wyłączanie zadania cron logrotate komponentu

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

Aby na przykład wyłączyć zadanie cron logrotate procesora komunikatów Edge, uruchom:

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

Zmień harmonogram cron konkretnego polecenia logrotate

Na węźle, na którym chcesz zmienić harmonogram crona logrotate, otwórz plik zastępowania konfiguracji odpowiedniego komponentu. Pliki zastępowania konfiguracji komponentu edge-* są wymienione w tabeli poniżej:

Komponent Plik zastąpienia konfiguracji
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

Otwórz odpowiedni plik zastąpienia i ustaw następujące zastąpienie konfiguracji. W przykładzie poniżej zadanie cron jest zastępowane, aby było uruchamiane w 0 minucie każdej godziny.

conf_logrotate_cron_duration=0 * * * *

Aby ustawić zastąpienie konfiguracji:

  1. Upewnij się, że plik może być odczytywany przez użytkownika apigee.
  2. Zastosuj nowszy harmonogram cron do komponentu:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Aby na przykład zastosować nowszy harmonogram cron do logrotate procesora komunikatów Edge, wpisz:

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

Aby sprawdzić, czy zmiany zostały zastosowane, sprawdź wpisy cron lub wpis cron komponentu logrotate.

Dodatkowe konfiguracje logrotate

Podobnie jak w przypadku kroków opisanych w sekcji powyżej dotyczących modyfikowania harmonogramu cron, możesz też modyfikować dodatkowe konfiguracje. W tabeli poniżej znajdziesz opis tych konfiguracji:

Konfiguracja Opis
conf_logrotate_bin_location Lokalizacja pliku binarnego logrotate. Domyślnie: /usr/sbin/logrotate
conf_logrotate_status_file Plik stanu zawierający stan działania logrotate – powinien mieć uprawnienia do odczytu i zapisu dla użytkownika apigee. Domyślnie: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs które dzienniki mają być poddawane rotacji, Może zawierać symbole wieloznaczne. Domyślnie: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Liczba obrotów. Domyślnie: „5”
conf_logrotate_compress Określa, czy kompresować rotowane pliki. Domyślnie: „compress”
conf_logrotate_compress_type Typ kompresji. Wartość domyślna: „delaycompress”. Opóźnia kompresję ostatniego pliku poddanego rotacji do następnego cyklu logrotate.
conf_logrotate_size Limit rozmiaru logów na potrzeby rotacji. Domyślnie: „10M”

Używanie własnego mechanizmu rotacji logów i crona

Jeśli wymagania dotyczące rotacji pliku <component>.log nie są spełnione przez konfiguracje udostępnione przez Apigee, możesz użyć własnego mechanizmu rotacji logów za pomocą narzędzi takich jak logrotate. Na przykład konfiguracje udostępniane przez Apigee umożliwiają rotację logów według rozmiaru, ale chcesz, aby rotacja odbywała się na podstawie daty/godziny lub innych czynników. W takich przypadkach należy wyłączyć zadanie cron logrotate udostępniane przez Apigee i skonfigurować własne zadania cron zgodnie z potrzebami.

Jeśli chcesz sprawdzić wpis crona dotyczący rotacji logów Apigee, znajdziesz go w pliku $APIGEE_ROOT//logrotate/logrotate.cron. Na przykład w przypadku edge-message-processor ten plik nazywa się $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. Ten plik zawiera zarówno wpis cron, jak i polecenie wykonywane przez Apigee na potrzeby rotacji logów. Jeśli chcesz używać logrotate, ale nie chcesz korzystać z konfiguracji Apigee, możesz utworzyć własny plik konfiguracji logrotate i użyć podobnego polecenia logrotate, aby wykonać rotację logów.