Απλή ανακατεύθυνση για ιστότοπο (παρακολούθηση + δυναμικό DNS)

Σε αυτό το άρθρο θέλω να δείξω πόσο εύκολο και δωρεάν μπορείτε να δημιουργήσετε ένα πρόγραμμα ανακατεύθυνσης για έναν ιστότοπο (ή οποιαδήποτε άλλη υπηρεσία Διαδικτύου) χρησιμοποιώντας έναν συνδυασμό παρακολούθησης okerr και δυναμική υπηρεσία DNS. Δηλαδή, σε περίπτωση τυχόν προβλημάτων με τον κύριο ιστότοπο (από πρόβλημα με «Σφάλμα PHP» στη σελίδα, έως έλλειψη χώρου ή απλώς ύποπτα μικρό αριθμό παραγγελιών στην περίπτωση ηλεκτρονικού καταστήματος), οι νέοι επισκέπτες θα να κατευθυνθείτε στον δεύτερο (τρίτο, και ούτω καθεξής) περαιτέρω) έναν γνωστό διακομιστή που λειτουργεί, ή στη σελίδα "Συγγνώμη", όπου θα σας εξηγήσουν ευγενικά ότι "υπάρχει ένα πρόβλημα, το γνωρίζουμε ήδη και το διορθώνουμε ήδη. θα το διορθώσετε σύντομα» (και σε αυτήν την περίπτωση θα είστε ήδη ενήμεροι και θα μπορείτε να επισκευάσετε).

Να ζεις με failover ή χωρίς;

Μέχρι να συμβεί κάποιο πρόβλημα, δεν υπάρχει μεγάλη διαφορά. Αλλά όταν συμβαίνει, χωρίς αποτυχία, συχνά συμβαίνει το εξής: προσπαθείτε να καταλάβετε γρήγορα ποιο είναι το πρόβλημα, δεν λειτουργεί (τα αντίγραφα ασφαλείας δεν αναπτύσσονται, το λογισμικό για κάποιο λόγο δεν λειτουργεί όπως θα έπρεπε από την τεκμηρίωση , κ.λπ.), αλλά δεν υπάρχει χρόνος, δεν υπάρχει διακομιστής - οι ιστότοποι είναι ξαπλωμένοι, οι πελάτες καλούν, όλοι είναι στην άκρη, προσπαθείτε να το διορθώσετε με κάποιο τρόπο χονδροειδώς και βρώμικο "με ταινία", μετά με κάποιο τρόπο φαίνεται να ξεκινά με πατερίτσες και ζωές. Νομίζεις ότι στον ελεύθερο χρόνο σου θα χρειαστεί να το καταλάβεις με περισσότερες λεπτομέρειες και να τα ξανακάνεις όλα όμορφα, αλλά δεν υπάρχει τίποτα πιο μόνιμο από το προσωρινό.

Τώρα, πώς συμβαίνει αυτό σε μια όμορφη έκδοση με αρχείο αρχείου:

  • Γίνεται ένα λάθος
  • Το σφάλμα εντοπίζεται αυτόματα
  • Η ειδοποίηση αποστέλλεται
  • Μεταφέρεται η εναλλαγή σε έναν από τους εφεδρικούς διακομιστές
  • Ήρεμα και χωρίς πανικό, το πρόβλημα επιλύεται, διορθώνεται και ο διακομιστής τίθεται ξανά σε λειτουργία.

Αυτό το σχήμα, φυσικά, μπορεί επίσης να έχει τα δικά του προβλήματα, αλλά παρόλα αυτά, το σχήμα είναι γραμμικό, κάθε στάδιο είναι απλό και το κύριο πράγμα είναι ότι μπορεί να εντοπιστεί σφάλματα ξεχωριστά, επομένως η πιθανότητα αποτυχίας αυτού του σχήματος είναι πολύ μικρότερη και όλες οι ενέργειες μπορούν να αυτοματοποιηθούν και να εκτελεστούν γρήγορα (σε αντίθεση με την εργασία εύρεσης και διόρθωσης άγνωστων επικών βλαβών). Το αεροπλάνο σας προσγειώθηκε σε μια μακρινή χώρα, ανοίγετε το τηλέφωνό σας και βλέπετε μια ειδοποίηση σε ένα τηλεγράφημα ότι ο διακομιστής έχει συντριβεί, αλλά όλα είναι καλά, ο εφεδρικός διακομιστής έχει ενεργοποιηθεί, μπορείτε να συνεχίσετε το ταξίδι σας, δεν χρειάζεστε να πετάξετε πίσω ή να το επισκευάσετε μέσω SSH από το πλησιέστερο καφέ με WiFi. Θα το καταλάβεις όταν είναι πιο βολικό.

Το μέλλον είναι ήδη εδώ!

