Պարզ ձախողում կայքի համար (մոնիթորինգ + դինամիկ DNS)

Այս հոդվածում ես ուզում եմ ցույց տալ, թե որքան հեշտ և անվճար կարող եք կատարել վեբկայքի (կամ ցանկացած այլ ինտերնետային ծառայության) ձախողման սխեման՝ օգտագործելով մոնիտորինգի համակցությունը: օկերր և դինամիկ DNS ծառայություն: Այսինքն՝ հիմնական կայքի հետ կապված որևէ խնդրի դեպքում (էջի «PHP սխալի» հետ կապված խնդրից, տարածքի պակասից կամ առցանց խանութի դեպքում պարզապես կասկածելի փոքր թվով պատվերներից), նոր այցելուները կ ուղղորդվել դեպի երկրորդ (երրորդ և այլն) հետագա) հայտնի աշխատող սերվեր, կամ «Ներողություն» էջում, որտեղ նրանք քաղաքավարի կբացատրեն, որ «խնդիր կա, մենք արդեն տեղյակ ենք և արդեն ուղղում ենք այն, մենք այն շուտով կուղղվի» (և այս դեպքում դուք իրականում արդեն տեղյակ կլինեք և կարող եք վերանորոգել):

Ապրել անհաջողությա՞մբ, թե՞ առանց դրա:

Քանի դեռ ինչ-որ խնդիր չի առաջացել, մեծ տարբերություն չկա: Բայց երբ դա տեղի է ունենում, առանց ձախողման հաճախ տեղի է ունենում հետևյալը. փորձում եք արագ պարզել, թե որն է խնդիրը, այն չի աշխատում (կրկնօրինակները չեն տեղակայվում, ծրագրաշարը ինչ-ինչ պատճառներով չի աշխատում այնպես, ինչպես պետք է փաստաթղթերից: , և այլն), բայց ժամանակ չկա, սերվեր չկա. կայքերը պառկած են, հաճախորդները զանգում են, բոլորը եզրին են, դուք փորձում եք ինչ-որ կերպ կոպիտ և կեղտոտ «ժապավենով» շտկել այն, հետո ինչ-որ կերպ թվում է, որ այն սկսվում է: հենակներով ու կյանքերով։ Դուք կարծում եք, որ ազատ ժամանակ ձեզ հարկավոր կլինի ավելի մանրամասն պարզել դա և ամեն ինչ գեղեցիկ վերափոխել, բայց չկա ավելի մշտական, քան ժամանակավոր:

Այժմ, թե ինչպես է դա տեղի ունենում ֆայլերի հետ գեղեցիկ տարբերակում.

  • Սխալ է տեղի ունենում
  • Սխալը հայտնաբերվում է ավտոմատ կերպով
  • Ահազանգ է ուղարկվում
  • Պահուստային սերվերներից մեկին անցնելը փոխանցվում է
  • Հանգիստ և առանց խուճապի խնդիրը կարգավորվում է, շտկվում, և սերվերը նորից գործարկվում։

Այս սխեման, իհարկե, կարող է նաև ունենալ իր խնդիրները, բայց, այնուամենայնիվ, սխեման գծային է, յուրաքանչյուր փուլ պարզ է, և գլխավորն այն է, որ այն կարելի է առանձին կարգաբերել, ուստի այս սխեմայի ձախողման հավանականությունը շատ ավելի ցածր է, և բոլոր գործողությունները կարող են ավտոմատացվել և արագ իրականացվել (ի տարբերություն անհայտ էպիկական խայտառակությունը գտնելու և շտկելու առաջադրանքից): Ձեր ինքնաթիռը վայրէջք է կատարել հեռավոր երկրում, միացնում եք հեռախոսը և հեռագրում տեսնում եք ծանուցում, որ սերվերը վթարի է ենթարկվել, բայց ամեն ինչ կարգին է, պահուստային սերվերն ակտիվացված է, կարող եք շարունակել ձեր ճանապարհորդությունը, ձեզ հարկավոր չէ հետ թռչել կամ վերանորոգել այն SSH-ի միջոցով WiFi-ով մոտակա սրճարանից: Դուք դա կհասկանաք, երբ դա ավելի հարմար լինի:

Ապագան արդեն այստեղ է:

Նախկինում հիմնական խնդիրը, որը հաճախ անընդունելի լուծում էր դարձնում failover-ը, դրա արժեքի չափն էր: Կամ անհրաժեշտ էր գնել թանկարժեք տեխնիկա (և հրավիրել էլ ավելի թանկ մասնագետների)։ Կամ կոլեկտիվ ֆերմա ինչ-որ բարդ բան, ըստ ուղեցույցների (ես նույնիսկ հանդիպեցի մի տարբերակի, որտեղ երկու սերվեր լրացուցիչ միացված են զրոյական մոդեմի մալուխով, և նրանք սրտի բաբախյուն են ուղարկում դրա միջոցով, որպեսզի պահուստային սերվերը ճիշտ ժամանակին ճանաչի այն և ստանձնի այն: վերահսկողություն): Այժմ կան ավելի հեշտ և անվճար ուղիներ: Եթե ​​դուք ունեք կատուներով կայք, ապա ձեզ համար որևէ արդարացում չկա դրա համար failover չկիրառելու համար:

