آنچه در این مقاله میخوانید
Peekaping چیست؟ ابزار متنباز مانیتورینگ آپتایم سرویسها
۷ آبان ۱۴۰۵
فرض کنید وبسایت شما باز میشود، اما API ثبت سفارش از دسترس خارج شده است. تا زمانی که کاربری خرید ناموفق خود را گزارش نکند، ممکن است تیم فنی متوجه مشکل نشود. بررسی دستی سرویسها هم برای تیمی که چند سایت، API و سرویس داخلی را مدیریت میکند، راهکار پایداری نیست.
Peekaping یک ابزار متنباز و خودمیزبان برای مانیتورینگ آپتایم است. این ابزار سرویسهای تعریفشده را در بازههای مشخص بررسی میکند، نتیجه بررسیها را نگه میدارد و هنگام تغییر وضعیت، از طریق کانالهای تنظیمشده هشدار میفرستد. همچنین میتوانید وضعیت سرویسهای انتخابی را در یک صفحه عمومی نمایش دهید.
در این مقاله با نحوه کار Peekaping، انواع پایش، قابلیتها و محدودیتهای آن آشنا میشویم و روش راهاندازی اولیه و میزبانی آن را بررسی میکنیم.
در ادامه میخوانید:
- Peekaping چیست؟
- Peekaping چگونه کار میکند؟
- چه سرویسهایی را میتوان با Peekaping مانیتور کرد؟
- ویژگیها و قابلیتهای Peekaping
- کاربردهای Peekaping در پروژههای واقعی
- مزایا و محدودیتهای Peekaping
- نصب و راهاندازی Peekaping با Docker
- هاست Peekaping را از کجا تهیه کنیم؟
- جمعبندی
- سوالات متداول

Peekaping چیست؟
Peekaping ابزاری برای بررسی دسترسپذیری وبسایتها، APIها و سرویسهای شبکه است. برای مثال، میتوانید مشخص کنید که ابزار به صورت دورهای به آدرس یک API درخواست بفرستد و اگر بررسی ناموفق بود، شما را مطلع کند.
این پروژه خودمیزبان (Self-hosted) است؛ یعنی آن را روی سرور یا زیرساخت ابری خود اجرا میکنید و مدیریت نصب و نگهداری آن را بر عهده دارید. بکاند Peekaping با Go و رابط کاربری آن با React و TypeScript توسعه یافته است. کد پروژه نیز با مجوز MIT منتشر میشود.
آپتایم (Uptime) به مدت یا درصد زمانی گفته میشود که یک سرویس در دسترس بوده است. با این حال، نتیجه مانیتورینگ همیشه به نوع بررسی بستگی دارد: پاسخ دادن یک پورت TCP، باز شدن صفحه اصلی سایت و موفق بودن فرایند خرید، سه معیار متفاوت هستند. برای رسیدن به نتیجه مفید، باید بررسی را متناسب با عملکرد مورد انتظار سرویس انتخاب کنید.
Peekaping چگونه کار میکند؟
در Peekaping برای هر سایت یا سرویس، یک بررسی جداگانه تنظیم میکنید که به آن “مانیتور” (Monitor) میگویند. مثلا میتوانید یک مانیتور بسازید تا هر یک دقیقه سایت شما را بررسی کند و مشخص شود سایت در دسترس است یا نه.
تعریف مانیتور و هدف بررسی
ابتدا نوع مانیتور را انتخاب میکنید. برای پایش یک وبسایت، بررسی HTTP یا HTTPS مناسب است؛ برای بررسی اتصال به یک درگاه شبکه، از TCP استفاده میشود. سپس اطلاعات هدف، مانند آدرس وب یا نام میزبان و پورت، وارد میشود.
در بررسی HTTP، آدرس مورد نظر میتواند یک Endpoint مشخص از API باشد. بنابراین “مانیتور” تنظیمات بررسی است و “Endpoint” نقطه دسترسی سرویسی است که بررسی میشود.