Προηγουμένως, το κύριο πρόβλημα που έκανε το failover συχνά απαράδεκτη λύση ήταν το κόστος που κοστίζει. Ή ήταν απαραίτητο να αγοράσετε ακριβό υλικό (και να προσκαλέσετε ακόμα πιο ακριβούς ειδικούς). Ή συλλογικό αγρόκτημα κάτι περίπλοκο σύμφωνα με τους οδηγούς (συναντήθηκα ακόμη και σε μια επιλογή όπου δύο διακομιστές συνδέονται επιπλέον με ένα καλώδιο μηδενικού μόντεμ και στέλνουν έναν καρδιακό παλμό μέσω αυτού, ώστε την κατάλληλη στιγμή ο εφεδρικός διακομιστής να το αναγνωρίσει και να το αναλάβει έλεγχος). Τώρα υπάρχουν ευκολότεροι και δωρεάν τρόποι. Εάν έχετε έναν ιστότοπο με γάτες, δεν υπάρχει καμία δικαιολογία για να μην εφαρμόσετε ακόμα το failover για αυτό!

Λοιπόν, εκτός αυτού, για ένα σύστημα ανακατεύθυνσης χρειάζεστε έναν άλλο διακομιστή (και ίσως περισσότερους από έναν) και πριν αυτό ήταν ένα μεγάλο κόστος, τώρα μπορείτε να πάρετε ένα VDS για πένες.

Το πιο αξιόπιστο site με γάτες

Για να δείξουμε πρακτικά τη λύση με το okerr + δυναμικό dns, ξεκινήσαμε την ιστοσελίδα μας με γάτες cat.okerr.com. Μισούμε τις γάτες, οπότε δεν θα υπάρχουν πολλές από αυτές εκεί. Υπάρχουν τρεις τοποθεσίες συνολικά, ο καθένας φαίνεται περίπου ο ίδιος (όλα στο ίδιο πρότυπο), αλλά με διαφορετικά γατάκια για να είναι εύκολο να τα ξεχωρίσεις, και ο καθένας γράφει τεχνικές πληροφορίες για να δει πώς λειτουργεί το failover. Η σελίδα ενημερώνεται μία φορά κάθε 1 λεπτό, αλλά μπορείτε πάντα να κάνετε κλικ στην επαναφόρτωση στο πρόγραμμα περιήγησης.

Στις τεχνικές πληροφορίες υπάρχει η γραμμή “status=OK”. Μερικές φορές οι διακομιστές προσποιούνται προβλήματα και γράφουν status=ERR. Ο κύριος διακομιστής "φαίνεται να κολλάει" σε 20 λεπτά κάθε ώρα (0:20, 1:20, 2:20, ...). Εφεδρικός διακομιστής σε 40 λεπτά. Ο τελευταίος διακομιστής (διακομιστής "συγγνώμη") λειτουργεί πάντα. Σε 0 λεπτά κάθε ώρα, ο κύριος και ο εφεδρικός διακομιστής "αποκαθίστανται".

Απλή ανακατεύθυνση για ιστότοπο (παρακολούθηση + δυναμικό DNS)

Αν ανοίξετε τον ιστότοπο και τον αφήσετε στην καρτέλα, θα δείτε ότι δεν κολλάει ποτέ (αν και κάθε μεμονωμένος διακομιστής προσομοιώνει περιοδικά ένα πρόβλημα) και σε περίπτωση προβλήματος με τον διακομιστή, απλώς «τρέχει» μεταξύ ζωντανών διακομιστών. Η εικόνα, το όνομα και η διεύθυνση του διακομιστή και ο ρόλος του θα αλλάξουν. Μερικές φορές μπορείτε να συλλάβετε τη στιγμή που το status = ERR (το πρόβλημα υπάρχει ήδη, αλλά ολόκληρο το σχέδιο ανακατεύθυνσης δεν έχει λειτουργήσει ακόμη), αλλά η επόμενη ενημέρωση θα σας εμφανίσει μια σελίδα από την τοποθεσία εργασίας.

Failover σε okerr + δυναμικό DNS

Ας δούμε πώς λειτουργεί κάτω από την κουκούλα. Η αποστολή του αρχείου είναι να διασφαλίζει ότι η διεύθυνση cat.okerr.com δείχνει πάντα τη διεύθυνση IP του διακομιστή που λειτουργεί.
Πίσω από κάθε διακομιστή που φιλοξενεί τον ιστότοπό μας για cat στο okerr υπάρχει μια ένδειξη που ελέγχει την κατάστασή του μία φορά το λεπτό.

Απλή ανακατεύθυνση για ιστότοπο (παρακολούθηση + δυναμικό DNS)

