failover ساده برای وب سایت (مانیتورینگ + DNS پویا)

در این مقاله می‌خواهم نشان دهم که چقدر آسان و رایگان می‌توانید با استفاده از ترکیبی از نظارت، یک طرح شکست برای یک وب‌سایت (یا هر سرویس اینترنتی دیگری) ایجاد کنید. okerr و سرویس DNS پویا. یعنی در صورت بروز هر گونه مشکل در سایت اصلی (از مشکل خطای پی اچ پی در صفحه، کمبود فضا یا صرفاً تعداد مشکوک کم سفارشات در مورد فروشگاه آنلاین)، بازدیدکنندگان جدید به سرور دوم (سوم و غیره) بیشتر) یک سرور فعال شناخته شده یا در صفحه "متاسفانه" هدایت شوید، جایی که آنها مودبانه توضیح می دهند که "مشکلی وجود دارد، ما قبلاً آگاه هستیم و در حال رفع آن هستیم. به زودی آن را برطرف خواهد کرد» (و در این صورت شما در واقع از قبل آگاه هستید و می توانید تعمیر کنید).

برای زندگی با Failover یا بدون؟

تا زمانی که مشکلی پیش نیاید، تفاوت زیادی وجود ندارد. اما وقتی این اتفاق می افتد، بدون شکست، اغلب موارد زیر رخ می دهد: شما سعی می کنید به سرعت بفهمید مشکل چیست، کار نمی کند (پشتیبان گیری ها مستقر نمی شوند، نرم افزار به دلایلی آنطور که باید از اسناد کار نمی کند. ، و غیره)، اما زمان و سروری وجود ندارد - سایت ها در حال دروغ گفتن هستند، مشتریان در حال تماس هستند، همه در لبه هستند، شما سعی می کنید به نحوی آن را به طور تقریبی و کثیف "با نوار" تعمیر کنید، سپس به نوعی به نظر می رسد که راه اندازی می شود. با عصا و جان. شما فکر می کنید که در اوقات فراغت خود باید آن را با جزئیات بیشتری کشف کنید و همه چیز را به زیبایی دوباره انجام دهید، اما هیچ چیز دائمی تر از موقتی نیست.

حال، چگونه این اتفاق در یک نسخه زیبا با یک فایلر رخ می دهد:

  • یک اشتباه اتفاق می افتد
  • خطا به طور خودکار شناسایی می شود
  • هشدار ارسال می شود
  • جابجایی به یکی از سرورهای پشتیبان منتقل می شود
  • با آرامش و بدون هراس، مشکل برطرف شده، تصحیح شده و سرور دوباره راه اندازی می شود.

این طرح البته ممکن است مشکلات خاص خود را نیز داشته باشد، اما با این حال، طرح خطی است، هر مرحله ساده است و نکته اصلی این است که می توان آن را به طور جداگانه اشکال زدایی کرد، بنابراین احتمال شکست این طرح بسیار کمتر است و همه اقدامات را می توان خودکار و به سرعت انجام داد (برخلاف وظیفه یافتن و رفع مزخرفات حماسی ناشناخته). هواپیمای شما در کشوری دور فرود آمده است، گوشی خود را روشن می کنید و در تلگرام اعلان می بینید که سرور خراب شده است، اما همه چیز خوب است، سرور پشتیبان فعال شده است، می توانید به سفر خود ادامه دهید، نیازی نیست. برای پرواز به عقب یا تعمیر آن از طریق SSH از نزدیکترین کافه با WiFi. وقتی راحت تر باشد متوجه خواهید شد.

آینده در حال حاضر اینجاست!

پیش از این، مشکل اصلی که شکست را اغلب به یک راه حل غیرقابل قبول تبدیل می کرد، میزان هزینه ای بود که برای آن هزینه می شود. یا نیاز به خرید سخت افزار گران قیمت (و دعوت از متخصصان حتی گران تر) بود. یا به گفته راهنماها چیزی پیچیده است (حتی من به گزینه ای برخورد کردم که در آن دو سرور علاوه بر این با یک کابل مودم نال وصل شده اند و ضربان قلب را از طریق آن ارسال می کنند تا در زمان مناسب سرور پشتیبان آن را تشخیص دهد و آن را تحویل بگیرد. کنترل). اکنون راه های ساده تر و رایگانی وجود دارد. اگر وب‌سایتی با گربه‌ها دارید، هیچ بهانه‌ای وجود ندارد که هنوز failover را برای آن پیاده‌سازی نکنید!

خوب، علاوه بر این، برای یک طرح Failover به سرور دیگری نیاز دارید (و شاید بیش از یک) و قبل از این هزینه زیادی داشت، اکنون می توانید یک VDS برای پنی دریافت کنید.

معتبرترین سایت با گربه ها

