فاش شده رمز و راز Hostinger Monitor Mystery
بازار به عنوان ابزار نظارت بر منبع باز وجود داشتند. اکنون آنها کمتر شناخته شده اند ، اما Nagios و Cacti حتی امروز در یک چرخه توسعه قرار دارند.
حتی هیچ ابزار اتوماسیون وجود نداشت. Bash + Perl کار را انجام داد. اگر می خواهید تیم و خودتان را مقیاس کنید ، اتوماسیون هرگز نباید نادیده گرفته شود. بدون اتوماسیون - کارهای دستی انسانی بیشتر درگیر هستند.
ما با حدود 150 سرور فیزیکی شروع به کار کردیم. برای مقایسه ، تا به امروز حدود 2000 سرور داریم که شامل جعبه های فیزیکی داخلی و داخلی هستند.
تمام ابزارهای مذکور (ناجیوس ، کاکتی و گانگلیا) بیشتر از پروتکل SNMP استفاده می کردند که به نظر من وحشتناک است.
برای تجهیزات شبکه ، SNMP هنوز در سراسر جهان قابل استفاده است ، اما در حال حاضر ، با سوئیچ های جعبه سفید ، این کمی بطور کامل غیر ضروری می شود.
در عوض ، _node_exporter_ یا هر صادرکننده دیگری را در داخل سوئیچ اجرا کنید و هر آنچه را که نیاز دارید با یک فرمت قابل خواندن با انسان در معرض نمایش بگذارید. زیبا بهتر از زشت است ، درست است؟
ما از CumulusOS استفاده می کنیم که در مورد ما بیشتر معماری x86 است ، بنابراین اجرای هر نوع لینوکس کاملاً مشکلی ندارد.
در سال 2015 زمانی که ما شروع خودکار هر آنچه را که می توانید به صورت خودکار، ما معرفی پرومته اکوسیستم است. در آغاز ، ما یک جعبه مانیتورینگ واحد داشتیم که Alertmanager ، Pushgateway ، Grafana ، Graylog و rsyslogd در آنجا مشغول به کار بودند.
در دوره گذار از پشته مانیتورینگ قدیمی (NCG - Nagios / Cacti / Ganglia) از هر دو سیستم استفاده کرده ایم و در آخر ، ما فقط به پرومتئوس تکیه می کنیم.
راه اندازی جدید زمان وضوح تصویری ما را از 5 دقیقه به 15 ثانیه بهبود داده است ، که به ما امکان می دهد تا یک تجزیه و تحلیل ریز دانه و عمیق انجام دهیم. حتی MTTD (میانگین زمان برای تشخیص) با ضریب 4 کاهش یافت.
ما حدود 25 صادرکننده متریک جامعه + برخی از نویسندگان نوشتاری سفارشی مانند _lxc_exporter_ را در اختیار ما داریم. بیشتر ما معیارهای مربوط به مشاغل سفارشی را با استفاده از گردآورنده منسوجات در معرض نمایش قرار می دهیم
ما همچنین پشته TICK (Telegraf / InfluxDB / Chronograf / Kapacitor) را نیز ارزیابی کردیم ، اما ما از آن راضی نبودیم ، زیرا به دلیل عملکرد محدود در آن زمان و پرومتئوس برای اجرای ساده تر و بالغ به نظر می رسید.
بعداً در سال 2017 ، استفاده از PagerDuty را برای صفحه بندی شروع کردیم . ما هفتگی 24/7 چرخش در تماس داریم. در مورد ما ، ما فقط هر هفته پنجم یا ششم می چرخیم - کاملاً راحت. اما ما مشتاقانه منتظر هستیم که این وظیفه را به طور کلی از بین ببریم. در عوض ، ما از خدمات خودمان مراقبت خواهیم کرد ، زیرا مالک مشکلات را بهتر می داند.
سال قبل که از سال 2015 زیر بار N 14 بار بزرگ شدیم ، تنگنا اصلی تبدیل به پرومتئوس و Alertmanager شد. پرومتئوس ما حدود 2 پوند پوند فضای دیسک می خورد. از این رو ، اگر گره را با استفاده از چاقو مجدداً راه اندازی و یا فشار دهیم ، برای مدتی داده های مانیتورینگ را از دست می دهیم. راه اندازی مجدد پرومتئوس حدود 10-15 دقیقه طول می کشد. قابل قبول نیست .
مشکل دیگر این است که اگر یک مکان واحد پایین باشد ، ما نیز مانیتورینگ داده ها را از دست می دهیم. بنابراین ما تصمیم گرفتیم یک زیرساخت نظارت کاملاً در دسترس داشته باشیم: دو گره پرومتئوس و دو آلترنماژر در قاره های جداگانه.
زیرساخت نظارت جدید میزبان
زیرساخت نظارت بر هاستینجر
ابزار اصلی تجسم ما گرافانا است. بسیار مهم است که گرافانا در صورت پایین آمدن اولیه می تواند از گره پشتیبان Prometheus سؤال کند. این به همین راحتی است - HAProxy را در جلو قرار داده و اتصالات محلی را بپذیرید.
1
2
3
4
5
backend prometheus
server prometheus_2a02_4780_9__1234 2a02:4780:9::1234:9090 check fall 3 rise 2
server prometheus_2a02_4780_bad_c0de__1234 2a02:4780:bad:c0de::1234:9090 check fall 3 rise 2 backup
option httpchk GET /graph
http-check expect rstatus (2|3)[0-9][0-9]
آیا در مورد عملکرد هر واسطه می پرسیدید؟ ما در مورد میلی ثانیه های تک رقمی صحبت می کنیم - همه خوب است.
مشکل دیگر این است که چگونه می توانیم از کاربران (توسعه دهندگان و سایر کارکنان داخلی) سوء استفاده از داشبورد در بارگذاری بیش از حد گره های Prometeus جلوگیری کنیم. یا گره پشتیبان اگر اصلی باشد پایین - مشکل گله .
برای دستیابی به وضعیت مطلوب ، فرصتی به تریکستر دادیم . این سرعت بارگذاری داشبورد سرعت فوق العاده دارد. انبارهای سری زمانی ذخیره می شود. در مورد ما حافظه پنهان در حافظه قرار دارد ، اما انتخاب های بیشتری برای ذخیره آن وجود دارد. حتی وقتی گره اصلی پایین بیاید و داشبورد را تازه کنید ، Trickster گره دوم سریال زمانی را که در حافظه خود ذخیره کرده است ، جستجو نمی کند. تریکستر بین گرافانا و پرومتئوس قرار دارد. این فقط با API پرومتئوس صحبت می کند.
گره های پرومتئوس مستقل هستند در حالی که گره های Alertmanager یک خوشه را تشکیل می دهند. اگر هردو Alertmanagers همان هشدار را ببینند ، آنها به جای چندین بار یکبار فریب داده و آتش می گیرند.
ما برنامه داریم که تعداد زیادی _blackbox_exporters_ را اجرا کنیم و وب سایتهای هر مشتری Hostinger را رصد کنیم زیرا به هر چیزی که قابل نظارت نباشد قابل دسترسی نیست.
داستانهای برتر
معرفی PHP 7.4: عملکرد ، ویژگی ها ، استهلاک ها
11 دسامبر • مهندسی
معرفی PHP 7.4: عملکرد ، ویژگی ها ، استهلاک ها
بیشتر بخوانید
چگونه ما Sprints Design را در هاستینجر اجرا می کنیم
27 نوامبر • بازاریابی
چگونه ما Sprints Design را در هاستینجر اجرا می کنیم
بیشتر بخوانید
بهبود عملکرد وب سایت با LiteSpeed
29 ژوئیه • مهندسی
بهبود عملکرد وب سایت با LiteSpeed
بیشتر بخوانید
نویسنده
نویسنده
Donatas Aburbis / @ ton31337