Σε αυτό το στιγμιότυπο οθόνης βλέπουμε πώς ελέγχεται ο ιστότοπος cat.okerr.com από τον διακομιστή alpha.okerr.com. Η σελίδα πρέπει να περιέχει status=OK, και όπως βλέπουμε παραπάνω, η κατάσταση του δείκτη μας είναι εντάξει τώρα. Όταν ο διακομιστής «σπάσει», θα υπάρξει ERR. (Αυτό είναι μόνο ένα παράδειγμα δείκτη, το okerr παρακολουθεί, ώστε να μπορείτε να επισυνάψετε οποιονδήποτε τύπο δείκτη, για παράδειγμα, να ελέγξετε τον ελεύθερο χώρο στο δίσκο, τον αριθμό των νέων παραγγελιών στη βάση δεδομένων, ακόμη και λογικούς δείκτες, για παράδειγμα , τη νύχτα θα υπάρχουν κάποια κριτήρια σφάλματος και την ημέρα άλλα) .

Στις ρυθμίσεις του έργου δημιουργήσαμε ένα σχήμα ανακατεύθυνσης με αυτούς τους δείκτες:

Απλή ανακατεύθυνση για ιστότοπο (παρακολούθηση + δυναμικό DNS)

Το σχήμα έχει τρεις δείκτες (τρεις διακομιστές), διαφορετικούς σε προτεραιότητα. Ο κύριος διακομιστής για τον ιστότοπο είναι ο charlie, αν δεν λειτουργεί (δεν θα έχει "status=OK" ή απλά δεν είναι διαθέσιμος), τότε μπράβο και στην τελευταία περίπτωση - άλφα. Η δεξιά πλευρά της σελίδας δείχνει την κατάσταση της εγγραφής DNS σε διαφορετικούς διακομιστές.

Για όσους παρατήρησαν ότι χρησιμοποιείται το όνομα cat.he.okerr.com: Χρησιμοποιούμε ένα ελαφρώς πιο περίπλοκο σχήμα. Αντί απλώς να αλλάξουμε την εγγραφή DNS του cat.okerr.com, αλλάζουμε το cat.he.okerr.com (στον πάροχο Dynamic DNS HurricaneElectric), και το cat.okerr.com είναι ένα CNAME (ψευδώνυμο), το οποίο δεν αλλάζει, δείχνει πάντα στο cat.he.okerr.com. Το Hurricane μας αρέσει περισσότερο ως δυναμικό DNS και έχει κλειδιά για τη διαχείριση μιας μόνο καταχώρησης (και όχι μιας ολόκληρης ζώνης), πιστεύουμε ότι είναι πιο ασφαλές. Επίσης, δεν χρειάζεται να καθορίσετε βασικούς κωδικούς πρόσβασης στο okerr για να διαχειριστείτε ολόκληρο τον τομέα, αλλά μόνο για έναν υποτομέα ή εγγραφή.

Από την πτώση στην άνοδο

Βήμα προς βήμα πώς λειτουργεί αυτό το σχήμα:

  1. Παρουσιάζεται πρόβλημα (προσομοίωση) στον διακομιστή
  2. Ο αισθητήρας okerr ελέγχει την κατάσταση κάθε διακομιστή μία φορά το λεπτό και αναφέρεται στον κύριο διακομιστή έργου στο okerr
  3. Η αντίστοιχη ένδειξη διακομιστή αλλάζει από OK σε ERR
  4. Όταν αλλάξει η κατάσταση της ένδειξης, υπολογίζεται εκ νέου το failover και υπολογίζεται ποια διεύθυνση πρέπει να οριστεί (εάν είναι απαραίτητο. Για παράδειγμα, εάν ο κύριος διακομιστής λειτουργεί και ταυτόχρονα ο διακομιστής αντιγράφων ασφαλείας πέθανε, δεν θα γίνουν αλλαγές έκανε)
  5. Αυτή η διεύθυνση αναφέρεται στην υπηρεσία δυναμικού dns. Με την ολοκλήρωση αυτού του σταδίου, θα δείτε την κατάσταση "συγχρονισμένο" στα δεξιά.
  6. Πολύ σύντομα (δευτερόλεπτα) η εγγραφή θα φτάσει στους διακομιστές DNS του domain σας (για το cat site είναι ns1-ns5.he.net).
  7. Από αυτή τη στιγμή, ορισμένοι χρήστες θα βρίσκονται ήδη στον νέο ζωντανό διακομιστή. Ωστόσο, δεν έχουν ενημερώσει ακόμη τις εγγραφές όλοι οι διακομιστές DNS στον κόσμο και η παλιά εγγραφή μπορεί να είναι κάπου προσωρινά αποθηκευμένη. Μπορείτε να δείτε πώς «χορεύουν» τα δεδομένα σε δημόσιους διακομιστές DNS, δείχνοντας είτε μια νέα είτε μια παλιά τιμή. Εάν ενημερώσετε τη σελίδα διαμόρφωσης ανακατεύθυνσης, ο ίδιος ο χειριστής θα ζητήσει νέα δεδομένα από τους διακομιστές DNS.
  8. Αφού σταθεροποιηθούν τα δεδομένα, η παλιά εγγραφή στην κρυφή μνήμη είναι σάπια παντού - και το 100% των αιτημάτων πηγαίνει στον νέο διακομιστή.