اجرای بررسیهای دورهای
ابزار طبق فاصله زمانی تعیینشده بررسیها را اجرا میکند. برای مثال، اگر فاصله بررسی را ۶۰ ثانیه قرار دهید، سرویس در نوبتهای جداگانه بررسی میشود؛ قطعی کوتاهی که کاملا بین دو نوبت رخ دهد، ممکن است ثبت نشود.
به همین دلیل، پایش شبانهروزی به معنای تشخیص آنی همه اختلالها نیست. فاصله بررسی، مهلت انتظار برای پاسخ و تنظیمات تلاش مجدد بر زمان تشخیص اثر میگذارند.
ثبت نتیجه و تغییر وضعیت
Peekaping نتیجه بررسیها را ثبت میکند. در صورت ناموفق بودن بررسی، تنظیمات تلاش مجدد میتواند از اعلام قطعی با یک خطای گذرا جلوگیری کند. پس از تشخیص تغییر وضعیت، اعلان مربوط به مانیتور ارسال میشود.
پایش از موقعیتهای دیگر
به صورت پیشفرض، بررسیها از ماشینی انجام میشوند که Peekaping روی آن اجرا شده است. با پروب راه دور (Remote Probe) میتوان بررسیها را از ماشین دیگری، مثلا داخل شبکه خصوصی یا یک موقعیت جغرافیایی دیگر، انجام داد. پروب نتیجه بررسی را به سرور اصلی میفرستد.
این موضوع در تفسیر نتیجه اهمیت دارد: ممکن است یک سرویس از شبکه داخلی در دسترس باشد، اما کاربران بیرونی نتوانند به آن متصل شوند.
چه سرویسهایی را میتوان با Peekaping مانیتور کرد؟
Peekaping به بررسی آدرس وب محدود نیست و چند نوع مانیتور برای سرویسهای مختلف دارد. انتخاب مناسب به این بستگی دارد که میخواهید از چه چیزی مطمئن شوید.
| نوع مانیتور | چه چیزی را بررسی میکند؟ | نمونه کاربرد |
|---|---|---|
| HTTP/HTTPS | پاسخ وبسایت یا API | بررسی Endpoint سلامت برنامه |
| TCP | امکان اتصال به یک پورت | بررسی باز بودن درگاه سرویس |
| Ping یا ICMP | دسترسی شبکه و زمان رفتوبرگشت | بررسی پاسخگویی یک میزبان |
| DNS | پاسخ پرسوجوی DNS | بررسی تبدیل نام دامنه به آدرس مورد انتظار |
| Push | دریافت heartbeat از سرویس | اطلاع از اجرا شدن یک کار زمانبندیشده |
| Docker | وضعیت و سلامت کانتینر | پایش کانتینر یک سرویس |
| دیتابیس و کش | بررسی متناسب با نوع سرویس | اتصال به PostgreSQL یا ارسال PING به Redis |
پروژه همچنین مانیتورهایی برای سرویسهایی مانند MySQL/MariaDB، SQL Server، MongoDB، SMTP، gRPC و برخی ابزارهای پیامرسانی و صف دارد. تنظیمات و روش بررسی در همه این موارد یکسان نیست.
برای مثال، اتصال موفق TCP به پورت دیتابیس فقط نشان میدهد اتصال شبکه برقرار شده است. برای بررسی پاسخگویی خود دیتابیس، مانیتور اختصاصی آن اطلاعات مرتبطتری میدهد.
ویژگیها و قابلیتهای Peekaping
ارزش Peekaping برای تیم فنی، در کنار هم قرار گرفتن نتیجه بررسیها، هشدارها و وضعیت قابل نمایش سرویسها است. چند قابلیت آن در استفاده روزمره اهمیت بیشتری دارند.
۱. داشبورد وضعیت و زمان پاسخ
در داشبورد میتوانید وضعیت مانیتورها، تاریخچه بررسیها و نمودار زمان پاسخ را ببینید. افزایش زمان پاسخ، حتی پیش از ثبت قطعی، میتواند نشانهای برای بررسی بیشتر باشد؛ هرچند نمودار بهتنهایی علت کندی را مشخص نمیکند.
آمار آپتایم و زمان پاسخ به تاریخچه ثبتشده وابسته است. بنابراین تنظیم نگهداری دادهها و حفظ دیتابیس، برای داشتن سابقه قابل استفاده اهمیت دارد.
۲. ارسال هشدار از کانالهای مختلف
برای دریافت هشدار میتوان از گزینههایی مانند ایمیل، تلگرام، Slack و Webhook استفاده کرد. انتخاب کانال بهتر است با شیوه پاسخگویی تیم هماهنگ باشد؛ هشداری که به کانالی بدون ناظر برسد، کمک چندانی به رسیدگی نمیکند.
Webhook امکان اتصال به سیستمهای دیگر را هم فراهم میکند. Peekaping هنگام قطعی یا بازگشت سرویس، یک درخواست HTTP POST به آدرس تنظیمشده میفرستد؛ مثلا میتوانید در سامانه داخلی خود یک رخداد ثبت کنید.