Դե, բացի այդ, ձախողման սխեմայի համար ձեզ հարկավոր է մեկ այլ սերվեր (և միգուցե մեկից ավելի) և նախկինում սա մեծ ծախս էր, այժմ դուք կարող եք ստանալ VDS կոպեկներով:

Ամենահուսալի կայքը կատուներով

Որպեսզի գործնականում պատկերացնենք լուծումը okerr + դինամիկ dns-ով, մենք գործարկեցինք մեր կայքը կատուներով cat.okerr.com. Մենք ատում ենք կատուներին, ուստի այնտեղ նրանցից շատ չեն լինի: Ընդհանուր առմամբ կա երեք կայք, որոնցից յուրաքանչյուրը մոտավորապես նույն տեսքն ունի (բոլորը նույն ձևանմուշի վրա), բայց տարբեր կատվի ձագերով, որպեսզի հեշտ լինի տարբերակել, և յուրաքանչյուրը գրում է տեխնիկական տեղեկատվություն՝ տեսնելու, թե ինչպես է աշխատում failover-ը: Էջն ինքնին թարմացվում է 1 րոպեն մեկ, բայց զննարկիչում միշտ կարող եք սեղմել Reload:

Տեխնիկական տեղեկատվության մեջ կա «status=OK» տողը: Երբեմն սերվերները կեղծում են խնդիրներ և գրում status=ERR: Հիմնական սերվերը «կարծես թե խափանում է» ամեն ժամվա 20 րոպեին (0:20, 1:20, 2:20, ...): Պահուստային սերվեր 40 րոպեում: Վերջին սերվերը («ներողություն» սերվերը) միշտ աշխատում է: Ամեն ժամվա ընթացքում 0 րոպեի ընթացքում առաջնային և պահեստային սերվերները «վերականգնվում են»:

Պարզ ձախողում կայքի համար (մոնիթորինգ + դինամիկ DNS)

Եթե ​​բացեք կայքը և թողնեք այն ներդիրում, կտեսնեք, որ այն երբեք չի խափանում (չնայած յուրաքանչյուր առանձին սերվեր պարբերաբար նմանեցնում է որևէ խնդիր), իսկ սերվերի հետ կապված խնդրի դեպքում այն ​​պարզապես «աշխատում» է կենդանի սերվերների միջև։ Սերվերի նկարը, անունը և հասցեն և նրա դերը կփոխվեն: Երբեմն դուք կարող եք որսալ այն պահը, երբ կարգավիճակը = ERR (խնդիրն արդեն կա, բայց ձախողման ամբողջ սխեման դեռ չի աշխատել), բայց հաջորդ թարմացումը ձեզ ցույց կտա էջ աշխատանքային կայքից:

Failover okerr + դինամիկ DNS-ում

Տեսնենք, թե ինչպես է այն աշխատում գլխարկի տակ: Ֆայլերի խնդիրն է ապահովել, որ cat.okerr.com հասցեն միշտ մատնանշի աշխատող սերվերի IP հասցեն:
Յուրաքանչյուր սերվերի հետևում, որը հյուրընկալում է մեր կատու կայքը okerr-ում, կա ցուցիչ, որը րոպեն մեկ ստուգում է դրա կարգավիճակը:

Պարզ ձախողում կայքի համար (մոնիթորինգ + դինամիկ DNS)

Այս սքրինշոթում մենք տեսնում ենք, թե ինչպես է cat.okerr.com կայքը ստուգվում alpha.okerr.com սերվերից: Էջը պետք է պարունակի status=OK, և ինչպես տեսնում ենք վերևում, մեր ցուցիչի կարգավիճակն այժմ լավ է: Երբ սերվերը «կոտրվի», կլինի ERR: (Սա ցուցիչի ընդամենը մեկ օրինակ է, okerr-ը մոնիտորինգ է, այնպես որ կարող եք կցել ցանկացած տեսակի ցուցիչ, օրինակ՝ ստուգել սկավառակի ազատ տարածքը, տվյալների բազայում նոր պատվերների քանակը և նույնիսկ տրամաբանական ցուցիչները, օրինակ. , գիշերը կլինեն որոշ սխալի չափանիշներ, իսկ ցերեկը՝ այլ) ։

Ծրագրի կարգավորումներում մենք ստեղծեցինք ձախողման սխեման հետևյալ ցուցանիշներով.

Պարզ ձախողում կայքի համար (մոնիթորինգ + դինամիկ DNS)

