Έπεσε ο server: τι να ελέγξεις πρώτα και με ποια σειρά
· 2 λεπτά ανάγνωσης
Αυτός ο οδηγός αφορά τον ίδιο τον server: ένα VPS, έναν dedicated ή cloud server που διαχειρίζεσαι εσύ. Αν αποτυγχάνει μία μεμονωμένη ιστοσελίδα και όλα τα άλλα στο μηχάνημα λειτουργούν, ή η ιστοσελίδα σου βρίσκεται σε shared hosting, ξεκίνα με τον οδηγό Η ιστοσελίδα έχει πέσει: τι να κάνεις. Εδώ κοιτάμε το μηχάνημα: απαντά καθόλου, μπορείς να μπεις και τι σταμάτησε.
Βήμα 1: τι ακριβώς έχει πέσει;
Το «ο server έχει πέσει» μπορεί να σημαίνει τρία πολύ διαφορετικά πράγματα και το καθένα έχει τη δική του διόρθωση. Μάθε πρώτα απέξω, από ένα δίκτυο που δεν είναι δικό σου. Για ιστοσελίδες στον server, ο έλεγχος διαθεσιμότητας ιστοσελίδας σου λέει σε δευτερόλεπτα αν το όνομα επιλύεται, αν η θύρα απαντά και ποιος κωδικός κατάστασης επιστρέφει. Για το μηχάνημα, χρησιμοποίησε ping και δοκιμή θύρας από τον δικό σου υπολογιστή:
ping -c 3 203.0.113.10
nc -zv -w 5 203.0.113.10 22
nc -zv -w 5 203.0.113.10 443
Διάβασε μαζί τα αποτελέσματα:
- Ούτε ping, ούτε SSH, ούτε θύρα web: το μηχάνημα είναι σβηστό, παγωμένο ή το δίκτυο μπροστά του έχει πέσει. Πήγαινε στο βήμα 2.
- Το ping απαντά, το SSH όχι: το μηχάνημα τρέχει, αλλά το SSH είναι μπλοκαρισμένο, σταματημένο ή ο server είναι πολύ υπερφορτωμένος για να απαντήσει. Πήγαινε στο βήμα 3.
- Το SSH λειτουργεί, η ιστοσελίδα όχι: ο server είναι εντάξει, μια υπηρεσία όχι. Πήγαινε στο βήμα 4.
Ορισμένοι server ρίχνουν σκόπιμα το ping. Αν το ping δεν λειτούργησε ποτέ, στηρίξου στις δοκιμές θυρών.
Βήμα 2: δεν απαντά τίποτα
Άνοιξε τον πίνακα ελέγχου ή την cloud κονσόλα του παρόχου σου πριν από οτιδήποτε άλλο. Τρεις ερωτήσεις λύνουν τις περισσότερες περιπτώσεις σε ένα λεπτό:
- Τρέχει ο server; Μια σταματημένη instance, ένας ανασταλμένος λογαριασμός ή μια αποτυχημένη πληρωμή μοιάζει ακριβώς με διακοπή απέξω.
- Υπάρχει γνωστό περιστατικό; Έλεγξε τη σελίδα κατάστασης του παρόχου για την περιοχή ή το data center σου.
- Τι δείχνει η κονσόλα; Η web ή η σειριακή κονσόλα δείχνει την οθόνη του μηχανήματος ακόμη και χωρίς δίκτυο. Ένα kernel panic, «Out of memory: Killed process» σε βρόχο, ή μια εκκίνηση κολλημένη σε έλεγχο συστήματος αρχείων σου λένε πού βρίσκεται το πρόβλημα.
Αν το μηχάνημα είναι παγωμένο, μια επανεκκίνηση από την κονσόλα συνήθως το επαναφέρει. Πριν κάνεις επανεκκίνηση, τράβηξε ένα στιγμιότυπο της κονσόλας: μόλις ξεκινήσει ξανά, τα στοιχεία έχουν χαθεί. Αν δεν εκκινεί, οι περισσότεροι πάροχοι προσφέρουν σύστημα διάσωσης από το οποίο μπορείς να προσαρτήσεις τον δίσκο, να διαβάσεις τα logs και να επισκευάσεις το /etc/fstab ή μια χαλασμένη ρύθμιση δικτύου.
Βήμα 3: το ping απαντά, το SSH όχι
Το μηχάνημα είναι ζωντανό, άρα η αιτία βρίσκεται πάνω του. Χρησιμοποίησε την κονσόλα για να συνδεθείς και έλεγξε τους συνήθεις υπόπτους:
sudo ufw status verbose
sudo iptables -S | head -n 30
sudo fail2ban-client status sshd
sudo systemctl status ssh sshd 2>/dev/null | grep -E 'Loaded|Active'
Ένας κανόνας firewall που προστέθηκε βιαστικά, η δική σου διεύθυνση IP αποκλεισμένη μετά από μερικούς λάθος κωδικούς, ή μια αλλαγή στις ρυθμίσεις SSH που απέτυχε στον έλεγχό της είναι οι συνηθέστερες κλειδαριές. Άρε τον αποκλεισμό της διεύθυνσής σου με sudo fail2ban-client set sshd unbanip YOUR_IP και τρέχε πάντα sudo sshd -t πριν επανεκκινήσεις το SSH. Αν το SSH τρέχει αλλά είναι απλώς πολύ αργό, ο server είναι υπερφορτωμένος: πήγαινε στο βήμα 4.
Βήμα 4: μπήκες, τώρα διάβασε τέσσερις αριθμούς
uptime
free -m
df -h
df -i
sudo dmesg -T | grep -iE 'oom|killed process|i/o error|read-only' | tail -n 20
- Φορτίο (
uptime): πολύ πάνω από τον αριθμό των πυρήνων CPU σημαίνει ότι το μηχάνημα είναι υπερφορτωμένο. Τοtopή τοhtopδείχνει ποια διεργασία φταίει. - Μνήμη (
free -m): καμία ελεύθερη μνήμη και κανένα swap, μαζί με «Killed process» στοdmesg, σημαίνει ότι ο πυρήνας σταμάτησε μια διεργασία για να επιβιώσει. Συνήθως ήταν η βάση δεδομένων ή η PHP. - Δίσκος (
df -h): ένας γεμάτος δίσκος είναι η συχνότερη αιτία προβλημάτων server. Οι βάσεις δεδομένων σταματούν να γράφουν, τα logs σταματούν, οι συνεδρίες αποτυγχάνουν. Τοdf -iελέγχει τα inodes: ένας δίσκος μπορεί να είναι «γεμάτος» με gigabytes ελεύθερα αν εκατομμύρια μικρά αρχεία εξαντλούν όλα τα inodes. - Σφάλματα I/O ή σύστημα αρχείων μόνο για ανάγνωση στο
dmesg: ο ίδιος ο δίσκος έχει πρόβλημα. Σταμάτα να γράφεις, κάνε αντίγραφο ασφαλείας αν μπορείς ακόμη και επικοινώνησε με τον πάροχό σου.
Για να ελευθερώσεις χώρο με ασφάλεια, ξεκίνα με το journal του συστήματος και τα παλιά αρχεία:
sudo journalctl --vacuum-size=200M
sudo du -xh / --max-depth=2 2>/dev/null | sort -h | tail -n 15
Μη διαγράψεις ποτέ αρχεία βάσης δεδομένων ή αρχεία ιστοσελίδας για να κάνεις χώρο.
Βήμα 5: ποια υπηρεσία σταμάτησε και γιατί
systemctl --failed
sudo journalctl -u nginx -n 50 --no-pager
sudo nginx -t
Το systemctl --failed απαριθμεί κάθε υπηρεσία που σταμάτησε με σφάλμα. Το journal αυτής της υπηρεσίας κατονομάζει τον λόγο: μια θύρα που χρησιμοποιείται ήδη, ένα συντακτικό σφάλμα σε αρχείο ρυθμίσεων, ένα πιστοποιητικό που λείπει, δεν έμεινε χώρος. Δοκίμαζε τις ρυθμίσεις πριν από κάθε επανεκκίνηση (nginx -t, apachectl configtest, php-fpm -t) και μετά ξεκίνα την με sudo systemctl restart SERVICE. Μια επανεκκίνηση χωρίς τη δοκιμή μπορεί να ρίξει μια υπηρεσία που λειτουργούσε ακόμη μισή.
Βήμα 6: τι άλλαξε;
Οι διακοπές έχουν αιτίες και η αιτία είναι συνήθως η τελευταία αλλαγή. Ψάξε την:
grep -E ' (install|upgrade) ' /var/log/dpkg.log | tail -n 20
last -n 10
sudo journalctl --since "2 hours ago" -p err --no-pager | tail -n 40
Αυτόματες ενημερώσεις, ένας νέος πυρήνας που περιμένει επανεκκίνηση, ένα deploy, ένα cron job που γέμισε τον δίσκο με backups, ένα πιστοποιητικό που έληξε ή μια επεξεργασία ρυθμίσεων από κάποιον άλλον: αν μία από αυτές τις γραμμές συμπίπτει με την ώρα που ξεκίνησε η διακοπή, έχεις το νήμα.
Όταν τα ίδια προβλήματα server επιστρέφουν
Ένας server που έπεσε μία φορά λόγω γεμάτου δίσκου ή σταματημένης βάσης δεδομένων θα το ξανακάνει. Ο έλεγχος απέξω σου λέει πότε έχει πέσει· ο έλεγχος από μέσα σου το λέει πριν. Ο agent server αναφέρει φορτίο, μνήμη, δίσκους και υπηρεσίες από το εσωτερικό του μηχανήματος και σε ειδοποιεί όταν ένας δίσκος ξεπεράσει το όριό σου ή σταματήσει μια υπηρεσία που επέλεξες, ενώ υπάρχει ακόμη χρόνος να ενεργήσεις. Η παρακολούθηση server με τον agent περιλαμβάνεται στα επί πληρωμή προγράμματα.
Όταν δεν θέλεις να το κάνεις στις 3 τα ξημερώματα
Αν ο server σου έχει πέσει και προτιμάς να επισκευαστεί παρά να κάνεις debug μόνος σου, ένα Quick Fix αναλαμβάνει τις συνηθισμένες αιτίες σε σταθερή τιμή: επανεκκινεί μια υπηρεσία που σταμάτησε αφού περάσει ο έλεγχος των ρυθμίσεών της, ελευθερώνει έναν γεμάτο δίσκο και ανανεώνει ένα πιστοποιητικό που έληξε, με αντίγραφο ασφαλείας πρώτα. Όταν αυτό δεν αρκεί, αναλαμβάνει ένα Deep Fix όλο το εικοσιτετράωρο, με χρέωση σε τμήματα των 15 λεπτών, με την τιμή να εμφανίζεται πριν παραγγείλεις. Και τα δύο λειτουργούν μέσω του Responder, SSH ως root ή πρόσβασης SSH στο webspace σου. Λεπτομέρειες στη σελίδα επισκευή server που έπεσε και επείγουσα υποστήριξη.
Τι κάνεις τώρα
Έλεγξέ το απ’ έξω
Έχει πέσει η ιστοσελίδα για όλους ή μόνο για σένα, και τι απαντά ο server; Δωρεάν, χωρίς εγγραφή.
Έλεγχος διαθεσιμότητας ιστοσελίδαςΈπεσε; Αναλαμβάνουμε.
Στον δικό σου server ή σε webspace με πρόσβαση SSH: ένα Quick Fix σε σταθερή τιμή για τις συνηθισμένες αιτίες, ένα Deep Fix με χρέωση σε τμήματα των 15 λεπτών για τις υπόλοιπες, όλο το εικοσιτετράωρο. Τιμή πριν παραγγείλεις.
Ζήτησε επισκευήΠερισσότεροι οδηγοί
- Η ιστοσελίδα σου έχει πέσει. Τι να κάνεις στα πρώτα 15 λεπτά.
- 502 Bad Gateway: αιτίες και πώς να το διορθώσεις
- 503 Service Unavailable: υπερφόρτωση ή συντήρηση;
- 504 Gateway Timeout: τι σημαίνει και πώς να το διορθώσεις
- DNS_PROBE_FINISHED_NXDOMAIN: αιτίες και λύσεις
- ERR_CONNECTION_REFUSED: αιτίες και πώς να το διορθώσεις
- «Η σύνδεσή σας δεν είναι ιδιωτική»: η προειδοποίηση για το πιστοποιητικό SSL