۳. صفحه وضعیت عمومی
صفحه وضعیت (Status Page) برای نمایش وضعیت سرویسهای انتخابی به کاربران کاربرد دارد. به جای اینکه کاربر برای اطلاع از قطعی به پشتیبانی پیام بدهد، میتواند وضعیت اجزای محصول را در یک صفحه ببیند.
بهتر است سرویسهای این صفحه با اجزایی که کاربر میشناسد نامگذاری شوند؛ مثلا «وبسایت» و «API»، به جای نام داخلی کانتینرها. Peekaping امکان ساخت و شخصیسازی صفحه وضعیت عمومی را دارد.
۴. پنجره نگهداری
در زمان تعمیرات برنامهریزیشده، ممکن است از پیش بدانید سرویس برای مدتی در دسترس نخواهد بود. پنجره نگهداری (Maintenance Window) کمک میکند این بازه مشخص شود و هشدارهای ناشی از عملیات برنامهریزیشده، تیم را بیدلیل درگیر نکنند.
۵. API برای خودکارسازی
Peekaping یک REST API با مستندات OpenAPI دارد. این قابلیت برای تیمهایی مفید است که میخواهند مدیریت مانیتورها را وارد اسکریپتها و فرایند استقرار کنند؛ مثلا هنگام اضافه شدن یک سرویس، بررسی مربوط به آن را نیز ایجاد کنند.
کاربردهای Peekaping در پروژههای واقعی
کاربرد مناسب هر مانیتور زمانی روشن میشود که آن را به یک اتفاق مشخص در پروژه وصل کنیم.
پایش وبسایت و API به صورت جداگانه
ممکن است صفحه اصلی فروشگاه باز شود، اما سرویس ورود یا ثبت سفارش پاسخ ندهد. در چنین پروژهای، یک مانیتور برای صفحه اصلی کافی نیست.
میتوانید برای بخشهای مهم، Endpoint سلامت جداگانه در نظر بگیرید و آنها را مستقل بررسی کنید. البته اگر Endpoint سلامت بدون بررسی وابستگیهای برنامه همیشه پاسخ موفق بدهد، نتیجه آن نیز اطلاعات محدودی خواهد داشت.
بررسی اجرای کارهای زمانبندیشده
فرض کنید هر شب یک کار زمانبندیشده، گزارش فروش را تولید میکند. پاسخ دادن سرور نشان نمیدهد این کار با موفقیت اجرا شده است.
در یک سناریوی مبتنی بر Push، برنامه پس از اتمام موفق کار، heartbeat ارسال میکند. نرسیدن پیام در بازه مورد انتظار میتواند نشانهای از اجرا نشدن یا متوقف شدن کار باشد. جای ارسال heartbeat مهم است: اگر آن را پیش از پایان کار بفرستید، دیگر نشانه موفقیت کل عملیات نخواهد بود.
پایش سرویسهای داخلی
یک API داخلی یا دیتابیس خصوصی ممکن است از اینترنت قابل دسترسی نباشد. در این حالت، محل اجرای بررسی باید به شبکه سرویس دسترسی داشته باشد.
برای چنین سناریویی میتوان از پروب راه دور در شبکه داخلی استفاده کرد. این پروب از داخل شبکه بررسی را انجام میدهد و نتیجه را به Peekaping برمیگرداند؛ در نتیجه، لازم نیست سرویس داخلی را فقط برای مانیتورینگ عمومی کنید.
مزایا و محدودیتهای Peekaping
مزیت اصلی Peekaping برای تیمی که ابزار خودمیزبان میخواهد، امکان اجرای سامانه پایش روی زیرساخت خودش است. دسترسی به کد، انواع مانیتور و API نیز برای سفارشیسازی و اتصال به فرایندهای داخلی کاربرد دارند.
از نظر استقرار، حالت تکپردازهای (Single Mode) مسیر سادهتری برای شروع دارد و به Redis نیاز ندارد. حالت کلاستر (Cluster Mode) برای اجرای چند نمونه API و پروب در نظر گرفته شده است، اما اجزای بیشتری برای استقرار و نگهداری دارد. این دو حالت، روش اجرای متفاوتی دارند و نباید آنها را دو سطح از امکانات محصول در نظر گرفت.
در کنار این مزایا، چند محدودیت را باید در تصمیمگیری لحاظ کرد:
- پروژه همچنان در وضعیت بتا است و مستندات رسمی، آزمایش در محیط غیرعملیاتی را پیش از استفاده جدی پیشنهاد میکنند.
- نتیجه موفق یک مانیتور، سلامت کامل برنامه را تضمین نمیکند. برای پیدا کردن علت خطا، ممکن است به لاگها، متریکها و ردیابی درخواستها هم نیاز داشته باشید.
- در استقرار خودمیزبان، بهروزرسانی، بکاپ و رسیدگی به خرابی خود سامانه پایش نیز به برنامه نگهداری نیاز دارد.
- اگر Peekaping و سرویس هدف روی یک ماشین باشند، خرابی همان ماشین میتواند پایش و ارسال هشدار را هم متوقف کند. برای تشخیص چنین قطعیای، بررسی مستقل از بیرون آن ماشین لازم است.
خودمیزبان بودن را نباید به معنی خاموش بودن همه ارتباطات آماری دانست. طبق مستندات فعلی، آمار استفاده و گزارش خطای خود ابزار به صورت پیشفرض فعالاند و میتوان آنها را جداگانه غیرفعال کرد. اگر این موضوع برای سیاست نگهداری دادههای تیم مهم است، تنظیمات آن را هنگام نصب بررسی کنید.
نصب و راهاندازی Peekaping با Docker
برای شروع، به محیطی با Docker نصبشده نیاز دارید. نمونه زیر Peekaping را با SQLite اجرا میکند و دادهها را در یک Volume نگه میدارد. پورت فقط روی آدرس محلی میزبان باز میشود:
docker run -d \
--name peekaping \
--restart unless-stopped \
--stop-timeout 35 \
-p 127.0.0.1:8383:8383 \
-v peekaping_data:/app/data \
0xfurai/peekaping:latest
پس از اجرا، روی همان میزبان آدرس http://localhost:8383 را باز کنید و حساب مدیر را بسازید. اگر برنامه روی سرور راه دور اجرا شده، برای دسترسی اولیه میتوانید تونل SSH ایجاد کنید:
ssh -L 8383:127.0.0.1:8383 user@SERVER_IP
مقادیر user و SERVER_IP را جایگزین کنید و آدرس محلی را در مرورگر خود باز کنید. برای دسترسی دائمی با دامنه، یک Reverse Proxy با HTTPS تنظیم کنید که اتصالهای WebSocket را هم عبور دهد. در استقرار عملیاتی، به جای latest از تگ نسخه مشخص استفاده کنید.
سپس اولین مانیتور را بسازید، آدرس هدف و فاصله بررسی را تعیین کنید و کانال هشدار را به آن متصل کنید. با یک سرویس آزمایشی، قطعی و بازگشت را شبیهسازی کنید تا از رسیدن اعلانها مطمئن شوید.
وجود Volume جای بکاپ را نمیگیرد؛ برای حفاظت از تنظیمات و تاریخچه، از دیتابیس نسخه پشتیبان قابل بازیابی نگه دارید.

