Jaka jest pierwsza rzecz, którą sprawdzasz, gdy nietknięty serwer unix zaczyna szaleć?


10

Masz więc starannie skonfigurowany serwer unix, jest super szybki i działa pęczniejąco, a wszystko jest świetne przez miesiące, i nagle różnego rodzaju dziwne błędy zaczynają pojawiać się w różnych usługach i żadna z nich nie ma większego sensu , znacznie mniej razem.

Jakie są tanie rzeczy, które powinieneś sprawdzić, gdy tylko dostaniesz sesję ssh na maszynę?

Szczególnie interesują mnie historie traumy, które podkreślają nieoczywiste polecenia i rzadkie sytuacje, ale wydaje mi się, że to, co oczywiste, różni się w zależności od osoby, więc możemy je swobodnie wymienić.

Odpowiedzi:


19

Pierwsze zamówienie: czy reaguje?

Jeśli nie możesz się zalogować, pojawiają się większe problemy. Zwykle występuje w dwóch wariantach: awaria sprzętu i awaria oprogramowania. Oba są potencjalnie katastrofalne. Aby zapobiec błędom DFA, sprawdź najpierw ogólny stan sprzętu - zwykle wystarczy zwykłe podsumowanie.

Drugie zamówienie: czy podstawowe struktury systemu są w dobrym zdrowiu i porządku?

Sprawdź „złotą triadę” systemów:

  • Wystarczająca ilość czasu procesora jest bezpłatna do przetworzenia
  • Wystarczająca ilość miejsca na dysku jest bezpłatna do przechowywania
  • Wystarczająca ilość pamięci jest wolna dla obciążeń

W ciągu ostatnich kilku dekad triada rozwinęła się w „quad”, który obejmuje komunikację (sieci):

  • Łączność jest funkcjonalna, responsywna i ma pojemność

Trzecie zamówienie: jaka jest ważność problemu?

Na jakie programy lub usługi ma to wpływ? Czy w malejącym porządku ważności jest systemowy (ogólnosystemowy), klastrowany (grupa programów), czy izolowany (konkretny program)? Klastry programów zwykle się wyłączają, ponieważ określona usługa bazowa uległa awarii lub przestała odpowiadać. Problemy systemowe są czasem z tym związane (np. Konflikty DNS lub IP), ale kluczem jest zazwyczaj wiedza, gdzie szukać.

Czwarte zamówienie: czy narzędzia diagnostyczne dostarczające użytecznych danych są istotne dla problemu? Teraz, gdy masz już informacje o kondycji systemu (drugie zamówienie) oraz o tym, w jakich częściach występują problemy (trzecie zamówienie), powinno to ułatwić zawężenie zakresu problemu.

Komunikaty o błędach lub pliki dziennika powinny być wspólnym punktem na tej drodze.

Problemy z procesorem:

  • loadav
  • Top
  • strace

Problemy z miejscem na dysku / IO:

  • df
  • du
  • lsof
  • iostat
  • vmstat

Problemy z pamięcią:

  • wolny

Problemy z łącznością:

  • świst
  • trasa (i arp i rarp i przyjaciele)
  • iptables, ipchains, ipfw (dla tych ludzi z BSD)
  • traceroute lub mtr
  • hosts, nslookup lub dig
  • netstat

Najczęstsza skarga (którą słyszę):

Wiadomość e-mail nie jest dostarczana wystarczająco szybko (ponad minutę od wysłania do otrzymania przez odbiorcę) lub wiadomość e-mail odrzuca moją próbę wysłania. Zwykle sprowadza się to do ograniczenia prędkości w Postfix podczas burzy spamowej, co wpływa na możliwość akceptowania dostarczania wewnętrznego.

Przykład z życia:

Jednak nie zawsze tak jest. Pewnego razu problem nadal występował bez względu na ponowne uruchomienie usługi; więc po 3 minutach nadszedł czas, aby zacząć się rozglądać. Procesor był zajęty, ale poniżej 100%, ale obciążenie wzrosło do 15 na pudełku z zaledwie 2 rdzeniami i groziło, że pójdzie wyżej. Górne polecenie ujawniło, że system pocztowy był przesterowany wraz ze skanerem poczty, ale nie było żadnych procesów potomnych amavis. To była wskazówka - polecenie kolejki pocztowej (mailq) wyświetlało ponad 150 niedostarczonych wiadomości, z których ponad 80% stanowiło spam, w ciągu ostatnich 20 minut. Szybka korekta w celu obniżenia limitu prędkości (co zmniejszyło wskaźnik wczytywania burzy spamowej) przy jednoczesnym zwiększeniu liczby procesów skanera podrzędnego poczty e-mail (w celu przetworzenia zaległości), a następnie ponowne uruchomienie usługi, rozwiązało problem i system był w stanie aby zrealizować dostawy w krótkim czasie.

