Conversió per error senzilla per al lloc web (monitorització + DNS dinàmic)

En aquest article vull mostrar com de fàcil i gratuït podeu fer un esquema de migració per error per a un lloc web (o qualsevol altre servei d'Internet) mitjançant una combinació de supervisió. okerr i servei DNS dinàmic. És a dir, en cas de qualsevol problema amb el lloc principal (des d'un problema amb un "Error PHP" a la pàgina, fins a la manca d'espai o simplement un nombre sospitosament petit de comandes en el cas d'una botiga en línia), els nous visitants podran ser dirigit al segon (tercer, i així successivament) més enllà) a un servidor que funcioni conegut, o a la pàgina "Ho sentim", on explicaran educadament que "hi ha un problema, ja som conscients i ja l'estem solucionant, ho solucionarà aviat” (i en aquest cas ja estaràs al corrent i podràs reparar).

Viure amb failover o sense?

Fins que no passa algun problema, no hi ha molta diferència. Però quan passa, sense migració per error sovint passa el següent: intenteu esbrinar ràpidament quin és el problema, no funciona (les còpies de seguretat no es despleguen, el programari per algun motiu no funciona com hauria de ser a la documentació). , etc.), però no hi ha temps, no hi ha servidor: els llocs estan ajaguts, els clients estan trucant, tothom està al límit, estàs intentant arreglar-ho d'alguna manera grossa i brut "amb cinta", i d'alguna manera sembla que s'engega. amb crosses i vides. Creus que en el teu temps lliure hauràs d'esbrinar-ho amb més detall i refer-ho tot molt bé, però no hi ha res més permanent que temporal.

Ara, com passa això en una versió bonica amb un fitxer:

  • Passa un error
  • L'error es detecta automàticament
  • S'envia l'alerta
  • Es transfereix el canvi a un dels servidors de còpia de seguretat
  • Amb calma i sense pànic, es resol, es corregeix el problema i es torna a posar en funcionament el servidor.

Aquest esquema, per descomptat, també pot tenir els seus propis problemes, però tot i així, l'esquema és lineal, cada etapa és senzilla i el més important és que es pot depurar per separat, de manera que la possibilitat de fracàs d'aquest esquema és molt menor i totes les accions es poden automatitzar i realitzar ràpidament (a diferència de la tasca de trobar i arreglar una merda èpica desconeguda). El teu avió ha aterrat en un país llunyà, encengues el telèfon i veus una notificació en un telegrama que el servidor s'ha estavellat, però tot està bé, s'ha activat el servidor de còpia de seguretat, pots continuar el viatge, no cal per tornar a volar o reparar-lo mitjançant SSH des de la cafeteria més propera amb WiFi. Ho descobriràs quan sigui més convenient.

El futur ja és aquí!

Anteriorment, el principal problema que feia que el failover sovint era una solució inacceptable era la quantitat de cost que costava. O calia comprar maquinari car (i convidar especialistes encara més cars). O granja col·lectiva quelcom complicat segons les guies (fins i tot em vaig trobar amb una opció on dos servidors es connecten addicionalment amb un cable de mòdem nul, i hi envien un batec, perquè en el moment oportú el servidor de còpia de seguretat ho reconegui i es faci càrrec). control). Ara hi ha maneres més fàcils i gratuïtes. Si teniu un lloc web amb gats, no hi ha excusa per no implementar-lo encara!

Bé, a més, per a un esquema de failover necessites un altre servidor (i potser més d'un) i abans això suposava una gran despesa, ara pots aconseguir un VDS per cèntims.

El lloc més fiable amb gats

Per il·lustrar pràcticament la solució amb okerr + dynamic dns, vam llançar el nostre lloc web amb gats cat.okerr.com. Odiem els gats, així que no n'hi haurà molts. Hi ha tres llocs en total, cadascun es veu aproximadament igual (tots a la mateixa plantilla), però amb gatets diferents perquè sigui fàcil de distingir, i cadascun escriu informació tècnica per veure com funciona el failover. La pàgina s'actualitza una vegada cada 1 minut, però sempre podeu fer clic a Torna a carregar al navegador.

A la informació tècnica hi ha una línia "estat=OK". De vegades, els servidors fingen problemes i escriuen status=ERR. El servidor principal "sembla que es bloqueja" als 20 minuts de cada hora (0:20, 1:20, 2:20, ...). Còpia de seguretat del servidor en 40 minuts. L'últim servidor ("ho sentim") sempre està en execució. A 0 minuts de cada hora, es "restauren" els servidors principal i de seguretat.

Conversió per error senzilla per al lloc web (monitorització + DNS dinàmic)

Si obriu el lloc i el deixeu a la pestanya, veureu que mai es bloqueja (tot i que cada servidor individual simula periòdicament un problema), i en cas d'un problema amb el servidor, simplement "executa" entre servidors en directe. La imatge, el nom i l'adreça del servidor i la seva funció canviaran. De vegades podeu captar el moment en què estat = ERR (el problema ja existeix, però tot l'esquema de failover encara no ha funcionat), però la propera actualització us mostrarà una pàgina del lloc de treball.

Failover en okerr + DNS dinàmic

Vegem com funciona sota el capó. La tasca del fitxer és assegurar-se que l'adreça cat.okerr.com sempre apunta a l'adreça IP del servidor de treball.
Darrere de cadascun dels servidors que allotgen el nostre lloc de gats a okerr hi ha un indicador que en comprova l'estat una vegada per minut.

Conversió per error senzilla per al lloc web (monitorització + DNS dinàmic)

En aquesta captura de pantalla veiem com es verifica el lloc cat.okerr.com des del servidor alpha.okerr.com. La pàgina hauria de contenir status=OK i, com veiem més amunt, l'estat del nostre indicador és correcte ara. Quan el servidor "es trenca", hi haurà una ERR. (Aquest és només un exemple d'indicador, okerr és el seguiment, de manera que podeu adjuntar qualsevol tipus d'indicador, per exemple, comprovar l'espai lliure al disc, el nombre de noves comandes a la base de dades i fins i tot indicadors lògics, per exemple , a la nit hi haurà uns criteris d'error, i durant el dia d'altres).

A la configuració del projecte vam crear un esquema de failover amb aquests indicadors:

Conversió per error senzilla per al lloc web (monitorització + DNS dinàmic)

L'esquema té tres indicadors (tres servidors), diferents en prioritat. El servidor principal del lloc és charlie, si no funciona (no tindrà "estat=OK" o simplement no està disponible), aleshores bravo i en aquest últim cas - alfa. La part dreta de la pàgina mostra l'estat del registre DNS en diferents servidors.

Per a aquells que van notar que s'utilitza el nom cat.he.okerr.com: Utilitzem un esquema una mica més complex. En lloc de canviar només el registre DNS de cat.okerr.com, canviem cat.he.okerr.com (al proveïdor de DNS dinàmic Huracà elèctric), i cat.okerr.com és un CNAME (àlies), que no canvia, sempre apunta a cat.he.okerr.com. Ens agrada més Hurricane com a DNS dinàmic, i té claus per gestionar una única entrada (en lloc d'una zona sencera), creiem que és més segur. Tampoc cal que especifiqueu contrasenyes clau a okerr per gestionar tot el domini, sinó només per a un subdomini o registre.

