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

Rotacja logów – proces rotacji wielu plików logów, Rotacja logów umożliwia automatyczną rotację, kompresję, usuwanie i wysyłanie plików logu.

W Edge dla chmury prywatnej niektóre główne pliki dziennika w każdym komponencie apigee są skonfigurowane z użyciem domyślnego mechanizmu rotacji. Na przykład w komponencie Message Processor te pliki są skonfigurowane z użyciem domyślnego mechanizmu rotacji za pomocą logowania zwrotnego:

  • /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ą w przypadku 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 logu będący wynikiem przekierowania w konsoli odpowiedniego komponentu. W przypadku komponentu Message Processor jest to plik /opt/apigee/var/log/edge-message-processor/edge-message-processor.log. Inne komponenty edge-* generują podobny plik. Obrót tych plików nie odbywa się przez bibliotekę logback, ale za pomocą funkcji logrotate i crontab.

Zanim zaczniesz

Włącz rotację logów

Od Edge for Private Cloud w wersji 4.52 po zainstalowaniu komponentu edge-* wpis crontab służący do obracania tego logu jest automatycznie tworzony w obrębie typu 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 w tym samym węźle jest zainstalowanych wiele komponentów edge-* (na przykład w instalacji kompleksowej lub jeśli w jednym węźle są zainstalowane router i procesor wiadomości), każdy komponent będzie miał własny wpis cron służący do obracania odpowiednich logów.

Uwagi:

  • Jeśli podczas instalowania komponentu edge-* nie chcesz automatycznie konfigurować zadania cronjob w logrotate, ustaw flagę „ENABLE_LOGROTATE=n” w pliku cichym pliku konfiguracji, którego używasz do instalacji. Jeśli zadanie cron nie zostanie ustawione podczas instalacji, możesz je skonfigurować później, wykonując te czynności, by włączyć cron logrotate komponentu.
  • Dla komponentu edge-router domyślnie skonfigurowane jest też dodatkowe zadanie cron logrotate. Ten program cron rotuje logi dostępu i błędów wygenerowane przez Nginx.

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

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

sudo crontab -u apigee -l

Wyświetl wpis cron logrotate komponentu

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

Aby np. wyświetlić plik cron logrotate Edge-message-processor, uruchom polecenie:

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

Wyświetlanie konfiguracji logrotate komponentu

Konfiguracja logrotate komponentu znajduje się w pliku $APIGEE_ROOT/<component>/logrotate/logrotate.conf. Na przykład w przypadku procesu Edge-message-processor konfiguracja logrotate węzła może znajdować się w pliku $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.conf.

Włącz cron logrotate komponentu

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

Aby na przykład włączyć cron logrotate procesu Edge-message-processor, uruchom polecenie:

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

Wyłącz cron logrotate komponentu

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

Aby na przykład wyłączyć kod cron logrotate użytkownika Edge-message-processor, uruchom polecenie:

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

Zmiana harmonogramu cron dla określonego polecenia logrotate

W węźle, w którym chcesz zmienić harmonogram cron logrotate, otwórz plik zastąpienia konfiguracji odpowiedniego komponentu. Pliki zastąpień konfiguracji komponentu edge-* znajdziesz w tej tabeli:

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 to zastąpienie konfiguracji. Przykład poniżej zastępuje zadanie cron tak, 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 jest zrozumiały dla użytkownika apigee.
  2. Zastosuj do komponentu nowszy harmonogram cron:
    $APIGEE_ROOT/apigee-service/bin/apigee-service <component-name> logrotate -e

Aby na przykład zastosować nowszy harmonogram cron do parametru logrotate procesu Edge-message-processor, wpisz:

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

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

Dodatkowe konfiguracje usługi logrotate

Podobnie jak w powyższej sekcji dotyczącej modyfikowania harmonogramu cron, możesz też modyfikować dodatkowe konfiguracje. Tabela poniżej zawiera opis tych konfiguracji:

Konfiguracja Opis
conf_logrotate_bin_location Lokalizacja pliku binarnego logrotate. Domyślny: /usr/sbin/logrotate
conf_logrotate_status_file Plik stanu rejestrujący stan logrotate w środowisku wykonawczym – program ma uprawnienia do odczytu i zapisu dla użytkownika apigee. Domyślnie: $APIGEE_ROOT/var/run/<component>/logrotate.status
conf_logrotate_logs Dzienniki do rotacji. Może zawierać symbole wieloznaczne. Domyślnie: $APIGEE_ROOT/var/log/<component>/<component>.log
conf_logrotate_rotate Liczba rotacji. Domyślnie: „5”.
conf_logrotate_compress Określa, czy skompresować obrócone pliki. Domyślnie: „compress”.
conf_logrotate_compress_type Rodzaj kompresji. Domyślnie: „delaycompress”. Przekłada kompresję ostatniego poddanego rotacji pliku do następnego cyklu logrotacji.
conf_logrotate_size Limit rozmiaru dziennika dla rotacji. Domyślnie: „10 mln”.

Użyj własnego mechanizmu rotacji logów i programu cron

Jeśli Twoje wymagania dotyczące obracania pliku <component>.log nie spełniają wymagań konfiguracji udostępnionych przez Apigee, możesz użyć własnego mechanizmu rotacji logów za pomocą narzędzi takich jak logrotate lub innych. Na przykład konfiguracje udostępniane przez Apigee umożliwiają rotację logów według rozmiaru, ale chcesz to robić w oparciu o datę/godzinę lub inne czynniki. W takich przypadkach wyłącz program cron logrotate udostępniany przez Apigee i w razie potrzeby skonfiguruj własne zadania cron.

Jeśli chcesz się zapoznać z wpisem cron dotyczącym rotacji logów Apigee, znajdziesz go w pliku $APIGEE_ROOT//logrotate/logrotate.cron. Na przykład w przypadku edge-message-processor plik ma nazwę $APIGEE_ROOT/edge-message-processor/logrotate/logrotate.cron. Ten plik zawiera zarówno wpis w programie cron, jak i polecenie wykonywane przez Apigee na potrzeby rotacji logów. Jeśli chcesz używać logrotate, ale nie chcesz używać konfiguracji Apigee, możesz utworzyć własny plik konfiguracji logrotate i użyć podobnego polecenia logrotate do wykonania rotacji logów.