W nocy coś się stało: gdzie naprawdę leży zapis
Alert mówi, że coś się stało. Dziennik mówi dlaczego. Haczyk polega na tym, że zapis potrzebny najbardziej obejmuje minutę, w której maszyna umarła, a przy instalacji domyślnej to właśnie jego najczęściej brakuje.
AtlasPVE ·
Ten wpis odpowiada na
- proxmox logi po awarii
- proxmox gdzie są pliki dziennika
- proxmox dziennik zadań lokalizacja
- proxmox syslog lokalizacja
- proxmox logs after crash
Maszyna zrestartowała się w nocy i nikt jej o to nie prosił. Wszystko znowu działa, nic nie jest widocznie zepsute, a jedyne uczciwe zdanie brzmi tak: coś się stało.
Monitorowanie ma trzy zapisy i odpowiadają one na trzy różne pytania. Alert mówi, że coś się stało. Metryka mówi, jaki kształt to miało. Dziennik mówi dlaczego. Ten tekst dotyczy trzeciego i tego niewygodnego faktu, że akurat dziennik obejmujący ciekawą minutę najczęściej znika.
Pierwsze pytanie jest mniejsze, niż się wydaje
Zanim zaczniesz teorie o sprzęcie, zadaj najtańsze dostępne pytanie: została wyłączona, czy umarła?
Odpowiada na to jedna linia. Czyste wyłączenie zostawia podpis na końcu dziennika poprzedniego uruchomienia: usługa dziennika notuje, że poproszono ją o zatrzymanie, a potem notuje, że się zatrzymała. Maszyna, która straciła zasilanie, nie zostawia żadnego zakończenia. Zapis po prostu urywa się w środku zwykłej aktywności.
To jedno rozróżnienie dzieli całe dochodzenie na pół. Czyste zakończenie znaczy, że coś zdecydowało o restarcie, więc szukaj zleceniodawcy: aktualizacji, psa stróżującego, zaplanowanego zadania, człowieka. Brak zakończenia znaczy, że maszynę przerwano, więc patrz na zasilanie, ciepło, pamięć i leżącą pod spodem pamięć masową.
Ale tylko jeśli poprzednie uruchomienie nadal istnieje
Tu jest pułapka. Dziennik trzyma historię trwale wyłącznie wtedy, gdy na dysku istnieje określony katalog. Gdy go brakuje, dziennik żyje w pamięci, a każdy restart kasuje dokładnie ten dowód, po który przyszedłeś. Nie ma błędu ani ostrzeżenia; prosisz o poprzednie uruchomienie i słyszysz, że takiego nie ma.
Lepiej sprawdzić to w spokojne popołudnie niż tego ranka, gdy jest potrzebne. Chodzi o jeden katalog, i to on decyduje o różnicy między posiadaniem zapisu a przekonaniem, że się go ma.
Ma to zresztą ten sam kształt co pułapka warta nazwania dwa razy: rejestrator dzieli los tego, co rejestruje. Wykres, którego chcesz najbardziej, przestał być zapisywany dokładnie wtedy, gdy zrobiło się ciekawie; a dziennik, którego chcesz najbardziej, należy do uruchomienia, którego już nie ma.
Pliku, który każe czytać pół internetu, może tam nie być
Zmierzone na aktualnej instalacji, Proxmox VE 9.2.6 na Debianie 13.6: klasyczna usługa dziennika systemowego nie jest zainstalowana, a plik /var/log/syslog nie istnieje.
To waży więcej, niż brzmi. Duża część porad diagnostycznych napisanych przez ostatnie piętnaście lat zaczyna się od "zajrzyj do /var/log/syslog". Na aktualnej maszynie to polecenie nic nie zwraca, a ktoś pod presją odczyta wynik jako *nie mam żadnych logów*, zamiast *patrzę w złe miejsce*. Zapisem systemowym jest dziś dziennik, a jego się nie otwiera w edytorze, tylko odpytuje.
Proxmox prowadzi drugi zapis, a ten odpowiada na inne pytanie
Osobno od dziennika systemowego Proxmox VE prowadzi własny dziennik zadań. Każda operacja uruchomiona z interfejsu webowego albo z API staje się zadaniem z identyfikatorem, czasem rozpoczęcia, czasem zakończenia i statusem końcowym, a obok plików poszczególnych zadań leży plik indeksu. Na jednym hoście laboratoryjnym ten indeks miał 283 linie, a za nim stało około 960 plików zadań.
Oba zapisy są dobre w czymś innym. Dziennik systemowy jest dobry w pytaniu "co robił system". Dziennik zadań jest dobry w pytaniu "kto o co poprosił i czy to się skończyło". Kiedy maszyna wirtualna ma migawkę, której nikt nie pamięta, żeby robił, albo zmiana pojawia się bez autora, dziennik zadań zwykle odpowiada szybciej, bo jest listą zamiarów, a nie strumieniem zdarzeń.
Ustal pułap, zanim historia będzie potrzebna
Domyślnie limit dziennika wyraża się udziałem w systemie plików, a nie długością czasu. Na hoście zmierzonym powyżej nie ustawiono jawnego limitu, a dziennik urósł do około 276 MB.
Dwie liczby warto znać z góry: ile miejsca dziennik może zająć i jak daleko wstecz to naprawdę sięga na tej maszynie. Kolejność ma znaczenie i jest ta sama co przy metrykach. Zdecyduj, jak daleko wstecz musisz widzieć, a potem wybierz ustawienie, które tak daleko sięga. Poznanie odpowiedzi w środku incydentu oznacza poznanie odpowiedzi "niewystarczająco daleko".
Co Atlas robi, a czego nie
Atlas nie zastępuje dziennika i nie próbuje czytać twoich logów za ciebie. Nie ma tu wyszukiwania w dziennikach, a twierdzenie inaczej zafundowałoby ci zły poranek.
To, co Atlas niesie, jest pierwszą połową: codzienne podsumowanie zgłasza nieplanowany restart jako fakt, z maszyną i godziną, żeby pytanie w ogóle zostało zadane. Czytanie nadal należy do ciebie, a odpowiedź nadal mieszka w dzienniku.
O to właśnie chodzi. Najgorsza wersja minionej nocy to nie restart, który zbadałeś z otwartym niewłaściwym plikiem. To restart, którego nikt nie zauważył, bo zapis, którego nikt nigdy nie otwiera, nie odpowiada na nic.
Źródła
Własna dokumentacja Proxmoksa. Po angielsku i to ona ma ostatnie słowo w tej sprawie.