Едноставно откажување за веб-локација (мониторинг + динамичен DNS)

Во овој напис сакам да покажам колку лесно и бесплатно можете да направите шема за неуспех за веб-локација (или која било друга Интернет услуга) користејќи комбинација на мониторинг окерр и динамична DNS услуга. Односно, во случај на какви било проблеми со главната страница (од проблем со „PHP Error“ на страницата, до недостаток на простор или едноставно сомнително мал број нарачки во случај на онлајн продавница), новите посетители ќе да се насочат кон вториот (третиот и така натаму) понатаму) познат работен сервер, или на страницата „Извини“, каде учтиво ќе објаснат дека „има проблем, веќе сме свесни и веќе го поправаме, ние ќе го поправи наскоро“ (и во овој случај всушност веќе ќе знаете и ќе можете да поправите).

Да се ​​живее со фајловер или без?

Додека не се случи некој проблем, нема многу разлика. Но, кога тоа ќе се случи, без прекин, често се случува следново: се обидувате брзо да откриете што е проблемот, не функционира (резервните копии не се распоредуваат, софтверот поради некоја причина не работи како што треба од документацијата , итн.), но нема време, нема сервер - сајтовите лежат, клиентите се јавуваат, сите се на работ, се обидувате некако грубо и валкано да го поправите „со лента“, потоа некако изгледа дека се вклучува. со патерици и животи. Мислите дека во слободното време ќе треба подетално да го сфатите и прекрасно да направите се, но нема ништо потрајно од привремено.

Сега, како се случува ова во прекрасна верзија со датотека:

  • Се случува грешка
  • Грешката се открива автоматски
  • Известувањето е испратено
  • Префрлувањето на еден од резервните сервери се пренесува
  • Мирно и без паника, проблемот се средува, коригира и серверот повторно се става во функција.

Оваа шема, се разбира, може да има и свои проблеми, но сепак, шемата е линеарна, секоја фаза е едноставна и главната работа е што може да се дебагира одделно, така што шансата за неуспех на оваа шема е многу помала, и сите дејства може да се автоматизираат и да се извршат брзо (за разлика од задачата за наоѓање и поправање непознати епски глупости). Вашиот авион слета во далечна земја, го вклучувате телефонот и гледате известување во телеграма дека серверот паднал, но се е во ред, резервниот сервер е активиран, можете да продолжите со патувањето, не ви треба да лета назад или да го поправи преку SSH од најблиското кафуле со WiFi . Ќе сфатиш кога ќе ти биде попогодно.

Иднината е веќе тука!

Претходно, главниот проблем што го правеше failover често неприфатливо решение беше износот на трошоците што ги чини. Или беше неопходно да се купи скап хардвер (и да се поканат уште поскапи специјалисти). Или колективна фарма нешто комплицирано според водичите (дури наидов на опција каде два сервери се дополнително поврзани со кабел за нула модем, и преку него праќаат отчукување на срцето, за во вистинско време резервниот сервер да го препознае и да го преземе контрола). Сега има полесни и бесплатни начини. Ако имате веб-локација со мачки, нема оправдување да не го имплементирате Failover за него уште!

Па, освен тоа, за шема за фајловер ви треба друг сервер (а можеби и повеќе од еден) и порано ова беше голем трошок, сега можете да добиете VDS за пени.

Најсигурен сајт со мачки

За практично да го илустрираме решението со okerr + динамичен dns, ја отворивме нашата веб-страница со мачки cat.okerr.com. Мразиме мачки, па нема да ги има многу таму. Има вкупно три страници, секоја изгледа приближно исто (сите на ист шаблон), но со различни мачиња за полесно да се разликуваат, и секој пишува технички информации за да види како функционира фајлверот. Страницата се ажурира еднаш на секои 1 минута, но секогаш можете да кликнете повторно вчитај во прелистувачот.

Во техничките информации има линија „статус=OK“. Понекогаш серверите глумат проблеми и пишуваат статус=ERR. Главниот сервер „се чини дека паѓа“ на 20 минути на секој час (0:20, 1:20, 2:20, ...). Резервен сервер за 40 минути. Последниот сервер (сервер „извини“) секогаш работи. На 0 минути од секој час, примарниот и резервниот сервер се „обновуваат“.

Едноставно откажување за веб-локација (мониторинг + динамичен DNS)

Ако ја отворите страницата и ја оставите во табот, ќе видите дека таа никогаш не паѓа (иако секој поединечен сервер периодично симулира проблем), а во случај на проблем со серверот, тој едноставно „трча“ помеѓу живи сервери. Сликата, името и адресата на серверот и неговата улога ќе се променат. Понекогаш може да го фатите моментот кога статус = ERR (проблемот веќе постои, но целата шема за отфрлање сè уште не функционира), но следното ажурирање ќе ви покаже страница од работната локација.

Неуспех на okerr + динамичен DNS

Ајде да видиме како работи под хаубата. Задачата на подигнувачот е да осигура дека адресата cat.okerr.com секогаш укажува на IP адресата на работниот сервер.
Зад секој од серверите што ја хостираат нашата страница за мачки во okerr има индикатор што го проверува неговиот статус еднаш во минута.

Едноставно откажување за веб-локација (мониторинг + динамичен DNS)

