सामग्री पर जाएं
त्वरित प्रारंभ

त्वरित प्रारंभ

Markdown के रूप में देखें

यह गाइड आपको लगभग दस मिनट में शून्य से Terraform द्वारा प्रबंधित Status200 प्रोजेक्ट तक ले जाती है। आप एक API कुंजी बनाते हैं, Terraform को अपने प्रोजेक्ट की ओर इंगित करते हैं, और एक लेबल, आपकी वेबसाइट जाँचने वाला एक मॉनिटर, और उसे दिखाने वाला एक निजी स्थिति पृष्ठ लागू करते हैं। फिर आप उनमें से एक को बदलते हैं और सफ़ाई करते हैं।

flowchart TB K["प्रोजेक्ट की API कुंजी"] --> P["Status200 प्रदाता"] F["main.tf"] --> P P --> L["लेबल:<br/>critical"] P --> M["मॉनिटर: Homepage,<br/>आपकी वेबसाइट जाँचता है"] P --> S["स्थिति पृष्ठ:<br/>Internal Status"] M --> S

इस गाइड में आप क्या बनाते हैं

शुरू करने से पहले

  • Terraform 1.5 या बाद का, या OpenTofu 1.6 या बाद का। OpenTofu के साथ, जहाँ भी यह गाइड terraform चलाती है, वहाँ tofu चलाएँ।
  • एक Status200 प्रोजेक्ट, status200.ru पर या आपके अपने Status200 पर, जिसमें आप API कुंजियाँ बना सकते हैं।
  • Status200 Cloud पर, Growth प्लान या उससे ऊपर। प्रोजेक्ट की API कुंजियाँ केवल उसी पर काम करती हैं।

अपने पहले संसाधन बनाएँ

  1. प्रोजेक्ट की API कुंजी बनाएँ

    Status200 डैशबोर्ड में प्रोजेक्ट सेटिंग्स → उन्नत → API कुंजियाँ खोलें और API कुंजी बनाएँ पर क्लिक करें। इसे एक नाम दें, जैसे terraform, और एक्सेस में प्रोजेक्ट एडमिन चुनें: Terraform हर तरह का वह रिकॉर्ड बनाता, पढ़ता, बदलता और हटाता है जिसे वह प्रबंधित करता है, और प्रोजेक्ट एडमिन यह सब कर सकता है। सीमित कुंजी के लिए अनुमतियाँ बाद में चुनें चुनें और कुंजी के पेज पर केवल वे अनुमतियाँ जोड़ें जिनकी आपको ज़रूरत है।

    कुंजी आज से एक साल बाद समाप्त होती है। कोई दूसरी तारीख चुनने के लिए, बनाने से पहले और फ़ील्ड खोलें, या बाद में कुंजी के पेज पर तारीख बदलें। कुंजी बनने के बाद उसका पेज खुलता है: API कुंजी विवरण कार्ड से API कुंजी कॉपी करें।

  2. कुंजी को Terraform के लिए उपलब्ध कराएँ

    कुंजी को उस शेल के STATUS200_API_KEY एनवायरनमेंट वेरिएबल में रखें जिसमें आप Terraform चलाते हैं, ताकि वह कभी किसी फ़ाइल में न पहुँचे:

    Linux

    Bash
    export STATUS200_API_KEY="<your-api-key>"

    macOS

    Bash
    export STATUS200_API_KEY="<your-api-key>"

    Windows

    PowerShell
    $env:STATUS200_API_KEY = "<your-api-key>"
  3. Terraform को Status200 की ओर इंगित करें

    एक खाली फ़ोल्डर बनाएँ, और उसमें main.tf नाम की एक फ़ाइल:

    main.tfHCL
    terraform {
      required_providers {
        oneuptime = {
          source  = "oneuptime/status200"
          version = "~> 14.0"
        }
      }
    }
    
    provider "oneuptime" {
      # The API key comes from STATUS200_API_KEY.
      # On a self-hosted Status200, add your Status200's address:
      # status200_url = "https://status200.example.com"
    }

    स्व-होस्टेड Status200 पर, प्रदाता का संस्करण चुनने से पहले स्व-होस्टेड सेटअप पढ़ें।

  4. अपने संसाधनों का वर्णन करें

    ये ब्लॉक main.tf में जोड़ें। ये उन मॉनिटर स्थितियों में से दो को पढ़ते हैं जिनसे हर प्रोजेक्ट शुरू होता है, और एक लेबल, हर पाँच मिनट में https://example.com जाँचने वाला एक मॉनिटर (वहाँ अपनी वेबसाइट डालें), और मॉनिटर दिखाने वाला एक निजी स्थिति पृष्ठ बनाते हैं:

    main.tfHCL
    data "status200_monitor_status" "operational" {
      name = "Operational"
    }
    
    data "status200_monitor_status" "offline" {
      name = "Offline"
    }
    
    resource "status200_label" "critical" {
      name        = "critical"
      description = "Resources that page on-call when down"
      color       = "#FF5733"
    }
    
    resource "status200_monitor" "homepage" {
      name                = "Homepage"
      description         = "Checks that the homepage responds"
      monitor_type        = "Website"
      monitoring_interval = "*/5 * * * *"
      labels              = [status200_label.critical.id]
    
      monitor_steps = [{
        monitor_destination      = "https://example.com"
        monitor_destination_type = "URL"
        request_type             = "GET"
    
        criteria = [
          {
            name                  = "Offline"
            description           = "The homepage does not respond"
            filter_condition      = "Any"
            change_monitor_status = true
            monitor_status_id     = data.status200_monitor_status.offline.id
    
            filters = [
              {
                check_on    = "Is Online"
                filter_type = "False"
              }
            ]
          },
          {
            name                  = "Online"
            description           = "The homepage responds"
            filter_condition      = "All"
            change_monitor_status = true
            monitor_status_id     = data.status200_monitor_status.operational.id
    
            filters = [
              {
                check_on    = "Is Online"
                filter_type = "True"
              }
            ]
          }
        ]
      }]
    }
    
    resource "status200_status_page" "internal" {
      name                  = "Internal Status"
      description           = "Status of our internal services"
      page_title            = "Service Status"
      is_public_status_page = false
    }
    
    resource "status200_status_page_resource" "homepage" {
      status_page_id = status200_status_page.internal.id
      monitor_id     = status200_monitor.homepage.id
      display_name   = "Homepage"
    }
    
    output "monitor_id" {
      value = status200_monitor.homepage.id
    }

    मॉनिटर के monitor_steps बताते हैं कि वह क्या जाँचता है और हर नतीजे का क्या मतलब है: हर जाँच के बाद, मेल खाने वाला पहला मानदंड उसकी स्थिति तय करता है। मॉनिटर चरण हर हिस्से को समझाता है।

  5. प्लान बनाएँ और लागू करें

    Terraform

    Bash
    terraform init
    terraform plan
    terraform apply

    OpenTofu

    Bash
    tofu init
    tofu plan
    tofu apply

    init प्रदाता डाउनलोड करता है। प्लान Plan: 4 to add, 0 to change, 0 to destroy. पर ख़त्म होता है। इसे लागू करने के लिए yes टाइप करें; पूरा होने पर Terraform नए मॉनिटर का ID प्रिंट करता है।

  6. डैशबोर्ड जाँचें

    Status200 डैशबोर्ड में:

    • मॉनिटर critical लेबल के साथ Homepage दिखाता है। उसकी पहली जाँच कुछ ही मिनटों में आ जाती है।
    • स्थिति पृष्ठ Internal Status दिखाता है, जो Homepage दिखाता है।
    • प्रोजेक्ट सेटिंग्स → बेसिक → लेबल आपके चुने रंग में critical दिखाता है।

    terraform plan फिर से चलाएँ। यह No changes. जवाब देता है: Status200 में ठीक वही है जो कॉन्फ़िगरेशन कहता है।

