اتصال Webhook به یودوز

Webhook یکی از قدرتمندترین روش‌های یکپارچه‌سازی در یودوز است. با استفاده از این قابلیت، هر زمان رخدادی در مانیتورهای شما ایجاد شود، یودوز یک درخواست HTTP POST به آدرس مشخص‌شده ارسال می‌کند.

به کمک Webhook می‌توانید یودوز را به نرم‌افزارهای داخلی، سیستم‌های اتوماسیون، پنل‌های مدیریتی، CRM، سرویس‌های پیام‌رسان یا هر برنامه دیگری که امکان دریافت درخواست HTTP را دارد متصل کنید.


Webhook چگونه کار می‌کند؟

پس از وقوع یک رخداد، یودوز اطلاعات آن رخداد را در قالب یک درخواست POST به آدرس Webhook ارسال می‌کند.

برنامه یا سرور شما این درخواست را دریافت کرده و می‌تواند بر اساس اطلاعات ارسالی، عملیات دلخواه را انجام دهد.

برای مثال:

  • ارسال اعلان به نرم‌افزار داخلی شرکت
  • ایجاد Ticket در سیستم Help Desk
  • اجرای یک Script
  • راه‌اندازی مجدد یک سرویس
  • ارسال پیام به ربات اختصاصی
  • ثبت رخداد در پایگاه داده
  • اتصال به ابزارهای اتوماسیون مانند n8n یا Make

ایجاد Webhook

برای ایجاد یک Webhook جدید، وارد بخش یکپارچه‌سازی شوید.

سپس گزینه Webhook را انتخاب کرده و اطلاعات زیر را تکمیل کنید.


آدرس Webhook

در این قسمت باید آدرس سرویسی را وارد کنید که درخواست‌های یودوز را دریافت می‌کند.

برای مثال:

https://example.com/webhook

این آدرس باید:

  • از طریق اینترنت قابل دسترس باشد.
  • درخواست‌های HTTP POST را بپذیرد.
  • بتواند اطلاعات ارسال‌شده توسط یودوز را پردازش کند.

نحوه ارسال درخواست

هر زمان برای یکی از مانیتورهای پروژه شما رخدادی ایجاد شود، یودوز یک درخواست HTTP POST به آدرس Webhook ارسال می‌کند.

این درخواست شامل اطلاعات مربوط به رخداد است و برنامه یا سرور شما می‌تواند با دریافت این اطلاعات، عملیات مورد نظر را انجام دهد.

از جمله اطلاعاتی که در درخواست ارسال می‌شوند:

  • monitor_name : نام مانیتور
  • status : وضعیت فعلی مانیتور (مانند Up یا Down)
  • token : توکن امنیتی تعریف‌شده برای Webhook

علاوه بر این، بسته به نوع رخداد ممکن است اطلاعات تکمیلی دیگری نیز در درخواست ارسال شوند.

ℹ️ توجه

آدرس Webhook باید از طریق اینترنت در دسترس باشد و امکان دریافت درخواست‌های HTTP POST را داشته باشد. در غیر این صورت، یودوز قادر به ارسال اعلان‌های Webhook نخواهد بود.

توکن Webhook

برای افزایش امنیت، می‌توانید یک توکن اختصاصی تعریف کنید.

این مقدار همراه تمامی درخواست‌های ارسالی یودوز ارسال خواهد شد.

در سمت سرور خود کافی است مقدار دریافتی را بررسی کنید تا مطمئن شوید درخواست واقعاً توسط یودوز ارسال شده است.

برای مثال:

my-secret-token

در صورتی که توکن ارسال‌شده با مقدار مورد انتظار یکسان نباشد، می‌توانید درخواست را رد کنید.


اطلاعات ارسالی

در هر درخواست، یودوز اطلاعات مربوط به رخداد را به‌صورت POST ارسال می‌کند.

بسته به نوع رخداد، داده‌هایی مانند موارد زیر در دسترس خواهند بود:

  • نام پروژه
  • نام مانیتور
  • نوع مانیتور
  • وضعیت مانیتور
  • زمان رخداد
  • شناسه رخداد
  • زمان پاسخ
  • پیام رخداد
  • توکن تعریف‌شده

این اطلاعات به برنامه شما اجازه می‌دهد تصمیم بگیرد که چه عملیاتی انجام شود.


موارد استفاده

Webhook یکی از انعطاف‌پذیرترین روش‌های یکپارچه‌سازی است و تقریباً با هر زبان برنامه‌نویسی یا نرم‌افزاری قابل استفاده است.

از جمله کاربردهای آن:

  • اتصال به نرم‌افزارهای سازمانی
  • ارسال اعلان به سیستم‌های داخلی
  • ثبت رخدادها در پایگاه داده
  • ایجاد Ticket به‌صورت خودکار
  • راه‌اندازی مجدد سرویس‌ها (Auto Recovery)
  • اجرای Scriptهای Shell یا PowerShell
  • اتصال به ربات‌های اختصاصی
  • ارسال اطلاعات به سرویس‌های ابری
  • اتصال به ابزارهای Workflow مانند n8n و Make
  • اتصال به API سایر نرم‌افزارها

امنیت

در صورتی که Webhook شما در اینترنت در دسترس است، توصیه می‌شود حتماً از توکن امنیتی استفاده کنید.

در سمت سرور، قبل از انجام هرگونه عملیات:

  • مقدار token را بررسی کنید.
  • در صورت عدم تطابق، درخواست را رد کنید.
  • در صورت امکان فقط درخواست‌های HTTPS را بپذیرید.

این کار از ارسال درخواست‌های جعلی جلوگیری می‌کند.


اتصال Webhook به پروژه

پس از ایجاد Webhook، می‌توانید آن را به یک یا چند پروژه متصل کنید.

از این پس، هنگام ایجاد رخداد در مانیتورهای آن پروژه، اطلاعات رخداد به آدرس Webhook ارسال خواهد شد و برنامه شما می‌تواند به‌صورت خودکار به آن واکنش نشان دهد.