Во оваа слика од екранот гледаме како страницата cat.okerr.com се проверува од серверот alpha.okerr.com. Страницата треба да содржи статус=OK, и како што гледаме погоре, нашиот статус на индикаторот сега е во ред. Кога серверот ќе се „скрши“, ќе има ERR. (Ова е само еден пример за индикатор, okerr следи, па можете да прикачите секаков вид индикатор, на пример, да го проверите слободниот простор на дискот, бројот на нови нарачки во базата на податоци, па дури и логичките индикатори, на пример , ноќе ќе има некои критериуми за грешка, а преку ден други) .

Во поставките на проектот создадовме шема за неуспех со овие индикатори:

Едноставно откажување за веб-локација (мониторинг + динамичен DNS)

Шемата има три индикатори (три сервери), различни по приоритет. Главниот сервер за страницата е charlie, ако не работи (нема да има „статус=OK“ или едноставно е недостапен), тогаш браво и во вториот случај - алфа. Десната страна на страницата го прикажува статусот на записот DNS на различни сервери.

За оние кои забележале дека се користи името cat.he.okerr.com: Користиме малку посложена шема. Наместо само да го менуваме записот DNS на cat.okerr.com, го менуваме cat.he.okerr.com (на давателот на Dynamic DNS Ураган електрик), а cat.okerr.com е CNAME (псевдоним), кој не се менува, секогаш укажува на cat.he.okerr.com. Нам ни се допаѓа Hurricane повеќе како динамичен DNS и има клучеви за управување со еден влез (наместо цела зона), мислиме дека е побезбеден. Исто така, не мора да наведете клучни лозинки во okerr за да управувате со целиот домен, туку само за поддомен или запис.

Од паѓање до издигнување

Чекор по чекор како функционира оваа шема:

  1. Се појавува проблем (симулиран) на серверот
  2. Сензорот okerr го проверува статусот на секој сервер еднаш во минута и известува до главниот проектен сервер во okerr
  3. Соодветниот индикатор на серверот се менува од OK во ERR
  4. Кога ќе се промени статусот на индикаторот, повторно се пресметува неуспехот и се пресметува која адреса треба да се постави (доколку е потребно. На пример, ако главниот сервер работи, а во исто време резервниот сервер изумре, нема да има промени направено)
  5. Оваа адреса е пријавена до услугата динамична dns. По завршувањето на оваа фаза, ќе го видите статусот „синхронизирано“ на десната страна.
  6. Многу брзо (секунди) записот ќе стигне до DNS серверите на вашиот домен (за страницата cat е ns1-ns5.he.net).
  7. Од овој момент, некои корисници веќе ќе бидат на новиот сервер во живо. Но, сè уште не сите DNS сервери во светот ги ажурирале записите, а стариот запис сè уште може да биде некаде кеширан. Можете да видите како „танцуваат“ податоците на јавните DNS сервери, покажувајќи нова или стара вредност. Ако ја ажурирате страницата за конфигурација на неуспех, самиот оператор ќе бара нови податоци од DNS серверите.
  8. Откако податоците се стабилизираат, стариот кеширан запис е скапан насекаде - сите 100% од барањата одат на новиот сервер.

За да се забрза фазата 7 (често најдолгата), TTL на записот за динамички DNS треба да се постави што е можно пониско. Обично услугите дозволуваат интервали од 90-120 секунди. Ова е сосема разумен компромис.

дополнително

Сето ова може да се конфигурира навечер (ако веќе имате резервен сервер). И okerr и динамичните DNS услуги се бесплатни. За да добиете повеќе проверки во okerr и пократок период за верификација, треба да завршите обука (од страницата на вашиот профил). По завршувањето, нивото веднаш се зголемува (20 индикатори на час + 1 брз, 10 минути). А ако ги има малку, пишете [заштитена по е-пошта], најверојатно ќе може да се зголеми (досега секогаш имало можност, никогаш не сум одбила, напротив сам ја понудив). Само што на почетокот не сакам на сите да им ветувам сè, не сум сигурен дека имам доволно капацитет да го одржам зборот. Но, засега има малку корисници, така што нема проблеми со зголемување на лимитите.

Што може општо да направи okerr - погледнете ја веб-страницата презентација. Во принцип, ова е мониторинг (zabbix од облакот), а фајлерот е убава дополнителна функција. Можете исто така да пристапите до демото од страницата без регистрација.

Кога ќе се промени статусот на индикаторот, се испраќа известување преку е-пошта или Телеграма. (Погледнавме што се случува и сфативме дека телеграмата се чини дека е најсигурниот гласник. Благодарение на RKN за стрес тестот!) Со правилно конфигурирање на okerr, секое известување е или сигнал „отфрли сè, треба да го поправиме!“ , или „исклучени светла!“ Не треба да има дополнителни предупредувања од okerra (ако има, тие треба да се конфигурираат некако поинаку). На пример, за нашата страница за мачки, алфа-серверот е последен и никогаш не лажира грешка. Ако легне, треба да знаеме. Но, другите сервери постојано глумат грешки, затоа, за да не добиваат предупредувања неколку пати на час, тие индикатори имаат статус „тивок“.

Исто така, има смисла да се создаде сервер за извинување (на кој било најевтин хостинг), кој или ќе ја има вашата страница за извинување (во случај сите главни и резервни сервери да се исклучени) или ќе ве пренасочи на страницата за статус на okerr (на пример, нашата cp.okerr.com/status/okerr) или статус страница.io.

Извор: www.habr.com

Додадете коментар