संसाधन बदलें

कॉन्फ़िगरेशन बदलें, डैशबोर्ड नहीं। main.tf में लेबल का color "#2ECC71" पर सेट करें, फिर प्लान बनाएँ और लागू करें:

Bash
terraform plan
terraform apply

प्लान Plan: 0 to add, 1 to change, 0 to destroy. पर ख़त्म होता है: लेबल अपनी जगह पर बदला जाता है। Terraform द्वारा प्रबंधित किसी संसाधन में कोई डैशबोर्ड से जो बदलाव करता है, वह अगले प्लान में दिखता है, और उसे लागू करने पर कॉन्फ़िगरेशन वाली स्थिति वापस आ जाती है।

सफ़ाई करें

अगर यह केवल आज़माइश थी, तो कॉन्फ़िगरेशन ने जो बनाया है उसे हटा दें:

Bash
terraform destroy

यह लेबल, मॉनिटर, स्थिति पृष्ठ और उसका संसाधन हटा देता है। दोनों मॉनिटर स्थितियाँ बनी रहती हैं: डेटा स्रोत उन्हें केवल पढ़ते हैं।

समस्या निवारण

संदेश “Missing API Key”

प्रदाता को कोई API कुंजी नहीं मिली। जिस शेल में आप Terraform चलाते हैं, उसमें STATUS200_API_KEY export करें, या प्रदाता ब्लॉक में api_key सेट करें, और कमांड फिर से चलाएँ।

संदेश “the Status200 API returned status 400: Invalid API Key”

कुंजी गलत टाइप हुई है, समाप्त हो गई है या हटा दी गई है, या वह उस Status200 के बजाय किसी दूसरे Status200 की है जिसकी ओर status200_url इशारा करता है। कुंजी उसके पेज से फिर कॉपी करें, या नई बनाएँ।

संदेश “the Status200 API returned status 402: API keys need the Growth plan”

Status200 Cloud पर, प्रोजेक्ट की API कुंजियाँ केवल Growth प्लान या उससे ऊपर काम करती हैं। प्रोजेक्ट सेटिंग्स → बिलिंग और चालान → बिलिंग में प्रोजेक्ट को अपग्रेड करें, और वही कुंजी फिर से काम करने लगती है।

संदेश “the Status200 API returned status 422: You do not have permissions to create Monitor”

कुंजी के पास उस तरह के रिकॉर्ड की कोई अनुमति नहीं है। कुंजी के पेज पर उसे प्रोजेक्ट एडमिन दें, या वह अनुमति जिसका संदेश में नाम है।

संदेश “No monitor status matches {name = "Offline"}”

आपके प्रोजेक्ट की मॉनिटर स्थितियों के नाम दूसरे हैं। मॉनिटर → सेटिंग्स → मॉनिटर स्थिति में दिखने वाले नाम इस्तेमाल करें, या इसके बजाय is_offline_state = true से स्थिति खोजें।

अगले कदम