שליחת שאילתות, ייצוא ואחסון של יומני Service Health

יומנים של Service Health בהתאמה אישית ב-Cloud Logging הוא מתעד את כל העדכונים בתיאור, ברלוונטיות או במצב של האירוע כיומן נפרד.

במאמר הזה מוסבר איך לצפות ביומני Service Health, לייצא אותם ולאחסן אותם.

לפני שמתחילים

מוודאים שהחיוב מופעל בפרויקט Google Cloud .

  1. מפעילים את Service Health API בפרויקט שרוצים לראות, לייצא או לאחסן את היומנים שלו.
  2. גישה ליומנים של Service Health

סכימת היומן

בהפניה לסכמת היומן מפורטים השדות שאפשר להגדיר בשאילתה.

צפייה ביומני Service Health

כדי לראות את היומנים של Service Health:

  1. נכנסים למסוף Google Cloud .
  2. בוחרים באפשרות Operations > Logging > Logs Explorer (פעולות > רישום ביומן > Logs Explorer).
  3. בוחרים Google Cloud פרויקט בחלק העליון של הדף.
  4. בתפריט הנפתח שם היומן, בוחרים באפשרות תקינות השירות.

    Logs Explorer

    שם יומן הביקורת

    תוצג רשימה של יומנים עבור type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog

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

    "insertId":"1pw1msgf6a3zc6",
    "timestamp":"2022-06-14T17:17:55.722035096Z",
    "receiveTimestamp":"2022-06-14T17:17:55.722035096Z",
    "logName":"projects/PROJECT_ID/logs/servicehealth.googleapis.com%2Factivity",
    "resource":{
        "type":"servicehealth.googleapis.com/Event",
        "labels":{
            "resource_container":"797731824162",
            "location":"global",
            "event_id":"U4AqrjwFQYi5fFBmyAX-Gg"
        }
    }
    "labels":{
        "new_event":"true"
        "updated_fields": "[]"
    },
    "jsonPayload":{
        "@type":"type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog",
        "category":"INCIDENT",
        "title":"We are experiencing a connectivity issue affecting Cloud SQL in us-east1, australia-southeast2.",
        "description":"We are experiencing an issue with Google Cloud infrastructure components at us-east1, australia-southeast2. Our engineering team continues to investigate the issue. We apologize to all who are affected by the disruption.",
        "updateTime":"2023-11-14T22:26:40Z",
        "endTime":"2023-11-14T22:13:20Z",
        "impactedLocations":"['us-east1','australia-southeast2']",
        "impactedProducts":"['Google Cloud SQL']",
        "impactedProductIds":"['hV87iK5DcEXKgWU2kDri']",
        "nextUpdateTime":"2023-11-14T22:40:00Z",
        "startTime":"2020-09-13T12:26:40Z",
        "state":"ACTIVE",
        "detailedState":"CONFIRMED",
        "relevance":"RELATED",
    }
    

שאילתות ביומני Service Health

אפשר להשתמש ב-Logs Explorer כדי לשלוח שאילתות ליומנים של Service Health. יכול להיות שתצטרכו את ההפניות הבאות כדי ליצור את השאילתה:

דוגמאות:

תנאי שאילתה
קבלת יומנים עם רלוונטיות ספציפית לאירוע jsonPayload.relevance = ("IMPACTED" OR "RELATED")
שילוב של כמה מסננים jsonPayload.impactedLocations : "us-central1" AND jsonPayload.impactedProducts : "Google Compute Engine" AND jsonPayload.state = "ACTIVE"

ייצוא יומנים של Service Health

אפשר לייצא יומנים של Service Health לכל יעד של sink ב-Cloud Logging באמצעות המסוף Google Cloud , ה-API או ה-CLI של gcloud. הוראות להגדרת sink ב-Cloud Logging מופיעות במאמר הגדרה וניהול של אובייקטים מסוג sink.

כדי לכלול או להחריג יומנים של Service Health, צריך להגדיר את מסנני ההכללה וההחרגה של אובייקט ה-sink.

כשמגדירים את המוצר או המיקום, צריך להשתמש בערכים שנמצאים בGoogle Cloud products ובlocations.

צבירה של יומני Service Health ברמת התיקייה

