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.
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
- Jeśli nie znasz konfiguracji
logrotate, przeczytaj instrukcję logrotate. - Jeśli nie znasz konfiguracji
crontab, przeczytaj instrukcję crontab.
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 cronlogrotate, 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 cronalogrotatekomponentu. - W przypadku komponentu
edge-routerdomyślnie skonfigurowane jest też dodatkowe zadanie cronlogrotate. 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:
- Upewnij się, że plik może być odczytywany przez użytkownika
apigee. - 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/. 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.