אבחון ואימות התשתית

נושאי המדריך:

אבחון התשתית

בדף הזה מוסבר איך לפתור בעיות בתשתית של Aggregation Service ולאמת אותה. פועלים לפי השלבים כדי לזהות בעיות ולפתור אותן.

פתרון בעיות ב-Terraform

Terraform היא פלטפורמת תשתית כקוד (IaC) שנוצרה על ידי HashiCorp, והיא הכלי העיקרי לפריסה של Aggregation Service בענן הציבורי שבחרתם. אם טרם התקנתם את Terraform, תוכלו לעיין במסמכי העזרה של HashiCorp בנושא איך לקבל את ה-CLI באופן מקומי.

אם אתם צריכים לעבור בין גרסאות של Terraform, כדאי לכם להתקין גם את tfenv.

אם הבעיה בשירות הצבירה לא נפתרה, תוכלו לדווח לנו על כך על ידי שליחת דיווח על בעיה ב-GitHub או שליחת טופס התמיכה הטכנית.

אם אתם מעדיפים להחליף את Terraform באופן ידני:

rm -rf $(which terraform)
wget https://releases.hashicorp.com/terraform/1.2.3/terraform_1.2.3_linux_amd64.zip
unzip terraform_1.2.3_linux_amd64.zip
mv terraform /usr/local/bin/terraform
terraform --version

אם לא ברור מהי השגיאה ב-Terraform, אפשר להפעיל את רישום ביומן של Terraform ברמה TRACE כדי לראות את הפלט.

Google Cloud

השימוש ב-Terraform עם Google Cloud פותח על ידי HashiCorp ו-Google במשותף. אם יש לכם שאלות נוספות או דרוש לכם עזרה בפתרון בעיות, תוכלו לפנות אל התמיכה של Terraform ב-Cloud או לעבור אל הקטע של Google בפורטל Hashicorp Discuss.

Amazon Web Services

מסמכי העזרה בנושא ניפוי באגים זמינים באתר של AWS. מומלץ גם לעיין בקטע של AWS בפורטל HashiCorp Discuss.

אם יש לכם שאלות נוספות לגבי Terraform, תוכלו להיעזר בפורטל של קהילת HashiCorp. לקבלת עצות כלליות לפתרון בעיות ב-Terraform, תוכלו לעיין במסמכי התיעוד לניפוי באגים של Terraform.

חשוב מאוד לשנות את הספריות האלה בזהירות, כי אם תסירו אותן, מערכת Terraform לא תזהה יותר את המצב. המערכת תנסה להקצות מחדש את כל המשאבים ותציג שגיאה אם יש לכם משאב עם אותו שם. אם הבעיה נמשכת, אפשר לפנות אלינו באמצעות טופס התמיכה הטכנית.

חשוב מאוד לשנות את הספריות האלה בזהירות, כי אם תסירו אותן, מערכת Terraform לא תזהה יותר את המצב. המערכת תנסה להקצות מחדש את כל המשאבים ותציג שגיאה אם יש לכם משאב עם אותו שם. אם הבעיה נמשכת, אפשר לפנות אלינו באמצעות הטופס לתמיכה טכנית

אימות ההגדרה ב-Cloud

מוודאים ש-Aggregation Service Infrastructure פרוס כראוי בענן הציבורי שבחרתם. לשם כך, נשתמש בדוחות ניפוי באגים לדוגמה ונריץ משימה במצב ניפוי באגים. אם שירות הצבירה יכול לקבל את בקשת ה-API ולהשיב, סימן שהוא פועל. אם עדיין לא הגדרתם חשבון, מומלץ להשתמש ב-Postman או ב-cURL כדי להגדיר את קריאות ה-API לשירות הצבירה. חשוב לזכור שצריך להשבית את מצבי ניפוי הבאגים ולהגדיר אותם כ-false במהלך פעולות הצבירה הרגילות.

בנוסף לשלבים הבאים, כדי לאמת את התשתית של שירות האגרגציה, כדאי לבדוק את כל רכיבי הענן שמוקצים בענן הציבורי.

שלבים

  1. כדי ליצור דוחות ניפוי באגים לדוגמה וקבצי פלט של דומיינים, פועלים לפי השלבים הרלוונטיים ב-codelabs:

  2. מריצים בקשת createJob עם הגוף הזה, ומחליפים את placeholders המודגשים:

    {
      "job_request_id": "<job_request_id>",
      "input_data_blob_prefix": "<report_folder>/<report_name>.avro",
      "input_data_bucket_name": "<input_bucket_name>",
      "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
      "output_data_bucket_name": "<output_bucket_name>",
      "job_parameters": {
        "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
        "output_domain_bucket_name": "<output_domain_bucket_name>",
        "attribution_report_to": "<reporting_origin_domain>",
        "report_error_threshold_percentage": "10", // example value
        "debug_run": "true" // optional, but should be false by default
      }
    }
    
  3. מריצים בקשה מסוג getJob כדי לראות את התשובה. אם התגובה הבאה מופיעה, סימן ש-Aggregation Service נפרס כראוי.

    {
        "job_status": "FINISHED",
        "request_received_at": <utc_timestamp>,
        "request_updated_at": <utc_timestamp>,
        "job_request_id": "<job_request_id>",
        "input_data_blob_prefix": "<report_folder>/<input_report_prefix>.avro",
        "input_data_bucket_name": "<input_bucket_name>",
        "output_data_blob_prefix": "<output_folder>/<summary_report_prefix>",
        "output_data_bucket_name": "<output_bucket_name>",
        "postback_url": "",
        "result_info": {
            "return_code": "<return_code_and_message>",
            "return_message": "Aggregation job successfully processed",
            "error_summary": {
                "error_counts": [],
                "error_messages": []
            },
            "finished_at": <utc_timestamp>
        },
        "job_parameters": {
            "debug_run": "true", // optional, but should be false by default
            "output_domain_bucket_name": "<output_domain_bucket_name>",
            "output_domain_blob_prefix": "<output_domain_folder>/<output_domain>.avro",
            "attribution_report_to": "<reporting_origin_domain>"
        },
        "request_processing_started_at": <utc_timestamp>
    }
    

אם לא מתקבלת תשובה עם job_status: FINISHED, צריך לאסוף מידע נוסף על ידי מעבר למשאב Compute Engine או EC2 בענן הציבורי שבחרתם. בודקים את המכונה של שירות הצבירה ובודקים את היומנים, ומתעדים את המידע שמוצג בין הערכים TEE container launcher initiating ו-TEE container launcher exiting כדי לספק אותו לצוות התמיכה הטכנית שלנו.

Google Cloud

  1. עוברים אל Google Cloud: Compute Engine.
  2. לוחצים על מכונות וירטואליות ובוחרים את המכונה של שירות הצבירה.
  3. לוחצים על Details‏ > Logs‏ > Logging (או מחפשים את Logs Explorer).

Amazon Web Services

  1. עוברים אל Amazon Web Services: EC2 Enclave.
  2. לוחצים על מכונות EC2 ובוחרים את המכונה של שירות הצבירה.
  3. לוחצים על פעולות > מעקב ופתרון בעיות > קבלת יומן המערכת.

בודקים אם יש התאמה להתרעות השגיאה שמפורטות בהנחיות הציבוריות שלנו ב-GitHub.

הערה: אם רק שדרגתם את הגרסה הנוכחית של Aggregation Service, תהליך הקצאת המשאבים המלא עשוי להימשך עד שעתיים עד שתמונת המכונה הנכונה תופיע במכונה הסופית של שירות המחשוב. אם זה לא המצב, צרו איתנו קשר.

השלבים הבאים

אם הבעיה בשירות הצבירה לא נפתרה, תוכלו לדווח לנו על כך על ידי שליחת פנייה ב-GitHub או שליחת טופס התמיכה הטכנית.