Gdy Logstash przestaje działać po dwóch tygodniach.

Niedawno postawiłem świeży stos ELK (Elastic Search, Logstash, Kibana). Wszystko fajnie śmigało przez trochę ponad 2 tygodnie aż przestało.

Nowe wpisy przestały się pojawiać w Elastic search. Sprawdziłem czy procesy działają, ale działały. Następnie zajrzałem do logów Logstasha i znalazłem tam wpis z komunikatem:

"reason"=>"blocked by: [FORBIDDEN/12/index read-only / allow delete (api)];"

Był tam też drugi wpis wskazujący, że chodzi o index nazywający się logstash-2019.12.28-0002. Logstash tworzy domyślnie politykę w ES, która ustawia flagę „read_only_allow_delete” na starych indeksach. Stwierdziłem, że któraś z usług wygenerowała dziwny wpis, z datą z przeszłości i że wskazany powyżej index należy odblokować. Tak też zrobiłem, co odblokowało cały mechanizm.

Niestety na drugi dzień problem się powtórzył. Okazało się że mam tylko dwa indeksy z przedrostkiem „logstash-” i oba z 28-go grudnia. Śledztwo doprowadziło mnie do tego błędu zgłoszonego na Github. Okazuje się, że domyślny format nazwy indeksu używany przez Logstash – „logstash-%{+YYYY.MM.dd}”, zawiera duże litery Y, co oznacza, że nazwa indeksu powinna zawierać rok bieżącej epoki, w przypadku naszego kręgu kulturowego jest to ilość lat od błędnie wyznaczonej daty narodzenia Chrystusa. Okazuje się, że na niektórych platformach ten format nie działa, a ja miałem pecha używać takowej.

Rozwiązaniem jest zmiana formatu indeksu na taki zawierający małe litery y.

index => "logstash-%{+yyyy.MM.dd}"

Także na zakończenie tego wpisu, życzę wam wszystkim żeby ludzkość jak najszybciej przeszła na UTC.

Jedna odpowiedź do “Gdy Logstash przestaje działać po dwóch tygodniach.”

  1. Pingback: dotnetomaniak.pl

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *