Eventarc की मदद से, Dataडॉग के निगरानी से जुड़ी सूचनाओं को Google Cloud पर रूट करना (पार्ट 1)

1. परिचय

cb762f29e9183a3f.png 3c7ca8629bc25d9c.png

Eventarc की मदद से, Google Cloud सेवाओं को अलग-अलग सोर्स से मिलने वाले इवेंट के साथ आसानी से कनेक्ट किया जा सकता है. इससे इवेंट-ड्रिवन आर्किटेक्चर बनाए जा सकते हैं. इनमें माइक्रोसेवाएं, एक-दूसरे से कम जुड़ी होती हैं और डिस्ट्रिब्यूट की जाती हैं. यह इवेंट के डेटा को इकट्ठा करने, उसे डिलीवर करने, उसकी सुरक्षा करने, उसे ऐक्सेस करने की अनुमति देने, और गड़बड़ियों को ठीक करने का काम भी करता है. इससे डेवलपर को तेज़ी से काम करने में मदद मिलती है और ऐप्लिकेशन की परफ़ॉर्मेंस बेहतर होती है.

Datadog, क्लाउड ऐप्लिकेशन के लिए मॉनिटरिंग और सुरक्षा प्लैटफ़ॉर्म है. यह एंड-टू-एंड ट्रेस, मेट्रिक, और लॉग को एक साथ लाता है, ताकि आपके ऐप्लिकेशन, इन्फ़्रास्ट्रक्चर, और तीसरे पक्ष की सेवाओं को मॉनिटर किया जा सके.

इस पहले कोडलैब में, आपको Eventarc की मदद से, Datadog की मॉनिटरिंग से जुड़ी किसी सामान्य सूचना को Google Cloud पर भेजने का तरीका बताया जाएगा.

आपको क्या सीखने को मिलेगा

  • Datadog सेवा देने वाली कंपनी के बारे में जानने का तरीका.
  • Datadog सेवा देने वाली कंपनी के लिए, चैनल को कैसे सेट अप करें.
  • इवेंट लॉग करने के लिए वर्कफ़्लो बनाने का तरीका.
  • चैनल के साथ Eventarc ट्रिगर बनाने का तरीका.
  • Datadog मॉनिटर बनाने का तरीका.
  • Datadog मॉनिटर, Eventarc ट्रिगर, और वर्कफ़्लो की जांच कैसे करें.

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेट अप करना

  1. Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से कोई Gmail या Google Workspace खाता नहीं है, तो आपको एक खाता बनाना होगा.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों के लिए डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करते. इसे कभी भी अपडेट किया जा सकता है.
  • प्रोजेक्ट आईडी, सभी Google Cloud प्रोजेक्ट के लिए यूनीक होना चाहिए. साथ ही, इसे बदला नहीं जा सकता. Cloud Console, यूनीक स्ट्रिंग अपने-आप जनरेट करता है. आम तौर पर, आपको इससे कोई फ़र्क़ नहीं पड़ता कि यह क्या है. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना होगा. आम तौर पर, इसे PROJECT_ID के तौर पर पहचाना जाता है. अगर आपको जनरेट किया गया आईडी पसंद नहीं है, तो कोई दूसरा रैंडम आईडी जनरेट किया जा सकता है. इसके अलावा, आपके पास अपना नाम आज़माने का विकल्प भी है. इससे आपको पता चलेगा कि वह नाम उपलब्ध है या नहीं. इस चरण के बाद, इसे बदला नहीं जा सकता. यह प्रोजेक्ट की अवधि तक बना रहेगा.
  • आपकी जानकारी के लिए बता दें कि एक तीसरी वैल्यू भी होती है, जिसे प्रोजेक्ट नंबर कहते हैं. इसका इस्तेमाल कुछ एपीआई करते हैं. इन तीनों वैल्यू के बारे में ज़्यादा जानने के लिए, दस्तावेज़ देखें.
  1. इसके बाद, आपको Cloud Console में बिलिंग चालू करनी होगी, ताकि Cloud संसाधनों/एपीआई का इस्तेमाल किया जा सके. इस कोडलैब को पूरा करने में ज़्यादा खर्च नहीं आएगा. इस ट्यूटोरियल के बाद बिलिंग से बचने के लिए, बनाए गए संसाधनों को बंद किया जा सकता है. इसके लिए, बनाए गए संसाधनों को मिटाएं या पूरे प्रोजेक्ट को मिटाएं. Google Cloud के नए उपयोगकर्ताओं को, मुफ़्त में आज़माने के लिए 300 डॉलर का क्रेडिट मिलता है.

