Jak přijít na příčinu zatuhnutí systému?

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Jak přijít na příčinu zatuhnutí systému?
« kdy: 31. 03. 2016, 20:49:12 »
Ahoj,

28. března mi vytuhnul systém na jednom z mých počítačů (běží 24/7). Dneska jsem po telefonu zařídil restart (vypnout/zapnout) a od tý doby to jede normálně. Přemýšlím, co se asi tak mohlo stát...

Co vím:
1. stroj odpovídal na ping a měl otevřené porty (ssh, dns, web server)
2. dotaz na DNS z vnitřní sítě zůstal nezodpovězen (DNS nereagovalo)
3. pokus o připojení na SSH skončil zlomenou rourou (Broken pipe, can't write - vyvolalo u mě podezření na plný disk, teď zpětně mě napadá taky read-only)
4. po restartu jedou služby v pohodě, DNS odpovídá, disk má dost místa (jak oddíl /, tak oddíl /home), zdánlivě vše běží jak má

Ve /var/log/messages je poslední (před restartem)
Kód: [Vybrat]
Mar 27 03:10:08 pisces syslog-ng[2279]: Configuration reload request received, reloading configuration;
Mar 27 15:10:08 pisces syslog-ng[2279]: Log statistics; processed='center(received)=76903', processed='center(queued)=153806',
 processed='src.none()=0', stamp='src.none()=0', processed='source(src)=76903', processed='destination(messages)=76903', proce
ssed='global(payload_reallocs)=77305', processed='global(sdata_updates)=0', processed='destination(console_all)=76903', proces
sed='global(msg_clones)=0', processed='src.internal(src#2)=61', stamp='src.internal(src#2)=1459041008', processed='global(inte
rnal_queue_length)=0'
Druhý záznam se každých 12 hodin opakuje (s jinými hodnotami), jinak v logu od tohoto času nic není (ani dhcpcd, cron, vpn, ...). V ten den zkoušel nějakej bot(net) hádat na SSH, ale mám povolený jen klíčem a používám ed25519 (openssh7.1, dsa už zakázáno) a všechno skončilo disconnectem v preauth. Jinak nic zvláštního.

Teď po cca 2 hodinách ifconfig říká 1.5MB přijato, 3.1MB odesláno (takže žádnej provoz, což je ok). Podle htop CPU nic nedělá, paměť je +- prázdná. Nemyslím si, že by systém byl napadený.

Nicméně - co hledat, jak postupovat při hledání problém, kvůli kterýmu to vytuhlo?

EDIT: z RAID1 vypadl jeden disk, který je pro oddíl / (možná to bude jen v tom... přečetl se někde zmetek)
« Poslední změna: 31. 03. 2016, 20:50:44 od Pavouk106 »


Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Jak přijít na příčinu zatuhnutí systému?
« Odpověď #1 kdy: 31. 03. 2016, 21:14:45 »
Dodatek - disk, který z RAID1 vypadl (nevím kdy) je podle smartctl v pohodě, badblocks (read-only) je na konkrétním oddílu taky v pohodě a momentálně probíhá rebuild.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jak přijít na příčinu zatuhnutí systému?
« Odpověď #2 kdy: 31. 03. 2016, 23:13:03 »
Tak to mas asi blbe. Co kdyz treba jen zakolisalo napeti v siti a stroj to tak trochu nerozdychal?

Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Jak přijít na příčinu zatuhnutí systému?
« Odpověď #3 kdy: 01. 04. 2016, 09:42:37 »
Tak to mas asi blbe. Co kdyz treba jen zakolisalo napeti v siti a stroj to tak trochu nerozdychal?
Vzhledem k zatížení zdroje (cca 80%, 12V/2.5A = 30W, odebírám cca 24-26W) by to mohlo být i takhle triviální.

RAID1 se zrebuildil v pohodě, po restartu jede vše jak má. Nechám to nejspíš být.

Dotaz jsem napsal spíš kvůli tomu, jak bych měl postupovat při hledání problému. Jestli se mám spokojit s tím, že ve /var/log/messages prostě nic nebylo (kromě toho syslog-ng, jehož reload konfigurace jsem já neinicioval - přišlo to dojinud, možná právě odpojení RAID1 disku nebo nevím co...) nebo mám hledat i v jiném logu.

Musím si z Turrisu vytáhnout nějaký dráty a udělat relé, kterym bych mohl "restartovat" počítač přímo z routeru (kdyby znova vytuhnul).

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jak přijít na příčinu zatuhnutí systému?
« Odpověď #4 kdy: 01. 04. 2016, 10:29:27 »
Jestli se mám spokojit s tím, že ve /var/log/messages prostě nic nebylo ....

Tak on system muze vytuhnout tak rychle, ze se tam uz nestaci nic zapsat. Treba kdyz ti zacnou odchazet kondenzatory na mobu. Jestli se to bude opakovat a nebude to tedy ciste nejaka bourkova nahoda, tak by mozna pomohlo presmerovat logovani na jiny stroj.


Pavouk106

  • *****
  • 2 400
    • Zobrazit profil
    • Můj blog
    • E-mail
Re:Jak přijít na příčinu zatuhnutí systému?
« Odpověď #5 kdy: 01. 04. 2016, 10:37:58 »
Jestli se mám spokojit s tím, že ve /var/log/messages prostě nic nebylo ....

Tak on system muze vytuhnout tak rychle, ze se tam uz nestaci nic zapsat. Treba kdyz ti zacnou odchazet kondenzatory na mobu. Jestli se to bude opakovat a nebude to tedy ciste nejaka bourkova nahoda, tak by mozna pomohlo presmerovat logovani na jiny stroj.
Mě na tom zarazilo to, že do logu se dál psalo, ale už žádný běžný věci... Z toho mi plyne, že filesystem byl namountovanej a funkční. Porty byly dál otevřený, z toho mi plyne, že služby běžely. Ale neodpovídaly. V PC se pohybuje teplota do 40 stupňů, základní deska je od Intelu (nečekal bych tedy laciný součástky). No, nechám to teď plavat, PC jede dál jakoby se nic nestalo, momentálně žádnej problém neni.

trubicoid2

Re:Jak přijít na příčinu zatuhnutí systému?
« Odpověď #6 kdy: 01. 04. 2016, 11:06:01 »
dobrý je už zmíněný vzdálený logování případně nechat na konzoli nechat běžet výstup kernelu, když to vytuhne, tak připojíš monitor a vidíš (jádru je potřeba předat parametr consoleblank=0, jinak je monitor černý)

taky by mohlo být zaseknutej nejakej proces, kterej způsobí vysoký load, by šlo nechat běžet top/htop v terminálu z jinýho stroje, při zátuhu vidíš poslední stav

podobně můžeš mít netconsole, je to skoro jako seriová konzole, jenom přes net, tam by se taky mělo vypsat to co předchází záseku

https://www.kernel.org/doc/Documentation/networking/netconsole.txt