אם שולחים יומנים שקשורים ל-Service Health מכל הפרויקטים בתיקייה לפרויקט שנוצר עבור יומנים של Service Health, אפשר להריץ עליהם שאילתות מורכבות יותר.

תיצרו יעד ברמת התיקייה כדי לשלוח את כל היומנים שקשורים ל-Service Health לפרויקט חדש בתיקייה הזו. צריך לבצע את הפעולות הבאות:

  1. יצירת פרויקט חדש בתיקייה. הפרויקט הזה מוקצה ליומני Service Health.

    gcloud projects create PROJECT_ID --folder FOLDER_ID
    
  2. יוצרים מאגר נתונים משולב ברמת התיקייה עבור הפרויקטים האחרים בתיקייה.

    gcloud logging sinks create SINK_NAME \
    SINK_DESTINATION  --include-children \
    --folder=FOLDER_ID --log-filter="LOG_FILTER"
    

    כדי לקבל יומנים של כל האירועים הרלוונטיים, צריך להגדיר את הערך של LOG_FILTER באופן הבא:

    resource.type=servicehealth.googleapis.com/Event AND jsonPayload.category=INCIDENT AND jsonPayload.relevance!=NOT_IMPACTED AND jsonPayload.@type=type.googleapis.com/google.cloud.servicehealth.logging.v1.EventLog
    
  3. הגדרת הרשאות לחשבון השירות של יעד הייצוא.

    gcloud projects add-iam-policy-binding PROJECT_ID --member=SERVICE_ACCT_NAME --role=roles/logging.bucketWriter
    
    gcloud projects add-iam-policy-binding PROJECT_ID --member=SERVICE_ACCT_NAME --role=roles/logging.logWriter
    
  4. (אופציונלי) אם לא רוצים לשלוח את היומנים אל _Default sink, יוצרים קטגוריה ביומן ליומנים שקשורים ל-Service Health בפרויקט.

    gcloud logging buckets create BUCKET_ID --location=LOCATION --enable-analytics --async
    

    אם יצרתם קטגוריה ביומן, צריך ליצור sink כדי לשלוח את היומנים לקטגוריה.

    gcloud logging sinks create SINK_NAME_BUCKET \
    logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_ID \
    --project=PROJECT_ID --log-filter="LOG_FILTER"
    

שליחת שאילתות על יומני Service Health באמצעות BigQuery

כדי לשלוח שאילתות על יומנים שנשלחים אל Cloud Logging באמצעות BigQuery:

  1. יצירת שאילתות SQL.
  2. שימוש ב-BigQuery API כדי להעביר את תוצאות השאילתות למערכות חיצוניות.

צריך לבצע את הפעולות הבאות:

  1. יוצרים קטגוריה ביומן בפרויקט שיצרתם ליומנים של Service Health.

    gcloud logging buckets create BUCKET_ID  --location=LOCATION  --enable-analytics --async
    
  2. הפעלת Observability Analytics.

    gcloud logging buckets update BUCKET_ID --location=LOCATION --enable-analytics --async
    
  3. יוצרים מערך נתונים חדש ב-BigQuery שמקושר למאגר עם יומני Service Health.

    gcloud logging links create LINK_ID --bucket=BUCKET_ID --location=LOCATION
    
  4. אם צריך, מפעילים את BigQuery API.

    gcloud services enable bigquery.googleapis.com
    

עכשיו אפשר להריץ שאילתות SQL מורכבות ב-BigQuery, כמו:

תנאי שאילתה
קבלת יומנים עם רלוונטיות ספציפית לאירוע gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["relevance"]) = "IMPACTED"'
קבלת כל האירועים ביומן של אירוע אב gcloud query --use_legacy_sql=false 'SELECT * FROM `PROJECT_ID.LINK_ID._AllLogs` WHERE JSON_VALUE(json_payload["parentEvent"]) = "projects/PROJECT_ID/locations/global/events/EVENT_ID"'

שמירת אירועים קודמים

ב-Service Health בהתאמה אישית, תקופת השמירה של אירועים מוגבלת.

אם אתם צריכים לשמור רשומה של אירועים קודמים של Service Health מעבר לכמה חודשים, מומלץ לאחסן את היומנים של Service Health.

  1. הגדרת יומנים של Service Health
  2. אחסון יומנים בקטגוריית יומנים.