انواع مانیتور

نه نوع بررسی قابل‌ساخت: هرکدام چه چیزی را چک می‌کند و چه زمانی «قطع» حساب می‌شود.

نگاه کلی

نوعچه چیزی را بررسی می‌کندهدف (Target)
HTTPپاسخ یک آدرس وبآدرس کامل، مثل https://example.com
کلیدواژه در صفحهپاسخ HTTP + وجود یک متن در صفحهآدرس کامل
TCPباز بودن یک پورتhost:port
Pingپاسخ‌دادن یک میزبان به pingنام میزبان یا IP
گواهی SSLتاریخ انقضای گواهیدامنه (و اختیاری :پورت)
DNSمقدار یک رکورد DNSنام دامنه
API (چندمرحله‌ای)درخواست API و بررسی بدنه‌ی JSONآدرس پایه (Base URL)
Heartbeatپینگ دوره‌ای که سیستم شما می‌فرستدیک نام دلخواه
وب‌هوک خطاگزارش خطایی که کد شما می‌فرستدیک نام دلخواه

HTTP

یک درخواست GET به آدرس می‌فرستد. اگر کد پاسخ جزو کدهای قابل‌قبول باشد «فعال»، وگرنه «قطع» است. اگر کدهای قابل‌قبول را خالی بگذارید، هر کد ۲۰۰ تا ۳۹۹ موفق حساب می‌شود (ریدایرکت‌ها دنبال می‌شوند). برای مثال اگر آدرس شما عمداً ۴۰۱ برمی‌گرداند، در «کدهای وضعیت قابل‌قبول» بنویسید 401 (چند کد را با کاما جدا کنید، هر کد بین ۱۰۰ تا ۵۹۹).

«قطع» می‌شود وقتی: کد غیرمنتظره، timeout، خطای DNS، رد یا قطع اتصال، یا خطای TLS.

کلیدواژه در صفحه

مثل HTTP است و علاوه بر آن باید یک متن در بدنه‌ی صفحه (۲ مگابایت اول پاسخ) وجود داشته باشد. جست‌وجو حساس به بزرگی و کوچکی حروف است. اگر متن پیدا نشود، دلیل خطا «کلیدواژه یافت نشد» ثبت می‌شود. کاربرد خوب: صفحه‌ای که وقتی دیتابیس خراب است هم ۲۰۰ برمی‌گرداند ولی متن اصلی‌اش نیست.

TCP و Ping

  • TCP: هدف را به شکل host:port بنویسید. اگر اتصال برقرار شود فعال است و بلافاصله بسته می‌شود.
  • Ping: یک بسته‌ی ping می‌فرستد. هر شکستی (از جمله بسته‌شدن ping در فایروال میزبان) «اتمام زمان» ثبت می‌شود؛ اگر سرور شما به ping جواب نمی‌دهد، از TCP روی یک پورت باز استفاده کنید.

گواهی SSL

دامنه را بنویسید (پورت پیش‌فرض ۴۴۳؛ برای پورت دیگر example.com:8443). مانیتور تاریخ انقضا را می‌خواند و اگر گواهی منقضی شده باشد، یا ۳۰ روز یا کمتر به انقضا مانده باشد، «قطع» می‌شود تا قبل از افتادن سایت هشدار بگیرید. زنجیره‌ی گواهی (اعتماد به صادرکننده) بررسی نمی‌شود، فقط تاریخ.

DNS

نام دامنه، نوع رکورد (A، AAAA، CNAME، MX، TXT، NS) و مقدار مورد انتظار را بدهید. اگر رکورد وجود داشته باشد و با مقدار شما بخواند، فعال است؛ وگرنه «عدم تطابق DNS» یا «خطای DNS». در A و AAAA یکی از IPهای برگشتی باید دقیقاً همان مقدار باشد؛ در TXT مقدار دقیق یا بخشی از متن کافی است. مناسب برای فهمیدن این‌که کسی رکورد دامنه‌تان را عوض کرده.

API (چندمرحله‌ای)

آدرس پایه را بدهید، سپس «مسیر» (نسبت به آدرس پایه، اختیاری)، کدهای قابل‌قبول و یک شرط روی بدنه‌ی JSON. شرط یک مسیر نقطه‌ای است، مثل data.status، با یکی از حالت‌ها: «برابر باشد با»، «شامل باشد» یا «فقط وجود داشته باشد». اگر شرط برقرار نشود، دلیل «شرط برقرار نشد» ثبت می‌شود. مسیرهای JSON فقط نقطه‌ای هستند (اندیس آرایه پشتیبانی نمی‌شود).

از طریق API عمومی می‌توان تا ۱۰ مرحله‌ی پشت‌سرهم تعریف کرد که مقدارِ یک مرحله را با {{name}} در مرحله‌ی بعد استفاده می‌کنند؛ رابط وب فعلاً فقط یک مرحله می‌سازد. ببینید API عمومی.

Heartbeat و وب‌هوک خطا

این دو را ما بررسی نمی‌کنیم؛ سیستم شما خودش خبر می‌دهد. توضیح کامل و نمونه کد در Heartbeat و وب‌هوک خطا.

فاصله‌ی بررسی

گزینه‌ها: ۱۵ و ۳۰ ثانیه، ۱ و ۵ و ۱۰ و ۳۰ دقیقه، ۱ و ۶ و ۱۲ ساعت و ۱ روز. فقط گزینه‌هایی نمایش داده می‌شوند که کمتر از حداقل پلن شما نباشند (پلن رایگان ۶ ساعت؛ حرفه‌ای ۶۰ ثانیه؛ بیزینس ۳۰ ثانیه؛ اینترپرایز ۱۵ ثانیه). این برای همه‌ی نوع‌ها، از جمله Heartbeat و وب‌هوک، صادق است. بررسی اول یک مانیتور تازه با کمی تأخیر تصادفی شروع می‌شود تا همه‌ی مانیتورها هم‌زمان اجرا نشوند.

هر بررسی در هر ناحیه تا ۳ بار تلاش می‌کند (۵ ثانیه فاصله) و اگر هر تلاش موفق باشد، آن ناحیه «سالم» گزارش می‌دهد. جزئیات در چک‌ها چطور کار می‌کنند.

آدرس‌های داخلی

برای امنیت، هر هدفی که به آدرس خصوصی یا داخلی ختم شود (۱۰.x، ۱۷۲.۱۶–۳۱.x، ۱۹۲.۱۶۸.x، localhost، لینک‌لوکال و مانند آن) بررسی نمی‌شود و به‌صورت «خطای DNS» ثبت می‌شود. برای سرویس‌های داخل شبکه‌ی خصوصی از Heartbeat یا وب‌هوک خطا استفاده کنید؛ آن‌ها از داخل شبکه‌ی شما به ما درخواست می‌زنند.