1. مقدمه
Eventarc اتصال سرویس های Google Cloud را با رویدادها از منابع مختلف آسان می کند. این به شما امکان میدهد معماریهای رویداد محور بسازید که در آن ریزسرویسها بهطور سست کوپل شده و توزیع میشوند. همچنین از انتقال رویداد، تحویل، امنیت، مجوز، و مدیریت خطا برای شما مراقبت می کند که چابکی توسعه دهنده و انعطاف پذیری برنامه را بهبود می بخشد.
Datadog یک پلت فرم نظارت و امنیت برای برنامه های کاربردی ابری است. این ردیابیها، معیارها و گزارشها را با هم ترکیب میکند تا برنامهها، زیرساختها و خدمات شخص ثالث شما را قابل مشاهده کند.
در این اولین کد لبه، یاد خواهید گرفت که چگونه یک هشدار ساده نظارتی Datadog را با Eventarc به Google Cloud هدایت کنید.
چیزی که یاد خواهید گرفت
- چگونه ارائه دهنده Datadog را کشف کنیم.
- نحوه راه اندازی یک کانال برای ارائه دهنده Datadog.
- نحوه ایجاد یک گردش کار برای ثبت رویدادها
- نحوه ایجاد تریگر Eventarc با کانال.
- نحوه ایجاد مانیتور Datadog
- نحوه تست مانیتور Datadog، تریگر Eventarc و گردش کار.
2. راه اندازی و الزامات
تنظیم محیط خود به خود
- به Google Cloud Console وارد شوید و یک پروژه جدید ایجاد کنید یا از یک موجود استفاده مجدد کنید. اگر قبلاً یک حساب Gmail یا Google Workspace ندارید، باید یک حساب ایجاد کنید .
- نام پروژه نام نمایشی برای شرکت کنندگان این پروژه است. این یک رشته کاراکتری است که توسط API های Google استفاده نمی شود. شما می توانید آن را در هر زمان به روز کنید.
- شناسه پروژه باید در تمام پروژههای Google Cloud منحصربهفرد باشد و تغییرناپذیر باشد (پس از تنظیم نمیتوان آن را تغییر داد). Cloud Console به طور خودکار یک رشته منحصر به فرد تولید می کند. معمولاً برای شما مهم نیست که چیست. در اکثر کدها، باید به شناسه پروژه ارجاع دهید (معمولاً به عنوان
PROJECT_ID
شناخته می شود). اگر شناسه تولید شده را دوست ندارید، ممکن است یک شناسه تصادفی دیگر ایجاد کنید. از طرف دیگر، میتوانید خودتان را امتحان کنید و ببینید آیا در دسترس است یا خیر. پس از این مرحله نمی توان آن را تغییر داد و در طول مدت پروژه باقی می ماند. - برای اطلاع شما، یک مقدار سوم وجود دارد، یک شماره پروژه که برخی از API ها از آن استفاده می کنند. در مورد هر سه این مقادیر در مستندات بیشتر بیاموزید.
- در مرحله بعد، برای استفاده از منابع Cloud/APIها باید صورتحساب را در کنسول Cloud فعال کنید . اجرا کردن از طریق این کد لبه نباید هزینه زیادی داشته باشد، اگر اصلاً باشد. برای اینکه منابع را خاموش کنید تا بیش از این آموزش متحمل صورتحساب نشوید، می توانید منابعی را که ایجاد کرده اید حذف کنید یا کل پروژه را حذف کنید. کاربران جدید Google Cloud واجد شرایط برنامه آزمایشی رایگان 300 دلاری هستند.
Cloud Shell را راه اندازی کنید
در حالی که Google Cloud را می توان از راه دور از لپ تاپ شما کار کرد، در این کد لبه از Google Cloud Shell استفاده خواهید کرد، یک محیط خط فرمان که در Cloud اجرا می شود.
از Google Cloud Console ، روی نماد Cloud Shell در نوار ابزار بالا سمت راست کلیک کنید:
تهیه و اتصال به محیط فقط چند لحظه طول می کشد. وقتی تمام شد، باید چیزی شبیه به این را ببینید:
این ماشین مجازی با تمام ابزارهای توسعه که شما نیاز دارید بارگذاری شده است. این یک فهرست اصلی 5 گیگابایتی دائمی را ارائه می دهد و در Google Cloud اجرا می شود و عملکرد و احراز هویت شبکه را تا حد زیادی افزایش می دهد. تمام کارهای شما در این کد لبه را می توان در یک مرورگر انجام داد. شما نیازی به نصب چیزی ندارید.
gcloud را راه اندازی کنید
در Cloud Shell، ID پروژه خود را تنظیم کرده و آن را به عنوان متغیر PROJECT_ID
ذخیره کنید.
همچنین، یک متغیر REGION
را روی us-central1
تنظیم کنید. این منطقه ای است که بعداً در آن منابع ایجاد خواهید کرد.
PROJECT_ID=[YOUR-PROJECT-ID] REGION=us-central1 gcloud config set core/project $PROJECT_ID
API ها را فعال کنید
تمام خدمات لازم را فعال کنید:
gcloud services enable \ eventarc.googleapis.com \ eventarcpublishing.googleapis.com \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. ارائه دهنده Datadog را کشف کنید
ارائهدهنده Eventarc سرویس یا موجودی است که میتواند رویدادها را مستقیماً به Google Cloud ارسال کند که سپس به پروژه شما هدایت میشوند. ارائه دهندگان شخص ثالث، مانند Datadog، ارائه دهندگان غیر Google Cloud هستند که از طریق Eventarc با Google Cloud یکپارچه شده اند.
در Cloud Shell، دستور زیر را اجرا کنید تا لیست Google Cloud و ارائه دهندگان شخص ثالث را ببینید:
gcloud eventarc providers list
این ارائهدهندگان Google Cloud و شخص ثالث و مکانهایی که در آنها در دسترس هستند را فهرست میکند:
NAME: storage.googleapis.com LOCATION: asia NAME: cloudaudit.googleapis.com LOCATION: asia NAME: pubsub.googleapis.com LOCATION: asia ...
با این دستور می توانید لیست را به ارائه دهندگان شخص ثالث محدود کنید:
gcloud eventarc providers list --filter='eventTypes.type!~^google*'
باید Datadog را در لیست ببینید:
NAME: datadog LOCATION: us-central1
همچنین میتوانید ارائهدهنده Datadog را برای مشاهده رویدادهایی که پشتیبانی میکند توصیف کنید:
gcloud eventarc providers describe datadog --location $REGION displayName: Datadog eventTypes: - type: datadog.v1.alert name: projects/project-id/locations/us-central1/providers/datadog
4. یک کانال راه اندازی کنید
شما باید یک کانال راه اندازی کنید تا پروژه خود را با یک ارائه دهنده یکپارچه کنید. این شامل ایجاد یک کانال، بازیابی جزئیات کانال و ارسال آن جزئیات به ارائه دهنده است. هنگامی که ارائه دهنده اتصال به کانال را راه اندازی کرد، ارائه دهنده می تواند شروع به ارسال رویدادها به پروژه شما کند.
یک کانال ایجاد کنید
می توانید با استفاده از gcloud
یک کانال برای ارائه دهنده Datadog ایجاد کنید:
CHANNEL_NAME=datadog-channel gcloud eventarc channels create $CHANNEL_NAME \ --provider datadog \ --location $REGION
همچنین میتوانید آن را از بخش کانالهای صفحه Eventarc در Google Cloud Console ایجاد کنید:
بازیابی جزئیات کانال
پس از ایجاد کانال، جزئیات کانال را از gcloud
بازیابی کنید:
gcloud eventarc channels describe $CHANNEL_NAME --location $REGION
خروجی باید مشابه موارد زیر باشد:
activationToken: so5g4Kdasda7y2MSasdaGn8njB2 createTime: '2022-03-09T09:53:42.428978603Z' name: projects/project-id/locations/us-central1/channels/datadog-channel provider: projects/project-id/locations/us-central1/providers/datadog pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077 state: PENDING uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
به طور مشابه، میتوانید کانال را از Google Cloud Console ببینید:
وضعیت کانال نشان دهنده وضعیت کانال است. می تواند یکی از موارد زیر باشد:
-
PENDING
— کانال با موفقیت ایجاد شد و یک نشانه فعال سازی برای ایجاد ارتباط با ارائه دهنده موجود است. برای تغییر وضعیت کانال ازPENDING
بهACTIVE
، رمز باید به ارائه دهنده داده شود و ظرف 24 ساعت پس از ایجاد کانال برای اتصال کانال استفاده شود. -
ACTIVE
— کانال با موفقیت با ارائه دهنده متصل شد. یک کانالACTIVE
آماده دریافت و مسیریابی رویدادها از ارائه دهنده است. -
INACTIVE
- کانال نمی تواند رویدادها را دریافت کند و دوباره فعال شود. ارائه دهنده یا از این کانال قطع شده است یا رمز فعال سازی کانال منقضی شده است و ارائه دهنده متصل نیست. برای برقراری مجدد ارتباط با یک ارائه دهنده، باید یک کانال جدید برای ارائه دهنده ایجاد کنید.
توکن فعال سازی یک توکن یکبار مصرف و با محدودیت زمانی است که برای ایجاد ارتباط بین ارائه دهنده و پروژه مشترک استفاده می شود. فقط یک ارائه دهنده خاص که در طول فرآیند ایجاد کانال انتخاب شده است می تواند از توکن استفاده کند. ژتون تا 24 ساعت پس از ایجاد کانال معتبر است. پس از 24 ساعت، کانال INACTIVE
می شود.
جزئیات کانال را برای ارائه دهنده ارسال کنید
شما باید جزئیات کانال زیر را به ارائه دهنده Datadog ارسال کنید:
- نام کانال (به عنوان مثال
projects/project-id/locations/us-central1/channels/datadog-channel
) - رمز فعال سازی (به عنوان مثال
so5g4Kdasda7y2MSasdaGn8njB2
)
وارد Datadog شوید، به صفحه ادغام بروید و مطمئن شوید که Google Eventarc یکپارچه شده است:
در قسمت پیکربندی Google Eventarc، نام کامل کانال و کد فعال سازی را وارد کنید:
اکنون باید کانال را در لیست کانال ها مشاهده کنید و پس از چند ثانیه، فعال شدن کانال را در Google Cloud Console نیز مشاهده کنید:
اکنون، شما آماده استفاده از کانال هستید!
5. یک گردش کار ایجاد کنید
برای دریافت رویدادها از ارائه دهنده، به یک مقصد در Google Cloud نیاز دارید. Eventarc از تعدادی مقصد رویداد مانند Cloud Run، Workflows، خدمات Kubernetes پشتیبانی می کند. در این مورد، یک گردش کار را برای ثبت رویدادهای دریافتی به سادگی اجرا کنید.
یک فایل workflow-datadog1.yaml
با محتویات زیر ایجاد کنید:
main: params: [event] steps: - logStep: call: sys.log args: data: ${event}
توجه داشته باشید که گردش کار یک رویداد را به عنوان پارامتر دریافت می کند. این رویداد از پایش Datadog از طریق Eventarc خواهد بود. پس از دریافت رویداد، گردش کار به سادگی رویداد دریافت شده را ثبت می کند.
گسترش گردش کار:
WORKFLOW_NAME=workflow-datadog1 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog1.yaml \ --location $REGION
گردش کار مستقر است اما هنوز اجرا نمی شود. هنگامی که هشدار Datadog دریافت می شود، توسط یک ماشه Eventarc اجرا می شود.
6. یک تریگر Eventarc ایجاد کنید
اکنون آماده هستید که رویدادها را از ارائه دهنده Datadog به Workflows با یک تریگر Eventarc متصل کنید.
پیکربندی حساب سرویس
هنگام ایجاد تریگر به یک حساب سرویس با نقش eventarc.eventReceiver
نیاز دارید. می توانید یک حساب سرویس اختصاصی ایجاد کنید یا از حساب پیش فرض سرویس محاسباتی استفاده کنید.
برای سادگی، از حساب پیش فرض سرویس محاسباتی استفاده کنید و نقش eventarc.eventReceiver
را اعطا کنید:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)') gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role roles/eventarc.eventReceiver
یک ماشه ایجاد کنید
یک ماشه با کانال Datadog، نوع رویداد و همچنین مقصد گردش کار ایجاد کنید:
gcloud eventarc triggers create datadog-trigger1 \ --location $REGION \ --destination-workflow $WORKFLOW_NAME \ --destination-workflow-location $REGION \ --channel $CHANNEL_NAME \ --event-filters type=datadog.v1.alert \ --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com
میتوانید محرکها را فهرست کنید تا ببینید که تریگر تازه ایجاد شده فعال است:
gcloud eventarc triggers list --location $REGION NAME: datadog-trigger1 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog1 ACTIVE: Yes
7. یک مانیتور Datadog ایجاد کنید
اکنون یک مانیتور Datadog ایجاد کرده و آن را به Eventarc متصل خواهید کرد.
این یک مانیتور از نوع Hello World با مقادیر پیش فرض خواهد بود. شما به صورت دستی آن را برای ایجاد هشدارهای نظارتی فعال می کنید که به نوبه خود یک رویداد Eventarc در Google Cloud ایجاد می کند.
برای ایجاد مانیتور در Datadog، وارد Datadog شوید . ماوس را روی Monitors
در منوی اصلی نگه دارید و در منوی فرعی روی New Monitor
کلیک کنید. انواع مانیتورهای زیادی وجود دارد. نوع مانیتور Metric
را انتخاب کنید.
در صفحه New Monitor
، پیش فرض های مراحل 1 و 2 را رها کنید.
- در مرحله 3،
Alert threshold
را روی 1 تنظیم کنید - در مرحله 4،
Test monitor for Eventarc
به عنوان نام مانیتور تنظیم کنید وNotify your team
روی@eventarc_<your-project-id>_<your-region>_<your-channel-name>
تنظیم کنید.
صفحه مانیتور را برای مرحله بعدی که مانیتور را آزمایش می کنید باز نگه دارید.
8. مانیتور و ماشه را تست کنید
برای آزمایش مانیتور Datadog و ماشه Eventarc، مانیتور را به صورت دستی فعال می کنید.
در پایین صفحه ایجاد مانیتور، روی دکمه Test Notifications
کلیک کنید:
سپس روی دکمه Run Test
کلیک کنید:
این باید انتقال حالت را در مانیتور شبیه سازی کند و یک رویداد Eventarc را راه اندازی کند.
workflow-datadog1
بررسی کنید. باید ببینید که یک اجرای جدید وجود دارد:
جزئیات اجرا را بررسی کنید. باید نوع رویداد Datadog datadog.v1.alert
تولید شده از هشدار نظارت را در ورودی گردش کار و همچنین در گزارشها مشاهده کنید:
9. تبریک می گویم
تبریک می گویم، شما نرم افزار کد را تمام کردید! برای یادگیری نحوه پاسخگویی به هشدارهای مانیتورینگ Datadog با Workflows، میتوانید به کد دوم بروید.
آنچه را پوشش داده ایم
- چگونه ارائه دهنده Datadog را کشف کنیم.
- نحوه راه اندازی یک کانال برای ارائه دهنده Datadog.
- نحوه ایجاد یک گردش کار برای ثبت رویدادها
- نحوه ایجاد تریگر Eventarc با کانال.
- نحوه ایجاد مانیتور Datadog
- نحوه تست مانیتور Datadog، تریگر Eventarc و گردش کار.