Qual è la prima cosa che controlli quando un server unix incontaminato inizia a impazzire?


10

Quindi hai questo server unix ben configurato ed è super veloce e funziona bene e tutto è perfetto per mesi, e all'improvviso iniziano a comparire tutti i tipi di strani errori per una varietà di servizi diversi e nessuno di loro ha molto senso da solo , molto meno insieme.

Quali sono le cose economiche che dovresti controllare non appena ricevi la tua sessione ssh sulla macchina?

Sono particolarmente interessato alle storie di traumi che evidenziano comandi non ovvi e situazioni rare, ma suppongo che ciò che è ovvio varia da persona a persona, quindi possiamo semplicemente elencarle tutte liberamente.

Risposte:


19

Primo ordine: è reattivo?

Se non riesci ad accedere, ci sono problemi più grandi in corso. Questo in genere si presenta in due modi: errore hardware e errore software. Entrambi sono potenzialmente catastrofici. Per evitare errori DFA, controlla innanzitutto lo stato generale dell'hardware: di solito basta un semplice sguardo.

Secondo ordine: le strutture sottostanti del sistema sono in buona salute e ordine?

Controlla la "Triade d'oro" dei sistemi:

  • Il tempo sufficiente della CPU è gratuito per l'elaborazione
  • Lo spazio su disco sufficiente è gratuito per l'archiviazione
  • Una memoria sufficiente è gratuita per i carichi di lavoro

Negli ultimi decenni, la triade si è espansa in un "quad" che include le comunicazioni (networking):

  • La connettività è funzionale, reattiva e ha capacità

Terzo ordine: qual è la gravità del problema?

Quali programmi o servizi sono interessati? In ordine decrescente di gravità, è sistemico (a livello di sistema), raggruppato (un gruppo di programmi) o isolato (un programma specifico)? I cluster di programmi in genere si attivano perché uno specifico servizio sottostante ha fallito o non ha risposto. A volte i problemi sistemici sono correlati a questo (si pensi a conflitti DNS o IP) ma sapere dove cercare di solito è la chiave.

Quarto ordine: gli strumenti diagnostici forniscono dati utili rilevanti per il problema? Ora che hai informazioni sull'integrità del sistema (secondo ordine) e su quali parti di esso stanno riscontrando problemi (terzo ordine), ciò dovrebbe semplificare la definizione del problema.

Messaggi di errore o file di registro dovrebbero essere un waypoint comune in questo viaggio.

Problemi di CPU:

  • loadav
  • superiore
  • strace

Problemi di spazio su disco / I / O:

  • df
  • du
  • lsof
  • iostat
  • vmstat

Problemi di memoria:

  • gratuito

Problemi di connettività:

  • ping
  • route (e arp e rarp e amici)
  • iptables, ipchains, ipfw (per quelle persone di BSD là fuori)
  • traceroute o mtr
  • host, nslookup o scavare
  • netstat

Reclamo più comune (che ho sentito):

L'e-mail non viene consegnata abbastanza velocemente (più di un minuto dall'invio alla ricezione per destinatario) oppure l'e-mail rifiuta il mio tentativo di invio. Questo di solito si riduce al limitatore di velocità in Postfix che si avvia durante una tempesta di spam, il che influisce sulla capacità di accettare la consegna interna.

Un esempio di vita reale:

Tuttavia, questo non è sempre il caso. Una volta, il problema persisteva indipendentemente dal riavvio del servizio; così dopo 3 minuti era tempo di iniziare a guardarsi intorno. La CPU era occupata ma al di sotto del 100%, ma il carico era salito a 15 su una scatola di soli 2 core e stava minacciando di aumentare. Il comando principale ha rivelato che il sistema di posta era in overdrive, insieme allo scanner di posta, ma non c'erano processi figlio di amavis da vedere. Questo era l'indizio: il comando della coda di posta (mailq) mostrava oltre 150 messaggi non consegnati, oltre l'80% dei quali erano spam, negli ultimi 20 minuti. Una rapida regolazione per abbassare il limitatore di velocità (che ha ridotto il tasso di assunzione della tempesta di spam) aumentando il numero di processi di scansione e-mail figlio (per aiutare a elaborare il backlog), seguito da un riavvio del servizio, risolto il problema e il sistema è stato in grado per completare le consegne in breve tempo.