Cloud Shell शुरू करें

Google Cloud को अपने लैपटॉप से रिमोटली ऐक्सेस किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जाएगा. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.

Google Cloud Console में, सबसे ऊपर दाएं कोने में मौजूद टूलबार पर, Cloud Shell आइकॉन पर क्लिक करें:

55efc1aaa7a4d3ad.png

इसे चालू करने और एनवायरमेंट से कनेक्ट करने में सिर्फ़ कुछ सेकंड लगेंगे. यह प्रोसेस पूरी होने के बाद, आपको कुछ ऐसा दिखेगा:

7ffe5cbb04455448.png

इस वर्चुअल मशीन में, डेवलपमेंट के लिए ज़रूरी सभी टूल पहले से मौजूद हैं. यह 5 जीबी की होम डायरेक्ट्री उपलब्ध कराता है. साथ ही, यह Google Cloud पर काम करता है. इससे नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस बेहतर होती है. इस कोडलैब में मौजूद सभी टास्क, ब्राउज़र में किए जा सकते हैं. आपको कुछ भी इंस्टॉल करने की ज़रूरत नहीं है.

gcloud सेट अप करना

Cloud Shell में, अपना प्रोजेक्ट आईडी सेट करें और इसे PROJECT_ID वैरिएबल के तौर पर सेव करें.

साथ ही, REGION वैरिएबल को us-central1 पर सेट करें. यह वह क्षेत्र है जिसमें आपको बाद में संसाधन बनाने हैं.

PROJECT_ID=[YOUR-PROJECT-ID]
REGION=us-central1
gcloud config set core/project $PROJECT_ID

एपीआई चालू करें

सभी ज़रूरी सेवाएं चालू करें:

gcloud services enable \
  eventarc.googleapis.com \
  eventarcpublishing.googleapis.com \
  workflows.googleapis.com \
  workflowexecutions.googleapis.com

3. Datadog provider के बारे में जानकारी

Eventarc प्रोवाइडर, कोई ऐसी सेवा या इकाई होती है जो सीधे तौर पर Google Cloud को इवेंट भेज सकती है. इसके बाद, इन इवेंट को आपके प्रोजेक्ट पर भेजा जाता है. Datadog जैसे तीसरे पक्ष के सेवा देने वाले ऐसे प्रोवाइडर होते हैं जो Google Cloud के प्रोवाइडर नहीं हैं. हालांकि, ये Eventarc के ज़रिए Google Cloud के साथ इंटिग्रेट किए जाते हैं.

Google Cloud और तीसरे पक्ष के प्रोवाइडर की सूची देखने के लिए, Cloud Shell में यह कमांड चलाएं:

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 provider के बारे में जानकारी देकर भी, यह देखा जा सकता है कि यह किन इवेंट के साथ काम करता है:

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

इसे Google Cloud Console में Eventarc पेज के Channels सेक्शन से भी बनाया जा सकता है:

d03a7173b25e5ea6.png

चैनल की जानकारी वापस पाना

चैनल बनाने के बाद, 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 में जाकर चैनल देखा जा सकता है:

80d8b2b6a46cb4c5.png

चैनल की स्थिति से, चैनल के स्टेटस के बारे में पता चलता है. यह इनमें से कोई एक हो सकता है:

  • PENDING—चैनल बन गया है और सेवा देने वाली कंपनी से कनेक्शन बनाने के लिए, ऐक्टिवेशन टोकन उपलब्ध है. चैनल की स्थिति को PENDING से ACTIVE में बदलने के लिए, टोकन को सेवा देने वाली कंपनी को देना होगा. साथ ही, चैनल बनाने के 24 घंटे के अंदर, चैनल को कनेक्ट करने के लिए इसका इस्तेमाल करना होगा.
  • ACTIVE—चैनल को सेवा देने वाली कंपनी से कनेक्ट कर दिया गया है. ACTIVE चैनल, इवेंट के डेटा को पाने और उसे राउट करने के लिए तैयार है.
  • INACTIVE—चैनल को इवेंट नहीं मिल सकते और न ही इसे फिर से चालू किया जा सकता है. ऐसा हो सकता है कि सेवा देने वाली कंपनी, इस चैनल से डिसकनेक्ट हो गई हो या चैनल चालू करने का टोकन खत्म हो गया हो और सेवा देने वाली कंपनी कनेक्ट न हो. किसी प्रोवाइडर के साथ कनेक्शन फिर से बनाने के लिए, आपको प्रोवाइडर के लिए एक नया चैनल बनाना होगा.

ऐक्टिवेशन टोकन का इस्तेमाल सिर्फ़ एक बार किया जा सकता है. इसकी समयसीमा भी सीमित होती है. इसका इस्तेमाल, सेवा देने वाली कंपनी और सदस्य के प्रोजेक्ट के बीच कनेक्शन बनाने के लिए किया जाता है. चैनल बनाने के दौरान चुने गए किसी खास प्रोवाइडर को ही टोकन इस्तेमाल करने की अनुमति होती है. यह टोकन, चैनल बनाने के 24 घंटे तक मान्य रहता है. चैनल, 24 घंटे बाद INACTIVE हो जाता है.

चैनल की जानकारी, सेवा देने वाली कंपनी को भेजना

आपको Datadog provider को चैनल की यह जानकारी भेजनी होगी:

  • चैनल का नाम (जैसे, projects/project-id/locations/us-central1/channels/datadog-channel)
  • ऐक्टिवेशन टोकन (जैसे, so5g4Kdasda7y2MSasdaGn8njB2)

Datadog में लॉगिन करें. इसके बाद, इंटिग्रेशन पेज पर जाएं और पक्का करें कि Google Eventarc इंटिग्रेशन इंस्टॉल हो:

9736bd517e1fa19a.png

Google Eventarc के कॉन्फ़िगरेशन सेक्शन में, चैनल का पूरा नाम और ऐक्टिवेशन टोकन डालें:

a17f522075cdd92e.png

अब आपको चैनलों की सूची में चैनल दिखना चाहिए. साथ ही, कुछ सेकंड बाद आपको Google Cloud Console में भी चैनल चालू दिखना चाहिए:

8399d528ccbd4c20.png

अब इस चैनल का इस्तेमाल किया जा सकता है!

5. वर्कफ़्लो बनाना

आपको इवेंट भेजने वाले प्लैटफ़ॉर्म से इवेंट पाने के लिए, Google Cloud में एक डेस्टिनेशन की ज़रूरत होगी. Eventarc, इवेंट के कई डेस्टिनेशन के साथ काम करता है. जैसे, Cloud Run, Workflows, Kubernetes सेवाएं. इस मामले में, मिले हुए इवेंट को लॉग करने के लिए, वर्कफ़्लो डिप्लॉय करें.

नीचे दिए गए कॉन्टेंट के साथ एक workflow-datadog1.yaml फ़ाइल बनाएं:

main:
  params: [event]
  steps:
  - logStep:
      call: sys.log
      args:
        data: ${event}

ध्यान दें कि वर्कफ़्लो को पैरामीटर के तौर पर इवेंट मिल रहा है. यह इवेंट, Eventarc के ज़रिए Datadog मॉनिटरिंग से मिलेगा. इवेंट मिलने के बाद, वर्कफ़्लो सिर्फ़ मिले हुए इवेंट को लॉग करता है.

वर्कफ़्लो डिप्लॉय करें:

WORKFLOW_NAME=workflow-datadog1
gcloud workflows deploy $WORKFLOW_NAME \
  --source workflow-datadog1.yaml \
  --location $REGION

वर्कफ़्लो को डिप्लॉय कर दिया गया है, लेकिन यह अभी चल नहीं रहा है. Datadog से सूचना मिलने पर, इसे Eventarc ट्रिगर से लागू किया जाएगा.

6. Eventarc ट्रिगर बनाना

अब Datadog प्रोवाइडर से इवेंट को, Eventarc ट्रिगर के साथ Workflows से कनेक्ट किया जा सकता है.

सेवा खाता कॉन्फ़िगर करना

ट्रिगर बनाते समय, आपके पास eventarc.eventReceiver भूमिका वाला सेवा खाता होना चाहिए. आपके पास, किसी खास सेवा खाते को बनाने या डिफ़ॉल्ट कंप्यूट सेवा खाते का इस्तेमाल करने का विकल्प होता है.

आसानी के लिए, Compute के डिफ़ॉल्ट सेवा खाते का इस्तेमाल करें और 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 टाइप का मॉनिटर होगा. आपको इसे मैन्युअल तरीके से ट्रिगर करना होगा, ताकि निगरानी से जुड़ी चेतावनियां जनरेट की जा सकें. इससे Google Cloud में Eventarc इवेंट जनरेट होगा.

Datadog में मॉनिटर बनाने के लिए, Datadog में लॉग इन करें. मुख्य मेन्यू में जाकर, Monitors पर कर्सर घुमाएं. इसके बाद, सब-मेन्यू में जाकर New Monitor पर क्लिक करें. मॉनिटर कई तरह के होते हैं. Metric मॉनिटर टाइप चुनें.

New Monitor पेज पर, पहले और दूसरे चरण के लिए डिफ़ॉल्ट सेटिंग में कोई बदलाव न करें.

  • तीसरे चरण में, Alert threshold को 1 पर सेट करें
  • चौथे चरण में, मॉनिटर के नाम के तौर पर Test monitor for Eventarc सेट करें और Notify your team को @eventarc_<your-project-id>_<your-region>_<your-channel-name> पर सेट करें

मॉनिटर पेज को खुला रखें, ताकि अगले चरण में मॉनिटर की जाँच की जा सके.

8. मॉनिटर और ट्रिगर की जांच करना

Datadog मॉनिटर और Eventarc ट्रिगर की जांच करने के लिए, आपको मॉनिटर को मैन्युअल तरीके से ट्रिगर करना होगा.

मॉनिटर बनाने वाले पेज पर सबसे नीचे, Test Notifications बटन पर क्लिक करें:

32ccf1cc47b01150.png

इसके बाद, Run Test बटन पर क्लिक करें:

7f2ff70ec673007b.png

इससे मॉनिटर में स्थिति बदलने का सिम्युलेशन होना चाहिए और Eventarc इवेंट ट्रिगर होना चाहिए.

workflow-datadog1 वर्कफ़्लो की जांच करें. आपको दिखेगा कि नया एक्ज़ीक्यूशन है:

adf7cd97ca2e8da7.png

एक्ज़ीक्यूशन की जानकारी देखें. आपको वर्कफ़्लो के इनपुट में, मॉनिटरिंग अलर्ट से जनरेट हुआ Datadog इवेंट टाइप datadog.v1.alert दिखेगा. साथ ही, यह लॉग में भी दिखेगा:

dc78fd8460e5fc0e.png

9. बधाई हो

बधाई हो, आपने कोडलैब पूरा कर लिया है! Workflows की मदद से, Datadog मॉनिटरिंग की सूचनाओं का जवाब देने का तरीका जानने के लिए, दूसरे कोडलैब पर जाएं.

हमने क्या-क्या कवर किया है

  • Datadog सेवा देने वाली कंपनी के बारे में जानने का तरीका.
  • Datadog सेवा देने वाली कंपनी के लिए, चैनल को कैसे सेट अप करें.
  • इवेंट लॉग करने के लिए वर्कफ़्लो बनाने का तरीका.
  • चैनल के साथ Eventarc ट्रिगर बनाने का तरीका.
  • Datadog मॉनिटर बनाने का तरीका.
  • Datadog मॉनिटर, Eventarc ट्रिगर, और वर्कफ़्लो की जांच कैसे करें.