Για να επιταχυνθεί το στάδιο 7 (συχνά το μεγαλύτερο), το TTL της δυναμικής εγγραφής DNS θα πρέπει να ρυθμιστεί όσο το δυνατόν χαμηλότερα. Συνήθως οι υπηρεσίες επιτρέπουν διαστήματα 90-120 δευτερολέπτων. Αυτός είναι ένας απολύτως λογικός συμβιβασμός.

επιπλέον

Όλα αυτά μπορούν να ρυθμιστούν σε ένα βράδυ (αν έχετε ήδη έναν εφεδρικό διακομιστή). Τόσο οι υπηρεσίες okerr όσο και οι δυναμικές υπηρεσίες DNS είναι δωρεάν. Για να λάβετε περισσότερους ελέγχους στο okerr και μια μικρότερη περίοδο επαλήθευσης, πρέπει να ολοκληρώσετε την εκπαίδευση (από τη σελίδα του προφίλ σας). Με την ολοκλήρωση, το επίπεδο αυξάνεται αμέσως (20 δείκτες ανά ώρα + 1 γρήγορο, 10 λεπτά). Και αν είναι λίγοι, γράψτε στο [προστασία μέσω email], πιθανότατα θα είναι δυνατό να αυξηθεί (μέχρι στιγμής υπήρχε πάντα μια ευκαιρία, δεν έχω αρνηθεί ποτέ, αντίθετα, την πρόσφερα μόνος μου). Απλώς, αρχικά δεν θέλω να υποσχεθώ σε όλους τα πάντα, δεν είμαι σίγουρος ότι έχω αρκετή ικανότητα να κρατήσω τον λόγο μου. Αλλά μέχρι στιγμής υπάρχουν λίγοι χρήστες, επομένως δεν υπάρχουν προβλήματα με την αύξηση των ορίων.

Τι μπορεί να κάνει το okerr γενικά - κοιτάξτε τον ιστότοπο παρουσίαση. Γενικά, πρόκειται για παρακολούθηση (zabbix από το σύννεφο) και το αρχείο αρχείων είναι μια ωραία πρόσθετη λειτουργία. Μπορείτε επίσης να αποκτήσετε πρόσβαση στο demo από τον ιστότοπο χωρίς εγγραφή.

Όταν αλλάξει η κατάσταση της ένδειξης, αποστέλλεται ειδοποίηση μέσω email ή Telegram. (Κοιτάξαμε τι συνέβαινε και συνειδητοποιήσαμε ότι το τηλεγράφημα φαίνεται να είναι ο πιο αξιόπιστος αγγελιοφόρος. Χάρη στο RKN για το stress test!) Με το okerr να έχει ρυθμιστεί σωστά, οποιαδήποτε ειδοποίηση είναι είτε ένα μήνυμα "πέστε τα πάντα, πρέπει να το διορθώσουμε!" , ή "σβήνουν τα φώτα!" Δεν θα πρέπει να υπάρχουν επιπλέον ειδοποιήσεις από το okerra (εάν υπάρχουν, πρέπει να ρυθμιστούν με κάποιο τρόπο). Για παράδειγμα, για τον ιστότοπό μας cat, ο διακομιστής άλφα είναι ο τελευταίος και δεν πλαστογραφεί ποτέ ένα σφάλμα. Αν ξαπλώσει, πρέπει να το μάθουμε. Αλλά άλλοι διακομιστές προσποιούνται συνεχώς σφάλματα, επομένως, για να μην λαμβάνουν ειδοποιήσεις πολλές φορές την ώρα, αυτοί οι δείκτες έχουν μια κατάσταση "σιωπηλής".

Είναι επίσης λογικό να δημιουργήσετε έναν διακομιστή συγγνώμης (σε οποιαδήποτε φθηνότερη φιλοξενία), ο οποίος είτε θα έχει τη σελίδα συγγνώμης (σε περίπτωση που όλοι οι κύριοι και οι εφεδρικοί διακομιστές είναι εκτός λειτουργίας) είτε θα σας ανακατευθύνει στη σελίδα κατάστασης στο okerr (για παράδειγμα, τη δική μας cp.okerr.com/status/okerr) ή statuspage.io.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο