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
.
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
- Jeśli nie znasz konfiguracji usługi
logrotate
, przeczytaj instrukcję obsługi logrotacji. - Jeśli nie znasz konfiguracji
crontab
, przeczytaj instrukcję obsługi crontab.
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 wlogrotate
, 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ć cronlogrotate
komponentu. - Dla komponentu
edge-router
domyślnie skonfigurowane jest też dodatkowe zadanie cronlogrotate
. 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:
- Upewnij się, że plik jest zrozumiały dla użytkownika
apigee
. - 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/
. 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.