برای نشان دادن عملی راه حل با okerr + dns پویا، ما وب سایت خود را با گربه ها راه اندازی کردیم. cat.okerr.com. ما از گربه ها متنفریم، بنابراین تعداد زیادی از آنها در آنجا نخواهیم بود. در مجموع سه سایت وجود دارد، هر کدام تقریباً یکسان به نظر می رسند (همه در یک الگو)، اما با بچه گربه های مختلف برای سهولت تشخیص آن، و هر کدام اطلاعات فنی می نویسند تا ببینند چگونه failover چگونه کار می کند. صفحه هر 1 دقیقه یک بار به روز می شود، اما همیشه می توانید روی بارگذاری مجدد در مرورگر کلیک کنید.

در اطلاعات فنی خط "وضعیت=OK" وجود دارد. گاهی اوقات سرورها مشکل را تظاهر می کنند و status=ERR را می نویسند. سرور اصلی "به نظر می رسد" در هر ساعت 20 دقیقه از کار می افتد (0:20، 1:20، 2:20، ...). پشتیبان گیری سرور در 40 دقیقه. آخرین سرور (سرور "متاسفم") همیشه در حال اجرا است. در 0 دقیقه از هر ساعت، سرورهای اصلی و پشتیبان "بازیابی" می شوند.

failover ساده برای وب سایت (مانیتورینگ + DNS پویا)

اگر سایت را باز کنید و آن را در برگه بگذارید، می بینید که هرگز از کار نمی افتد (اگرچه هر سرور به طور دوره ای مشکلی را شبیه سازی می کند)، و در صورت بروز مشکل در سرور، به سادگی بین سرورهای زنده "اجرا می شود". تصویر، نام و آدرس سرور و نقش آن تغییر خواهد کرد. گاهی اوقات می‌توانید لحظه‌ای را ببینید که status = ERR (مشکل از قبل وجود دارد، اما کل طرح شکست هنوز کار نکرده است)، اما به‌روزرسانی بعدی صفحه‌ای از سایت کار را به شما نشان می‌دهد.

Failover در okerr + DNS پویا

بیایید ببینیم زیر کاپوت چگونه کار می کند. وظیفه فایل کننده این است که اطمینان حاصل کند که آدرس cat.okerr.com همیشه به آدرس IP سرور فعال اشاره می کند.
پشت هر یک از سرورهایی که سایت گربه ما را در okerr میزبانی می کنند یک نشانگر وجود دارد که هر دقیقه یک بار وضعیت آن را بررسی می کند.

failover ساده برای وب سایت (مانیتورینگ + DNS پویا)

در این اسکرین شات می بینیم که چگونه سایت cat.okerr.com از سرور alpha.okerr.com بررسی می شود. صفحه باید شامل status=OK باشد و همانطور که در بالا می بینیم وضعیت نشانگر ما اکنون اوکی است. هنگامی که سرور "شکست"، یک ERR وجود خواهد داشت. (این فقط یک نمونه از یک نشانگر است، okerr در حال نظارت است، بنابراین می توانید هر نوع نشانگر را ضمیمه کنید، به عنوان مثال، فضای خالی روی دیسک، تعداد سفارشات جدید در پایگاه داده، و حتی نشانگرهای منطقی را بررسی کنید. ، در شب برخی از معیارهای خطا وجود خواهد داشت و در روز برخی دیگر).

در تنظیمات پروژه ما یک طرح شکست با این اندیکاتورها ایجاد کردیم:

failover ساده برای وب سایت (مانیتورینگ + DNS پویا)

این طرح دارای سه شاخص (سه سرور) است که از نظر اولویت متفاوت هستند. سرور اصلی سایت چارلی است، اگر کار نمی کند ("وضعیت=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. هنگامی که وضعیت نشانگر تغییر می کند، Failover مجدداً محاسبه می شود و محاسبه می شود که کدام آدرس باید تنظیم شود (در صورت لزوم. مثلاً اگر سرور اصلی کار می کند و همزمان سرور پشتیبان از بین رفته است، هیچ تغییری ایجاد نمی شود. ساخته شده)
  5. این آدرس به سرویس dns پویا گزارش می شود. پس از اتمام این مرحله، وضعیت "همگام سازی" را در سمت راست مشاهده خواهید کرد.
  6. خیلی زود (ثانیه) رکورد به سرورهای DNS دامنه شما می رسد (برای سایت cat ns1-ns5.he.net است).
  7. از این لحظه به بعد، برخی از کاربران در حال حاضر روی سرور زنده جدید خواهند بود. اما همه سرورهای DNS در جهان هنوز رکوردها را به روز نکرده اند و رکورد قدیمی ممکن است هنوز در جایی ذخیره شود. می توانید ببینید که چگونه داده ها در سرورهای DNS عمومی "رقص" می کنند و یک مقدار جدید یا قدیمی را نشان می دهند. اگر صفحه پیکربندی failover را به روز کنید، خود اپراتور داده های جدیدی را از سرورهای 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) یا statuspage.io.

منبع: www.habr.com

اضافه کردن نظر