De baixar a pujar

Com funciona aquest esquema pas a pas:

  1. Es produeix un problema (simulat) al servidor
  2. El sensor okerr comprova l'estat de cada servidor una vegada per minut i informa al servidor principal del projecte a okerr
  3. L'indicador de servidor corresponent canvia d'OK a ERR
  4. Quan l'estat de l'indicador canvia, es torna a calcular la migració per error i es calcula quina adreça s'ha d'establir (si cal. Per exemple, si el servidor principal funciona i, al mateix temps, el servidor de còpia de seguretat ha mort, no hi haurà canvis). fet)
  5. Aquesta adreça s'informa al servei dns dinàmic. Un cop finalitzada aquesta etapa, veureu l'estat "sincronitzat" a la dreta.
  6. Molt aviat (segons) el registre arribarà als servidors DNS del vostre domini (per al lloc del gat és ns1-ns5.he.net).
  7. A partir d'aquest moment, alguns usuaris ja estaran al nou servidor en directe. Però no tots els servidors DNS del món encara han actualitzat els registres, i és possible que el registre antic encara estigui a la memòria cau en algun lloc. Podeu veure com les dades dels servidors DNS públics "ballen", mostrant un valor nou o antic. Si actualitzeu la pàgina de configuració de failover, el propi operador sol·licitarà dades noves als servidors DNS.
  8. Després que les dades s'hagin estabilitzat, el registre antic de la memòria cau està podrit a tot arreu: el 100% de les sol·licituds van al nou servidor.

Per accelerar l'etapa 7 (sovint la més llarga), el TTL del registre DNS dinàmic s'ha de configurar el més baix possible. Normalment els serveis permeten intervals de 90-120 segons. Aquest és un compromís completament raonable.

a més

Tot això es pot configurar en una tarda (si ja teniu un servidor de còpia de seguretat). Tant els serveis d'okerr com els de DNS dinàmic són gratuïts. Per obtenir més comprovacions i un període de comprovació més curt a okerr, heu de completar la formació (des de la pàgina del perfil). En completar-ho, el nivell augmenta immediatament (20 indicadors durant una hora + 1 ràpid de 10 minuts). I si no n'hi ha prou, escriviu a support@okerr.com, el més probable és que sigui possible augmentar-lo (fins ara sempre hi ha hagut una oportunitat, mai he rebutjat, al contrari, l'he ofert jo mateix). Simplement no vull prometre-ho tot a tothom des del principi, no estic segur que hi hagi prou capacitat per complir la meva paraula. Però fins ara hi ha pocs usuaris, així que no hi ha problemes per augmentar els límits.

Què pot fer okerr en general: mireu el lloc web presentació. En general, això és monitorització (zabbix des del núvol) i el fitxer és una funció addicional agradable. També podeu accedir a la demostració des del lloc sense registrar-vos.

Quan l'estat de l'indicador canvia, s'envia una notificació per correu electrònic o Telegram. (Vam mirar què estava passant i ens vam adonar que Telegram sembla ser el missatger més fiable. Gràcies a RKN per la prova d'estrès!) Amb okerr configurat correctament, qualsevol notificació és un senyal "deixeu-ho tot, hem de solucionar-ho!" , o "s'apaga!" No hi hauria d'haver cap alerta addicional de l'okerra (si n'hi ha, s'han de configurar d'una manera diferent). Per exemple, per al nostre lloc de gats, el servidor alfa és l'últim i mai no simula un error. Si s'estira, ho hem de saber. Però altres servidors fingen errors constantment, de manera que per no rebre alertes diverses vegades per hora, aquests indicadors tenen un estat "silenciós".

També té sentit crear un servidor de disculpes (en qualsevol allotjament més barat), que tindrà la vostra pàgina de disculpes (en cas que tots els servidors principals i de seguretat estiguin inactivats) o us redirigirà a la pàgina d'estat d'okerr (per exemple, la nostra). cp.okerr.com/status/okerr) o statuspage.io.

Font: www.habr.com

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster