1. परिचय
Eventarc की मदद से, Google Cloud की सेवाओं को कई तरह के सोर्स के इवेंट से आसानी से कनेक्ट किया जा सकता है. इसकी मदद से, इवेंट पर आधारित ऐसे आर्किटेक्चर बनाए जा सकते हैं जिनमें माइक्रोसेवाओं को शिफ़्ट किया जाता है और डिस्ट्रिब्यूट किया जाता है. यह सुविधा, इवेंट का डेटा डालने, डिलीवरी, सुरक्षा, अनुमति देने, और गड़बड़ियों को ठीक करने का भी ध्यान रखती है. इससे, डेवलपर को ऐप्लिकेशन के हिसाब से अपने ऐप्लिकेशन को टेस्ट करने में आसानी होती है.
Datadog, क्लाउड ऐप्लिकेशन के लिए निगरानी और सुरक्षा करने का प्लैटफ़ॉर्म है. यह आपके ऐप्लिकेशन, इन्फ़्रास्ट्रक्चर, और तीसरे पक्ष की सेवाओं को मॉनिटर करने लायक बनाने के लिए, एंड-टू-एंड ट्रेस, मेट्रिक, और लॉग को एक साथ लाता है.
Workflows, पूरी तरह से मैनेज किया गया ऑर्केस्ट्रेशन प्लैटफ़ॉर्म है, जो सेवाओं को उस क्रम में चलाता है जिसे आपने वर्कफ़्लो कहा है. इन वर्कफ़्लो में Cloud Run या Cloud Functions पर होस्ट की गई सेवाएं, Cloud Vision AI और BigQuery जैसी Google Cloud सेवाएं, और किसी भी एचटीटीपी-आधारित एपीआई का इस्तेमाल किया जा सकता है.
पहले कोडलैब में, आपने Eventarc की मदद से Dataडॉग के लिए निगरानी की जाने वाली सूचनाओं को Google Cloud पर रूट करने का तरीका सीखा था. इस दूसरे कोडलैब में, आपको Workflows की मदद से Datafood की निगरानी से जुड़ी सूचनाओं का जवाब देने का तरीका पता चलेगा. खास तौर पर, आपको दो Compute Engine वर्चुअल मशीन बनाने होंगे और उनकी निगरानी Datafood मॉनिटर से करनी होगी. 1 वीएम मिटाए जाने के बाद, आपको Dataडॉग से Eventarc के ज़रिए Workflows की सूचना मिलेगी. इसके बदले में, वर्कफ़्लो, मिटाई गई वीएम को फिर से जनरेट करेगा, ताकि चल रही वीएम की संख्या फिर से दो हो जाए.
आपको क्या सीखने को मिलेगा
- Dataडॉग का Google Cloud इंटिग्रेशन चालू करने का तरीका.
- Compute Engine वीएम की जांच करने और उन्हें बनाने के लिए वर्कफ़्लो बनाने का तरीका.
- डेटाडॉग की निगरानी से जुड़ी सूचनाओं को Eventarc की मदद से Workflows से कैसे कनेक्ट करें.
- Datadogfood मॉनिटर करने और वर्चुअल मशीन को मिटाने के बारे में सूचना देने का तरीका.
2. सेटअप और ज़रूरी शर्तें
अपने हिसाब से एनवायरमेंट सेटअप करना
- Google Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. अगर आपके पास पहले से Gmail या Google Workspace खाता नहीं है, तो आपको नया खाता बनाना होगा.
- प्रोजेक्ट का नाम, इस प्रोजेक्ट में हिस्सा लेने वाले लोगों का डिसप्ले नेम होता है. यह एक वर्ण स्ट्रिंग है, जिसका इस्तेमाल Google API नहीं करता. साथ ही, आप इसे किसी भी समय अपडेट कर सकते हैं.
- प्रोजेक्ट आईडी, Google Cloud के सभी प्रोजेक्ट के लिए यूनीक होना चाहिए. साथ ही, आईडी को बदला नहीं जा सकता. सेट अप के बाद इसे बदला नहीं जा सकता. Cloud Console, एक यूनीक स्ट्रिंग अपने-आप जनरेट करता है; आम तौर पर, आपको उसके होने की कोई परवाह नहीं होती. ज़्यादातर कोडलैब में, आपको प्रोजेक्ट आईडी का रेफ़रंस देना पड़ता है और आम तौर पर इसकी पहचान
PROJECT_ID
के रूप में की जाती है. इसलिए, अगर आपको यह पसंद नहीं आता है, तो कोई भी कोड जनरेट करें. इसके अलावा, खुद का भी कोड बनाकर देखा जा सकता है कि वह उपलब्ध है या नहीं. फिर यह "फ़्रोज़न" होता है प्रोजेक्ट बनने के बाद. - तीसरी वैल्यू, प्रोजेक्ट नंबर है, जिसका इस्तेमाल कुछ एपीआई करते हैं. दस्तावेज़ में इन तीनों वैल्यू के बारे में ज़्यादा जानें.
- इसके बाद, आपको क्लाउड संसाधनों/एपीआई का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी. इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. संसाधनों को बंद करने के लिए, इस ट्यूटोरियल के अलावा किसी और तरीके से बिलिंग न करें. इसके लिए, "साफ़-सफ़ाई" का इस्तेमाल करें कोडलैब के आखिर में दिए गए निर्देश देखें. Google Cloud के नए उपयोगकर्ता, 300 डॉलर के मुफ़्त ट्रायल वाले प्रोग्राम में हिस्सा ले सकते हैं.
Cloud Shell शुरू करना
Google Cloud को आपके लैपटॉप से, कहीं से भी ऑपरेट किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जा रहा है. यह क्लाउड में चलने वाला कमांड लाइन एनवायरमेंट है.
Google Cloud Console में जाकर, सबसे ऊपर दाईं ओर मौजूद टूलबार पर क्लाउड शेल आइकॉन पर क्लिक करें:
प्रावधान करने और एनवायरमेंट से कनेक्ट होने में कुछ ही समय लगेगा. उसके पूरा हो जाने पर, आपको कुछ ऐसा दिखाई देगा:
इस वर्चुअल मशीन में ऐसे सभी डेवलपमेंट टूल मौजूद हैं जिनकी आपको ज़रूरत पड़ेगी. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और 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 \ workflows.googleapis.com \ workflowexecutions.googleapis.com
3. Datadogfood चैनल की पुष्टि करना
पक्का करें कि पहले कोडलैब में बनाया गया Dataडॉग चैनल चालू हो. Cloud Shell में, चैनल की जानकारी वापस पाने के लिए यह कमांड चलाएं:
CHANNEL_NAME=datadog-channel 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: ACTIVE uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e updateTime: '2022-03-09T09:53:48.290217299Z'
Google Cloud Console में भी चैनल की स्थिति देखी जा सकती है:
चैनल की स्थिति ACTIVE
होनी चाहिए. अगर नहीं, तो पहले कोडलैब पर वापस जाएं और Datafood के साथ चैनल बनाने और उसे चालू करने के लिए, यह तरीका अपनाएं.
4. Dataडॉग का Google Cloud इंटिग्रेशन चालू करें
किसी प्रोजेक्ट को मॉनिटर करने के लिए Dataडॉग का इस्तेमाल करने के लिए, आपको Dataडॉग के लिए ज़रूरी एपीआई चालू करने होंगे, सेवा खाता बनाना होगा, और सेवा खाते को Dataडॉग से कनेक्ट करना होगा.
Dataडॉग के लिए एपीआई चालू करें
gcloud services enable compute.googleapis.com \ cloudasset.googleapis.com \ monitoring.googleapis.com
सेवा खाता बनाना
Dataडॉग का Google Cloud इंटिग्रेशन, आपके Compute Engine इंस्टेंस से नोड-लेवल की मेट्रिक इकट्ठा करने के लिए, Cloud Logging API को कॉल करने के लिए, सेवा खाते का इस्तेमाल करता है.
Dataडॉग के लिए सेवा खाता बनाएं:
DATADOG_SA_NAME=datadog-service-account gcloud iam service-accounts create $DATADOG_SA_NAME \ --display-name "Datadog Service Account"
नीचे दी गई आईएएम भूमिकाएं देकर, Datadogfood के सेवा खाते को मेट्रिक, टैग, इवेंट, और उपयोगकर्ता लेबल इकट्ठा करने की अनुमति दें:
DATADOG_SA_EMAIL=$DATADOG_SA_NAME@$PROJECT_ID.iam.gserviceaccount.com gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$DATADOG_SA_EMAIL \ --role roles/cloudasset.viewer gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$DATADOG_SA_EMAIL \ --role roles/compute.viewer gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$DATADOG_SA_EMAIL \ --role roles/monitoring.viewer
सेवा खाते की कुंजी बनाएं और डाउनलोड करें. Dataडॉग के साथ इंटिग्रेशन को पूरा करने के लिए, आपको कुंजी फ़ाइल की ज़रूरत होगी.
अपने Cloud Shell की होम डायरेक्ट्री में, सेवा खाते की कुंजी वाली फ़ाइल बनाएं:
gcloud iam service-accounts keys create ~/key.json \ --iam-account $DATADOG_SA_EMAIL
Cloud Shell में, More ⁝
पर क्लिक करें. इसके बाद, Download File
चुनें. File path
फ़ील्ड में key.json
डालें. कुंजी फ़ाइल डाउनलोड करने के लिए, Download
पर क्लिक करें.
सेवा खाते को Datadogfood से कनेक्ट करना
अपने Datadogfood खाते में, Integrations
सेक्शन पर जाएं और Google Cloud
की इंटिग्रेशन टाइल खोजें:
Install
पेज पर जाने के लिए Google Cloud Platform
पर माउस घुमाएं:
इंटिग्रेशन इंस्टॉल करने के लिए, Upload Private Key File
सेक्शन में सेवा खाता कुंजी को अपलोड करें. इसके बाद, Install Integration
पर क्लिक करें:
इंटिग्रेशन पूरा हो जाने के बाद, Datafood अपने-आप Dashboards
में, Google Cloud से जुड़े कई डैशबोर्ड बना देता है:
5. Compute Engine VM बनाना
इसके बाद, कुछ Compute Engine वर्चुअल मशीन (VMs) बनाएं. आपको Datadogfood मॉनिटर की मदद से इन वीएम को मॉनिटर करना होगा. साथ ही, Google Cloud में वर्कफ़्लो की मदद से, Datafood की चेतावनियों का जवाब देना होगा.
दो Compute Engine वीएम बनाएं:
gcloud compute instances create instance-1 instance-2 --zone us-central1-a
आपको Cloud Console में, करीब एक मिनट के अंदर वर्चुअल मशीन (वीएम) बनाई और चालू दिखाई देंगी. कुछ समय (आम तौर पर 10 मिनट) के बाद, आपको Dashboards
के Google Compute Engine
डैशबोर्ड में Dataडॉग में ये वीएम भी दिखेंगे:
6. वर्कफ़्लो बनाएं
अब आपके दो वीएम चालू हैं, इसलिए ऐसा वर्कफ़्लो बनाएं जो Datadogfood मॉनिटर से मिलने वाली सूचनाओं का जवाब दे. वर्कफ़्लो आपकी पसंद के मुताबिक हो सकता है. हालांकि, इस मामले में वर्कफ़्लो, वीएम इंस्टेंस के चलने की संख्या की जांच करेगा. अगर यह दो से कम हो जाता है, तो यह नए वीएम इंस्टेंस बनाएगा, ताकि यह पक्का हो सके कि हर समय दो वीएम चल रहे हैं.
इस कॉन्टेंट वाली workflow-datadog2.yaml
फ़ाइल बनाएं:
main: params: [event] steps: - init: assign: - projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} - zone: "us-central1-a" - minInstanceCount: 2 - namePattern: "datadog-instance-##" - listInstances: call: googleapis.compute.v1.instances.list args: project: ${projectId} zone: ${zone} result: listResult - getInstanceCount: steps: - initInstanceCount: assign: - instanceCount: 0 - setInstanceCount: switch: - condition: ${"items" in listResult} steps: - stepA: assign: - instanceCount: ${len(listResult.items)} - findDiffInstanceCount: steps: - assignDiffInstanceCount: assign: - diffInstanceCount: ${minInstanceCount - instanceCount} - logDiffInstanceCount: call: sys.log args: data: ${"instanceCount->" + string(instanceCount) + " diffInstanceCount->" + string(diffInstanceCount)} - endEarlyIfNeeded: switch: - condition: ${diffInstanceCount < 1} next: returnResult - bulkInsert: call: googleapis.compute.v1.instances.bulkInsert args: project: ${projectId} zone: ${zone} body: count: ${diffInstanceCount} namePattern: ${namePattern} instanceProperties: machineType: "e2-micro" disks: - autoDelete: true boot: true initializeParams: sourceImage: projects/debian-cloud/global/images/debian-10-buster-v20220310 networkInterfaces: - network: "global/networks/default" result: bulkInsertResult - returnResult: return: ${bulkInsertResult}
ध्यान दें कि वर्कफ़्लो को पैरामीटर के तौर पर इवेंट मिल रहा है. यह इवेंट, Eventarc की मदद से Datadogfood मॉनिटर करने वाले प्लैटफ़ॉर्म से आएगा. इवेंट मिलने के बाद, वर्कफ़्लो, चल रहे इंस्टेंस की संख्या की जांच करता है. साथ ही, ज़रूरत पड़ने पर नए वीएम इंस्टेंस बनाता है.
वर्कफ़्लो को डिप्लॉय करें:
WORKFLOW_NAME=workflow-datadog2 gcloud workflows deploy $WORKFLOW_NAME \ --source workflow-datadog2.yaml \ --location $REGION
वर्कफ़्लो लागू हो गया है, लेकिन यह अब तक नहीं चल रहा है. Dataडॉग की चेतावनी मिलने पर, यह Eventarc ट्रिगर की मदद से लागू होगा.
7. Eventarc ट्रिगर बनाएं
अब आप Eventarc ट्रिगर की मदद से Dataडॉग प्रोवाइडर के इवेंट को Workflows के साथ कनेक्ट करने के लिए तैयार हैं. आपको उसी चैनल और सेवा खाते का इस्तेमाल करना होगा जिसे आपने पहले कोडलैब में सेट अप किया था.
Data Dog चैनल, इवेंट टाइप, और वर्कफ़्लो डेस्टिनेशन के साथ एक ट्रिगर बनाएं:
PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)') gcloud eventarc triggers create datadog-trigger2 \ --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-trigger2 TYPE: datadog.v1.alert DESTINATION: Workflows: workflow-datadog2 ACTIVE: Yes
8. Datadogfood मॉनिटर बनाना
अब आपको Dataडॉग मॉनिटर बनाना होगा और उसे Eventarc से कनेक्ट करना होगा.
मॉनिटर, Compute Engine वीएम की चल रही संख्या की जांच करेगा और दो से कम होने पर आपको सूचना देगा.
Datadogfood में मॉनिटर बनाने के लिए, Datafood में लॉग इन करें. मुख्य मेन्यू में Monitors
पर कर्सर घुमाएं और सब-मेन्यू में New Monitor
पर क्लिक करें. मॉनिटर कई तरह के होते हैं. Metric
मॉनिटर टाइप चुनें.
New Monitor
पेज में, इन चीज़ों का इस्तेमाल करके मॉनिटर बनाएं:
- पहचान करने का तरीका चुनें:
Threshold
. - मेट्रिक तय करें:
gcp.gce.instance.is_running
(हर जगह)sum by
(सब कुछ) से - सूचना से जुड़ी शर्तें सेट करें:
- तब ट्रिगर होता है, जब आखिरी
5 minutes
के दौरान मेट्रिक,below
थ्रेशोल्डat least once
पर होती है - अलर्ट थ्रेशोल्ड:
< 2
- अपनी टीम को सूचना दें:
@eventarc_<your-project-id>_<your-region>_<your-channel-name>
- मॉनिटर के नाम का उदाहरण:
Compute Engine instances < 2
अब, मॉनिटर बनाने के लिए सबसे नीचे Create
को दबाएं.
9. मॉनिटर और ट्रिगर की जांच करें
Data Dog मॉनिटर, Eventarc ट्रिगर होने और वर्कफ़्लो की जांच करने के लिए, इनमें से कोई एक वीएम मिटाएं:
gcloud compute instances delete instance-2 --zone us-central1-a
कुछ सेकंड के बाद, आपको Google Cloud Console में इंस्टेंस मिटा दिया गया दिखेगा.
Datafood में इस बदलाव को दिखने में कुछ समय लग सकता है. कुछ समय (आम तौर पर 10 मिनट) के बाद, आपको Manage Monitors
सेक्शन में इसका पता लगाने और इसकी सूचना देने के लिए Dataडॉग में मॉनिटर दिखेगा:
Dataडॉग मॉनिटर के अलर्ट मिलने के बाद, आपको यह अलर्ट, Eventarc के ज़रिए Workflows पर भेजा जाएगा. वर्कफ़्लो के लॉग देखने पर, आपको यह पता चलेगा कि वर्कफ़्लो, इंस्टेंस की मौजूदा संख्या और अनुमानित संख्या के बीच अंतर देखने के लिए इसकी जांच करता है:
2022-03-28 09:30:53.371 BST instanceCount->1 diffInstanceCount->1
यह datadog-instance-##
प्रीफ़िक्स के साथ एक नया वीएम इंस्टेंस बनाकर उस सूचना का जवाब देता है.
आखिर में, आपके प्रोजेक्ट में अब भी 2 वीएम रहेंगे. एक वर्चुअल मशीन (वीएम) आपने शुरुआत में बनाई थी और दूसरे को Dataडॉग अलर्ट के बाद, Workflows ने बनाया था!
10. बधाई हो
बधाई हो, आपने कोडलैब पूरा कर लिया है!
हमने इन विषयों के बारे में बताया
- Dataडॉग का Google Cloud इंटिग्रेशन चालू करने का तरीका.
- Compute Engine वीएम की जांच करने और उन्हें बनाने के लिए वर्कफ़्लो बनाने का तरीका.
- डेटाडॉग की निगरानी से जुड़ी सूचनाओं को Eventarc की मदद से Workflows से कैसे कनेक्ट करें.
- Datadogfood मॉनिटर करने और वर्चुअल मशीन को मिटाने के बारे में सूचना देने का तरीका.