Սխեման ունի երեք ցուցիչ (երեք սերվեր), որոնք տարբերվում են առաջնահերթությունից: Կայքի հիմնական սերվերը charlie-ն է, եթե այն չի աշխատում (չի ունենա «status=OK» կամ պարզապես անհասանելի է), ապա բռավո, իսկ վերջին դեպքում՝ ալֆա։ Էջի աջ կողմը ցույց է տալիս տարբեր սերվերների վրա DNS գրառումների կարգավիճակը:

Նրանց համար, ովքեր նկատել են, որ օգտագործվում է cat.he.okerr.com անունը. Մենք օգտագործում ենք մի փոքր ավելի բարդ սխեմա: cat.okerr.com-ի DNS գրառումը փոխելու փոխարեն մենք փոխում ենք cat.he.okerr.com-ը (Դինամիկ 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 սերվերների տվյալները՝ ցույց տալով կամ նոր կամ հին արժեք: Եթե ​​դուք թարմացնեք failover-ի կազմաձևման էջը, օպերատորն ինքը կպահանջի նոր տվյալներ DNS սերվերներից:
  8. Տվյալների կայունացումից հետո հին քեշավորված գրառումը փտած է ամենուր. հարցումների բոլոր 100%-ը գնում է նոր սերվեր:

7-րդ փուլը (հաճախ ամենաերկարը) արագացնելու համար դինամիկ DNS գրառումի TTL-ը պետք է հնարավորինս ցածր սահմանվի: Սովորաբար ծառայությունները թույլ են տալիս 90-120 վայրկյան ընդմիջումներ: Սա լիովին ողջամիտ փոխզիջում է։

Բացի

Այս ամենը կարելի է կարգավորել երեկոյան (եթե արդեն ունեք պահեստային սերվեր): Ե՛վ okerr, և՛ դինամիկ DNS ծառայություններն անվճար են: Okerr-ում ավելի շատ ստուգումներ և ստուգման ավելի կարճ ժամանակահատված ստանալու համար դուք պետք է անցնեք վերապատրաստում (ձեր պրոֆիլի էջից): Ավարտելուց հետո մակարդակը անմիջապես բարձրանում է (ժամում 20 ցուցիչ + 1 արագ, 10 րոպե): Իսկ եթե դրանք քիչ են, գրեք [էլեկտրոնային փոստով պաշտպանված], ամենայն հավանականությամբ հնարավոր կլինի ավելացնել (առայժմ հնարավորություն միշտ եղել է, երբեք չեմ հրաժարվել, հակառակը՝ ինքս եմ առաջարկել)։ Պարզապես սկզբում ես չեմ ուզում բոլորին խոստանալ ամեն ինչ, վստահ չեմ, որ բավականաչափ կարողություն ունեմ իմ խոսքը պահելու համար: Բայց առայժմ քիչ օգտվողներ կան, ուստի սահմանափակումների ավելացման հետ կապված խնդիրներ չկան:

Ինչ կարող է անել okerr-ը ընդհանրապես՝ նայեք կայքը ներկայացում. Ընդհանուր առմամբ, սա մոնիտորինգ է (zabbix-ը ամպից), և ֆայլերը հաճելի լրացուցիչ գործառույթ է: Դուք կարող եք նաև մուտք գործել ցուցադրություն կայքից առանց գրանցման:

Երբ ցուցիչի կարգավիճակը փոխվում է, ծանուցում է ուղարկվում էլփոստով կամ Telegram-ով: (Մենք նայեցինք, թե ինչ էր կատարվում և հասկացանք, որ Telegram-ը թվում է ամենահուսալի մեսենջերը: Շնորհակալություն RKN-ին սթրես թեստի համար:) Եթե okerr-ը ճիշտ կազմաձևված է, ցանկացած ծանուցում կամ ազդանշան է «թողեք ամեն ինչ, մենք պետք է շտկենք»: , կամ «լույսերն անջատված են»։ Okerra-ից լրացուցիչ ահազանգեր չպետք է լինեն (եթե կան, դրանք պետք է այլ կերպ կարգավորվեն): Օրինակ, մեր cat կայքի համար ալֆա սերվերը վերջինն է և երբեք սխալ չի կեղծում: Եթե ​​նա պառկած է, մենք պետք է իմանանք. Բայց մյուս սերվերները անընդհատ սխալներ են կեղծում, հետևաբար, ժամում մի քանի անգամ ահազանգեր չստանալու համար այդ ցուցանիշներն ունեն «լուռ» կարգավիճակ։

Նաև իմաստ ունի ստեղծել ներողություն սերվեր (ցանկացած ամենաէժան հոսթինգում), որը կամ կունենա ձեր ներողություն խնդրելու էջը (եթե բոլոր հիմնական և պահուստային սերվերները խափանվեն), կամ կվերահղորդի ձեզ դեպի կարգավիճակի էջ okerr-ում (օրինակ՝ մերը): cp.okerr.com/status/okerr) կամ statuspage.io:

Source: www.habr.com

Добавить комментарий