هاست Peekaping را از کجا تهیه کنیم؟
برای اجرای Peekaping میتوانید از سرور فعلی خود استفاده کنید یا یک سرور جداگانه برای سامانه پایش تهیه کنید. محیط انتخابی باید امکان اجرای Docker و نگهداری پایدار دادهها را داشته باشد؛ هر هاست اشتراکی چنین دسترسیای نمیدهد.
اگر نصب و مدیریت ابزار را خودتان انجام میدهید، مستندات رسمی Peekaping مسیر راهاندازی را توضیح دادهاند. این روش برای تیمهایی مناسب است که میخواهند تنظیمات محیط اجرا و بهروزرسانی برنامه را خودشان مدیریت کنند.
برای میزبانی در لیارا نیز میتوانید از سرور مجازی لینوکس استفاده کنید و Peekaping را با Docker راهاندازی کنید. دسترسی مدیریتی سرور، امکان نصب ابزار و تنظیم محیط مورد نیاز آن را فراهم میکند.
اگر ترجیح میدهید سریعتر به مرحله پایش سرویسها برسید، میتوانید از برنامه آماده استفاده کنید. لیارا این ابزار را به صورت برنامه آماده یککلیکی (One-Click App) ارائه میدهد تا بدون آمادهسازی دستی محیط اجرا، آن را راهاندازی کنید.
پس از راهاندازی، میتوانید وبسایتها و APIهای خود را اضافه کنید، فاصله بررسیها و کانال دریافت هشدار را مشخص کنید و برای اطلاعرسانی به کاربران، صفحه وضعیت عمومی بسازید.
Peekaping را روی زیرساخت لیارا راهاندازی کنید و وضعیت دسترسپذیری سرویسهای خود را زیر نظر بگیرید.
✅ پایش سایت و API ✅ دریافت هشدار قطعی ✅ صفحه وضعیت عمومی
خرید و راهاندازی هاست Peekaping لیار
جمع بندی
Peekaping برای تیمهایی قابل بررسی است که میخواهند پایش دسترسپذیری سرویسها، دریافت هشدار و نمایش وضعیت عمومی را در یک ابزار خودمیزبان داشته باشند. نوع بررسی را باید با عملکرد مورد انتظار سرویس هماهنگ کرد؛ باز بودن پورت، پاسخ دادن API و موفق بودن یک عملیات، معنای یکسانی ندارند.
برای شروع، چند سرویس مهم را انتخاب کنید، مانیتور مناسب بسازید و ارسال هشدار را در یک قطعی آزمایشی بررسی کنید. با توجه به وضعیت بتای پروژه، نتیجه این آزمایش و توان تیم برای نگهداری ابزار باید مبنای تصمیم درباره استفاده گستردهتر باشد.
سوالات متداول
آیا Peekaping رایگان است؟
کد Peekaping با مجوز MIT منتشر میشود و استفاده شخصی و تجاری از آن رایگان است. با این حال، هزینه سرور، ذخیرهسازی و نگهداری استقرار خودمیزبان را باید در نظر بگیرید.
آیا Peekaping به نصب عامل روی همه سرورها نیاز دارد؟
برای بررسیهایی مانند HTTP و TCP، اگر هدف از محل اجرای مانیتور قابل دسترسی باشد، نیازی به نصب عامل روی آن نیست. برای پایش از داخل شبکه دیگر، میتوانید پروب راه دور اجرا کنید.
آیا Peekaping مصرف CPU و RAM برنامه را نشان میدهد؟
بررسی آپتایم بهتنهایی اطلاعاتی درباره مصرف CPU و RAM نمیدهد. برای مشاهده این منابع باید جمعآوری متریکها را نیز راهاندازی کنید؛ موفق بودن بررسی HTTP یا Ping جای چنین پایشی را نمیگیرد.
آیا Peekaping میتواند قطعی سرویس را برطرف کند؟
کار اصلی Peekaping تشخیص وضعیت و اطلاعرسانی است. رفع خطا به تیم فنی یا فرایند خودکاری نیاز دارد که جداگانه تعریف کردهاید. مثلا دریافت یک Webhook میتواند شروع بررسی در سامانه دیگری باشد، اما خود هشدار به معنی رفع مشکل نیست.