La causa del problema era che il processo genitore di amavis si era interrotto e i processi figlio alla fine avevano seguito il loro corso (si sono interrotti automaticamente dopo così tante scansioni per evitare perdite di memoria). Quindi ci sono stati processi SMTP in postfix nel tentativo di contattare ... thin air ... per eseguire la scansione spam / virus necessaria. La distribuzione che stavo usando aveva pacchetti obsoleti che non sarebbero mai stati aggiornati; poiché l'installazione doveva essere sostituita tra circa un anno, ho "sostituito" manualmente l'installazione all'ultima versione, che includeva diverse correzioni di bug. Da allora non ho più avuto lo stesso problema.


5

di solito "chi" seguito da "ultimo"

un mucchio di problemi su macchine che sono riuscito a gestire nel tempo è stato a causa di una definizione molto ampia di "intatta" - spesso qualcuno ha fatto qualcosa :)


4

Bene, inizierò.

Questo mi ha morso una volta, ho passato ore a provare migliaia di cose diverse, disabilitando i servizi qua e là, riavviando, ecc. Qual era il problema? Totalmente esaurito lo spazio su disco.

Quindi, ecco la prima cosa che scrivo quando eseguo il debug di un server improvvisamente problematico:

df -h

Non lo dimentico mai adesso. Mi ha appena risparmiato un sacco di sforzi sprecati. Ho pensato di condividere.



1

Se è possibile, proverei sempre a chiudere tutte le schede di rete a parte quella di gestione.


1

Controllo di dmesg per eventuali errori - Di solito inizio con un dmesg | tail, perché è probabile che le cose stiano ancora andando male e il server sta ancora cercando di fare qualunque cosa stia causando l'errore.


0

La prima cosa che controllo è "top" (ci sono processi strani; quelli che richiedono memoria o tempo di CPU).

Se non succede nulla, controllerò "chi" per vedere se qualcun altro è sulla mia macchina per qualche motivo.

Forse un filesystem è stato smontato; controlla con una chiamata a "cat / etc / mtab" e poi "fstab" per assicurarti che tutto si avvii all'avvio.

Controlla i tempi di attività per assicurarti che il numero di utenti sulla confezione sia ragionevole (dovresti essere solo tu) e poi scorri var / log / auth.log per vedere se qualcosa non va.

Questi sono catch-alls. A seconda degli errori generati dalla scatola, potrebbe essere necessario esaminare processi specifici che causano il problema.


0

top df -h e SEMPRE check / var / log per assicurarsi che la partizione non si sia riempita. Ciò ha causato un totale scioglimento su di me alcune volte.


0

df -ha

per verificare se gli hard disk sono pieni e qualcuno non ha ricevuto avvisi

htop o top

per verificare che l'utilizzo della memoria e della cpu non sia eccessivamente elevato.

In alternativa, se la casella non risponde, vado nel client vm-ware e controllo cpu / ram da lì.


0

Eseguire qualcosa di simile a (at) sar sull'host è quasi obbligatorio. L'utilità di essere in grado di ottenere istantanee storiche di CPU, rete, memoria e I / O del disco (tra gli altri) non può essere sottovalutata.

Molte volte sono stato in grado di diagnosticare un errore esaminando ciò che l'host stava facendo nelle ultime 24 ore e vedendo quando le cose hanno iniziato a andare male.


0

Su Linux, di solito controllo dmesg e / var / log / messages o / var / log / syslog. dmesg indicherà se si tratta di un errore hardware improvviso; molti altri problemi verranno visualizzati nei registri di sistema.


0

Suppongo che la prima cosa che faccio sia un controllo dello spazio su disco (come altri hanno già detto). Se i semplici controlli non rivelano un problema "comune", indagherò ulteriormente.

Una cosa che mi piace fare è catturare un'istantanea del sistema. Posso farlo dopo in cerca di tutto ciò che ha attirato la mia attenzione.

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

Da lì è la risoluzione dei problemi 101, ma trovo un po 'più veloce per visualizzare i registri salvati e se la condizione si cancella mentre sono connesso ho qualcosa da fare o cercare le modifiche.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.