Graylog: Zarządzanie retencją

Jak skonfigurować retencję logów

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia rozwiązanie Graylog cloud, które zapewnia wiele korzyści, w tym:

  • Nieograniczony i dedykowany serwer e-mail SMTP w zestawie.
  • Bezproblemowe aktualizacje za pomocą jednego kliknięcia.
  • Dostosowywalna nazwa domeny zabezpieczona za pomocą HTTPS (na przykład, https://logs.twoja-firma.com).
  • Optymalna wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.

Oszczędzaj czas i upraszczaj swoje życie: wystarczy 5 minut, aby wypróbować rozwiązanie Graylog cloud hosting Stackhero!

Retencja definiuje liczbę wiadomości przechowywanych w bazie danych OpenSearch. Można skonfigurować retencję na podstawie liczby wiadomości, maksymalnego wieku lub ogólnego limitu rozmiaru.

Na przykład, można zdecydować się na przechowywanie wiadomości z ostatnich 365 dni, zachowanie do 200 milionów wiadomości lub zarezerwowanie łącznie 400 GB przestrzeni dyskowej.

Przed zdefiniowaniem polityki retencji ważne jest zrozumienie, jak działają indeksy używane przez Graylog i OpenSearch. Myśl o indeksach jak o fizycznych pojemnikach. Graylog "otwiera" pojemnik (indeks) i umieszcza w nim przychodzące wiadomości. Gdy przydzielona pojemność tego pojemnika zostanie przekroczona, pojemnik jest zamykany, przechowywany na półce, a nowy pojemnik jest uruchamiany dla kolejnych wiadomości.

Można ustawić tę pojemność według różnych kryteriów:

  1. Liczba wiadomości: "Przechowuj 20 milionów wiadomości na pojemnik, a następnie rozpocznij nowy."
  2. Ograniczenie czasowe: "Używaj pojemnika przez 10 dni, a następnie przejdź do nowego."
  3. Ograniczenie rozmiaru: "Przechowuj 20 GB na pojemnik, a następnie przejdź do nowego."

Określona jest również maksymalna liczba pojemników, które mogą być przechowywane na półce. Jeśli liczba ta zostanie przekroczona, najstarsze pojemniki są automatycznie usuwane. Na przykład, jeśli ustawisz maksymalnie 20 pojemników i masz 22 na półce, 2 najstarsze pojemniki zostaną usunięte.

W tej analogii pojemniki reprezentują indeksy, półka to OpenSearch, a maksymalna liczba to dozwolona liczba indeksów.

Graylog oferuje trzy strategie retencji:

  1. "Index time" definiuje maksymalny czas, przez jaki wiadomości są przechowywane w każdym indeksie, na przykład 14 dni na indeks.
  2. "Index message count" ustala maksymalną liczbę wiadomości na indeks, na przykład 20 milionów wiadomości na indeks.
  3. "Index size" ogranicza maksymalny rozmiar indeksu, na przykład 40 GB na indeks.

Można wybrać jedną z tych strategii w zależności od konkretnych wymagań. Na przykład, wybór "Index time" pomaga zapewnić, że zawsze masz logi z ostatnich X dni.

Uważaj, aby dokładnie oszacować swoje potrzeby w zakresie przestrzeni dyskowej.

Na przykład, jeśli przechowujesz 1 GB logów dziennie i zdecydujesz się zachować logi z ostatnich 365 dni, będziesz potrzebować 365 GB przestrzeni dyskowej. Pamiętaj, że dodatkowa przestrzeń operacyjna musi być również zarezerwowana (patrz poniżej).

Domyślnie Graylog ogranicza liczbę indeksów do 20. Można dostosować tę wartość do swoich potrzeb. Na przykład, jeśli chcesz przechowywać logi z ostatnich 365 dni, możesz rozdzielić retencję na indeksy, dzieląc 365 dni przez 20 indeksów, co daje około 19 dni na indeks.

Można wykonać podobne obliczenia dla innych strategii:

  1. Dla strategii "Index message count": jeśli chcesz zachować 200 milionów wiadomości z maksymalnie 20 indeksami, to 200 milionów wiadomości podzielone przez 20 indeksów daje 10 milionów wiadomości na indeks.
  2. Dla strategii "Index size": jeśli chcesz utrzymać 400 GB logów z maksymalnie 10 indeksami, to 400 GB podzielone przez 10 indeksów daje 40 GB na indeks.

Zalecamy zawsze utrzymywać co najmniej 15 GB wolnej przestrzeni dyskowej na logi, dziennik Graylog i dane MongoDB.

Jeśli wolna przestrzeń dyskowa się skończy, OpenSearch zablokuje swoje operacje i może być konieczne przejście na większą instancję.

Aby skonfigurować politykę retencji, przejdź do interfejsu Graylog. W sekcji "System" wybierz "Indices" i kliknij przycisk "Edit" w "Default index set".

W poniższym przykładzie konfiguracja ustawia maksymalnie 27 indeksów, z każdym indeksem przechowującym 14 dni logów. Ta konfiguracja przechowuje logi przez około rok (378 dni).

Nie zalecamy przechowywania więcej niż 14 dni wiadomości na indeks.

Konfiguracja retencji do przechowywania logów przez rokKonfiguracja retencji do przechowywania logów przez rok

Wybierając "Index time" jako politykę rotacji, należy zdefiniować czas trwania za pomocą standardu ISO8601 Duration.

Na przykład, "P7D" oznacza 7 dni, "P14D" oznacza 14 dni i tak dalej.

Jeśli chcesz dowiedzieć się więcej o indeksach, zdecydowanie zachęcamy do przeczytania oficjalnej dokumentacji.

Czasami OpenSearch może przejść w tryb tylko do odczytu i możesz napotkać błędy takie jak:

  1. "Flood stage disk watermark exceeded, all indices on this node will be marked read-only"
  2. "FORBIDDEN/12/index read-only / allow delete (api)"

Te błędy występują w ramach mechanizmu ochrony OpenSearch, gdy przestrzeń dyskowa jest krytycznie niska. Gdy dostępna przestrzeń dyskowa spadnie poniżej 7 GB, OpenSearch ustawia indeksy na tryb tylko do odczytu jako środek ostrożności, aby zapobiec uszkodzeniu danych.

Jeśli napotkasz te błędy, masz dwie opcje:

  1. Skonfiguruj ponownie swoją politykę retencji, aby przechowywać mniej logów. Po dostosowaniu polityki usuń najstarszy indeks, aby zwolnić przestrzeń dyskową i pozwolić OpenSearch wrócić do trybu odczytu-zapisu. Należy pamiętać, że usunięcie indeksu oznacza, że wszystkie dane w tym indeksie zostaną utracone.
  2. Przejdź na instancję z większym dyskiem. Jednym kliknięciem w swoim panelu Stackhero, instancja zostanie ponownie uruchomiona z dodatkową przestrzenią dyskową, a OpenSearch automatycznie powróci do trybu odczytu-zapisu.