Przyczyną tego problemu było to, że proces nadrzędny amavis zachwiał się, a procesy potomne w końcu wszystkie przebiegły (samoczynnie kończą się po tylu skanach, aby zapobiec wyciekom pamięci). Były więc procesy SMTP w postfiksie próbujące nawiązać kontakt… cienkie powietrze… w celu wykonania potrzebnego skanowania spamu / wirusów. Distro, którego używałem, zawierało nieaktualne pakiety, które nigdy nie będą aktualizowane; ponieważ instalacja miała zostać wymieniona za około rok, ręcznie „zastąpiłem” instalację do najnowszej wersji, która zawierała kilka poprawek błędów. Od tamtej pory nie miałem tego samego problemu.


5

zwykle „kto”, po którym następuje „ostatni”

mnóstwo problemów na maszynach, którymi zarządzałem przez długi czas, było z powodu bardzo luźnej definicji „nietkniętego” - często ktoś coś zrobił :)


4

Cóż, zacznę.

Ten raz mnie ugryzł, spędziłem godziny próbując tysięcy różnych rzeczy, wyłączając usługi tu i tam, restartując się itp. Na czym polegał problem? Całkowicie brakuje miejsca na dysku.

Oto pierwsza rzecz, którą wpisuję podczas debugowania nagle niespokojnego serwera:

df -h

Nigdy tego teraz nie zapomnę. Zaoszczędziło mi to wiele zmarnowanego wysiłku. Myślałem, że podzielę się.



1

Jeśli możesz, zawsze staram się zamknąć wszystkie karty sieciowe na pasku zarządzania.


1

Sprawdzanie dmesg pod kątem błędów - zwykle zaczynam od a dmesg | tail, ponieważ są szanse, że coś pójdzie nie tak, a serwer nadal próbuje zrobić wszystko, co powoduje błąd.


0

Pierwszą rzeczą, którą sprawdzam, jest „top” (czy są jakieś dziwne procesy; takie, które pochłaniają pamięć lub czas procesora).

Jeśli nic się tam nie pojawi, sprawdzę „kto”, aby zobaczyć, czy ktoś z jakiegoś powodu jest na mojej maszynie.

Może system plików został zdemontowany; sprawdź, wywołując „cat / etc / mtab”, a następnie „fstab”, aby upewnić się, że wszystko pojawi się od razu po uruchomieniu.

Sprawdź dostępność, aby upewnić się, że liczba użytkowników w polu jest rozsądna (powinna to być tylko Ty), a następnie przejrzyj plik var / log / auth.log, aby sprawdzić, czy coś tam jest nie tak.

To wszystko. W zależności od błędów, które generuje Twoje pudełko, może być konieczne zbadanie określonych procesów, które powodują problemy.


0

top df -h i ZAWSZE sprawdzaj / var / log, aby upewnić się, że partycja się nie zapełniła. To spowodowało, że totalnie mnie stopiło.


0

df -ha

aby sprawdzić, czy dyski twarde są pełne i czy ktoś nie otrzymał ostrzeżeń

htop lub top

sprawdzanie użycia pamięci i procesora nie jest nienormalnie wysokie.

Alternatywnie, jeśli okno nie odpowiada, wchodzę do klienta vm-ware i stamtąd sprawdzam cpu / ram.


0

Uruchamianie czegoś takiego jak (at) sar na hoście jest prawie obowiązkowe. Przydatność możliwości uzyskania historycznych migawek procesorów, sieci, pamięci i dysków I / O (między innymi) nie może być niedoceniana.

Wiele razy byłem w stanie zdiagnozować usterkę, badając, co robił gospodarz w ciągu ostatnich 24 godzin i sprawdzając, kiedy wszystko zaczęło się psuć.


0

W systemie Linux zwykle sprawdzam dmesg i / var / log / messages lub / var / log / syslog. dmesg wskaże, czy jest to nagła awaria sprzętu; całkiem sporo innych problemów pojawi się w logach systemowych.


0

Przypuszczam, że pierwszą rzeczą, którą robię, jest sprawdzenie miejsca na dysku (jak wspomnieli inni). Jeśli proste kontrole nie ujawnią „powszechnego” problemu, zbadam sprawę dalej.

Jedną z rzeczy, które lubię, jest zrobienie migawki systemu. Mogę je później grepować, by poszukać wszystkiego, co przykuło moją uwagę.

lsof > /tmp/lsof.tmp &
ps auxfw > /tmp/ps.tmp &
netstat -anp > /tmp/netstat.tmp &

Stamtąd rozwiązywane są problemy 101, ale uważam, że jest nieco szybsze grep zapisanych dzienników, a jeśli stan zniknie, gdy jestem zalogowany, mam coś do przejścia lub szukania zmian.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.