גישה ליומני זרימת נתונים
בדף הזה מוסבר איך לגשת ליומני תנועה באמצעות Cloud Logging.
גישה ליומני זרימת תנועה בכלי Logs Explorer
VPC Flow Logs כותב יומנים ל Google Cloud פרויקט של מדווח היומן. אפשר לראות את יומני הזרימה בכלי Logs Explorer. השירות VPC Flow Logs משתמש ביומנים הבאים כדי לאסוף רשומות ביומן:
- ב-
networkmanagement.googleapis.com/vpc_flowsנאספים רשומות של רשתות ענן וירטואלי פרטי (VPC), רשתות משנה, קבצים מצורפים של VLAN ל-Cloud Interconnect ומנהרות Cloud VPN. - יומן
compute.googleapis.com/vpc_flowsאוסף רשומות ביומן עבור רשתות משנה. היומן הזה נוצר רק אם הפעלתם את יומני הזרימה של VPC עבור רשתות משנה באמצעות Compute Engine API.
הגדרת IAM
כדי להגדיר בקרת גישה לרישום ביומן, ראו את המדריך לבקרת גישה לרישום ביומן.
צפייה ביומני זרימה באמצעות מסנני משאבים
כדי לראות יומני תנועה בפרויקט באמצעות מסנני משאבים, אפשר לעיין בקטעים הבאים. Google Cloud אפשר גם להציג את היומנים האלה באמצעות שאילתות ב-Logs Explorer, כמו שמתואר במאמר סינון יומני זרימה באמצעות שאילתות.
צפייה ביומני זרימה של כל ההגדרות (networkmanagement.googleapis.com/vpc_flows)
נכנסים לדף Logs Explorer במסוף Google Cloud .
לוחצים על כל המשאבים.
ברשימה Select resource, לוחצים על VPC Flow Logs Config ואז על Apply.
צפייה ביומני תהליכים להגדרה ספציפית (networkmanagement.googleapis.com/vpc_flows)
נכנסים לדף Logs Explorer במסוף Google Cloud .
לוחצים על כל המשאבים.
ברשימה Select resource, לוחצים על VPC Flow Logs Config ובוחרים את ההגדרה של יומני הזרימה של ה-VPC שרוצים להציג.
לוחצים על אישור.
צפייה ביומני זרימה של כל ההגדרות (compute.googleapis.com/vpc_flows)
אם הפעלתם את יומני הזרימה של VPC באמצעות Compute Engine API, אתם צריכים לפעול לפי השלבים הבאים.
נכנסים לדף Logs Explorer במסוף Google Cloud .
לוחצים על כל המשאבים.
ברשימה Select resource, לוחצים על Subnetwork ואז על Apply.
לוחצים על כל שמות היומנים.
ברשימה Select log names, מחפשים את Compute Engine, לוחצים על vpc_flows ואז על Apply.
הצגת יומני זרימה של תת-רשת ספציפית (compute.googleapis.com/vpc_flows)
אם הפעלתם את יומני הזרימה של VPC באמצעות Compute Engine API, אתם צריכים לפעול לפי השלבים הבאים.
נכנסים לדף Logs Explorer במסוף Google Cloud .
לוחצים על כל המשאבים.
ברשימה Select resource, לוחצים על Subnetwork.
ברשימה Subnetwork ID, בוחרים את רשת המשנה ולוחצים על Apply.
לוחצים על כל שמות היומנים.
ברשימה Select log names, מחפשים את Compute Engine, לוחצים על vpc_flows ואז על Apply.
סינון יומני זרימת נתונים באמצעות שאילתות
כדי להציג יומני זרימה ב Google Cloud פרויקט באמצעות שאילתות ב-Logs Explorer:
נכנסים לדף Logs Explorer במסוף Google Cloud .
אם שדה עורך השאילתות לא מופיע בחלונית Query, לוחצים על המתג Show query.
בשדה עורך השאילתות, מזינים שאילתה:
לדוגמה, כדי לראות את יומני התנועה של מנהרת Cloud VPN ספציפית של מקור, מזינים את השאילתה הבאה:
resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="SRC_GATEWAY" labels.target_resource_name="projects/PROJECT_NUMBER/regions/REGION/vpnTunnels/NAME"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט של מנהרת Cloud VPN Google Cloud -
PROJECT_NUMBER: מספר הפרויקט של מנהרת Cloud VPN -
REGION: האזור של מנהרת Cloud VPN -
NAME: השם של מנהרת Cloud VPN
-
אם הפעלתם את יומני הזרימה של VPC עבור רשת משנה באמצעות Compute Engine API, השאילתה צריכה להיות ממוקדת ב-
compute.googleapis.com. לדוגמה, מזינים את השאילתה הבאה, מחליפים אתPROJECT_IDבמזהה הפרויקט שלכם Google Cloud ואתSUBNET_NAMEברשת המשנה שלכם:resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows" resource.labels.subnetwork_name="SUBNET_NAME"
דוגמאות נוספות לשאילתות שאפשר להריץ כדי לראות את יומני הזרימה זמינות במאמר דוגמאות לשאילתות ב-Logs Explorer ליומני זרימה של VPC.
לוחצים על Run query.
דוגמאות לשאילתות ב-Logs Explorer עבור VPC Flow Logs
בקטע הזה מפורטות דוגמאות לשאילתות ב-Logs Explorer שאפשר להריץ כדי לראות את יומני התנועה. חשוב לכלול את הפרטים הבאים בכל השאילתות:
מציינים את סוג המשאב ואת שם היומן שרוצים לשלוח לגביו שאילתה, כמו שמתואר בטבלה הבאה. אפשר לשלוח שאילתה על שני היומנים בשאילתה אחת.
יומן סוג המשאב ושם היומן networkmanagement.googleapis.com/vpc_flows
איסוף יומנים של הגדרות שמנוהלות על ידי Network Management API.
resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows"
compute.googleapis.com/vpc_flows
איסוף יומנים להגדרות שמנוהלות על ידי Compute Engine API.
resource.type="gce_subnetwork" logName="projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows"
מחליפים את
PROJECT_IDבמזהה הפרויקט של המשאב שממנו מופק הדוח. Google Cloudאם משתמשים בכמה הגדרות של יומני זרימה של VPC לכל משאב, צריך לציין את שם ההגדרה שרוצים לשלוח לגביה שאילתה ואת משאב היעד על ידי הוספת השדות
resource.labels.nameו-labels.target_resource_nameלשאילתה. כך אפשר לוודא שיומנים כפולים לא ייכללו בתוצאות השאילתה. מידע נוסף זמין במאמר בנושא כפילויות ביומנים.-
resource.labels.nameהוא שם ההגדרה. אפשר לציין כמה הגדרות לכל שאילתה. -
labels.target_resource_nameהוא השם של רשת ה-VPC, תת-הרשת, צירוף ה-VLAN או מנהרת Cloud VPN שמופיעים בדוח. ההגדרות לארגונים לא קובעות משאב יעד. - השדות האלה זמינים רק ביומן
networkmanagement.googleapis.com/vpc_flows.
-
בטבלה הבאה מופיעות דוגמאות לשאילתות ב-Logs Explorer שבהן אפשר להשתמש כדי להציג את יומני התנועה.
| היומנים שרוצים לראות | שאילתה |
|---|---|
| כל יומני התנועה |
resource.type=("vpc_flow_logs_config" OR "gce_subnetwork")
logName=("projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" OR
"projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows") |
| יומנים של הגדרה ספציפית | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" resource.labels.name="CONFIG_NAME" |
| יומנים של מכונות וירטואליות ברשת VPC ספציפית |
resource.type=("vpc_flow_logs_config" OR "gce_subnetwork")
logName=("projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" OR
"projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows")
(jsonPayload.src_vpc.vpc_name="NETWORK_NAME" OR
jsonPayload.dest_vpc.vpc_name="NETWORK_NAME") |
| יומנים של מכונות וירטואליות ברשת משנה ספציפית |
resource.type=("vpc_flow_logs_config" OR "gce_subnetwork")
logName=("projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" OR
"projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows")
(jsonPayload.src_vpc.subnetwork_name="SUBNET_NAME" OR
jsonPayload.dest_vpc.subnetwork_name="SUBNET_NAME") |
| יומנים של מכונת VM ספציפית |
resource.type=("vpc_flow_logs_config" OR "gce_subnetwork")
logName=("projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" OR
"projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows")
(jsonPayload.src_instance.vm_name="VM_NAME" OR
jsonPayload.dest_instance.vm_name="VM_NAME")
|
| יומנים של אשכול ספציפי ב-Google Kubernetes Engine |
resource.type=("vpc_flow_logs_config" OR "gce_subnetwork")
logName=("projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" OR
"projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows")
(jsonPayload.src_gke_details.cluster.cluster_name="CLUSTER_NAME" OR
jsonPayload.dest_gke_details.cluster.cluster_name="CLUSTER_NAME")
|
| יומנים רק של תנועת נתונים יוצאת ממכונה וירטואלית מתת-רשת |
resource.type=("vpc_flow_logs_config" OR "gce_subnetwork")
logName=("projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" OR
"projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows")
jsonPayload.reporter="SRC" AND
jsonPayload.src_vpc.subnetwork_name="SUBNET_NAME" AND
(jsonPayload.dest_vpc.subnetwork_name!="SUBNET_NAME" OR NOT
jsonPayload.dest_vpc.subnetwork_name:*) |
| יומנים רק של תעבורת נתונים יוצאת (egress) של מכונות וירטואליות מרשת VPC |
resource.type=("vpc_flow_logs_config" OR "gce_subnetwork")
logName=("projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" OR
"projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows")
jsonPayload.reporter="SRC" AND
jsonPayload.src_vpc.vpc_name="VPC_NAME" AND
(jsonPayload.dest_vpc.vpc_name!="VPC_NAME" OR NOT jsonPayload.dest_vpc:*) |
| יומנים של תנועה לטווח ספציפי של רשתות משנה |
resource.type=("vpc_flow_logs_config" OR "gce_subnetwork")
logName=("projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" OR
"projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows")
ip_in_net(jsonPayload.connection.dest_ip, "SUBNET_RANGE") |
| יומנים של יציאת יעד ספציפית |
resource.type=("vpc_flow_logs_config" OR "gce_subnetwork")
logName=("projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" OR
"projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows")
jsonPayload.connection.dest_port=PORT
jsonPayload.connection.protocol=PROTOCOL |
| יומנים של כמה יציאות יעד |
resource.type=("vpc_flow_logs_config" OR "gce_subnetwork")
logName=("projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" OR
"projects/PROJECT_ID/logs/compute.googleapis.com%2Fvpc_flows")
jsonPayload.connection.dest_port=(PORT_1 OR PORT_2)
jsonPayload.connection.protocol=PROTOCOL |
| יומנים של מנהרת Cloud VPN ממקור ספציפי | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="SRC_GATEWAY" labels.target_resource_name="projects/PROJECT_NUMBER/regions/REGION/vpnTunnels/NAME" |
| יומנים של כל הצירופים ל-VLAN של היעד | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="DEST_GATEWAY" jsonPayload.dest_gateway.type="INTERCONNECT_ATTACHMENT" |
| יומנים של כל הצירופים ל-VLAN של היעד באזור ספציפי | resource.type="vpc_flow_logs_config" logName="projects/PROJECT_ID/logs/networkmanagement.googleapis.com%2Fvpc_flows" jsonPayload.reporter="DEST_GATEWAY" jsonPayload.dest_gateway.type="INTERCONNECT_ATTACHMENT" jsonPayload.dest_gateway.location="REGION" |
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט -
CONFIG_NAME: השם של ההגדרה של VPC Flow Logs -
SUBNET_NAME: השם של רשת המשנה -
VM_NAME: השם של המכונה הווירטואלית -
SUBNET_RANGE: טווח CIDR, למשל192.168.1.0/24 -
CLUSTER_NAME: השם של אשכול GKE -
VPC_NAME: השם של רשת ה-VPC -
PORT_1ו-PORT_2: יציאות היעד -
PROTOCOL: פרוטוקול התקשורת -
PROJECT_NUMBER: מספר הפרויקט של מנהרת Cloud VPN -
REGION: האזור של הצירוף ל-VLAN או של מנהרת Cloud VPN -
NAME: השם של מנהרת Cloud VPN
ניתוב יומנים ל-BigQuery, Pub/Sub ויעדים בהתאמה אישית
אפשר להפנות יומנים של תעבורת נתונים מ-Logging ליעד שתבחרו, כמו שמתואר בסקירה כללית על הפניה ואחסון במסמכי התיעוד של Logging. בקטע הקודם מופיעות דוגמאות למסננים.
פתרון בעיות
לא מופיעים vpc_flows ב-Logging עבור המשאב gce_subnetwork
- מוודאים שהרישום ביומן מופעל עבור רשת המשנה הנתונה.
- זרימות VPC נתמכות רק ברשתות VPC. אם יש לכם רשת מדור קודם, לא תראו יומנים.
- ברשתות VPC משותף, היומנים מופיעים רק בפרויקט המארח ולא בפרויקטים של השירות. חשוב לוודא שאתם מחפשים את היומנים בפרויקט המארח.
- מסנני החרגה ביומן חוסמים יומנים ספציפיים.
מוודאים שאין כללי החרגה שמבטלים את ה-VPC Flow Logs:
- עוברים אל Log router (נתב יומנים).
- בתפריט פעולות נוספות של מאגר היומנים, לוחצים על הצגת פרטים של יעד.
- מוודאים שאין כללי החרגה שעלולים לגרום להשלכת VPC Flow Logs.
- אתם יכולים להשתמש ב-Google Cloud CLI או ב-API כדי לבדוק אם הגדרת סינון יומנים מסננת את כל התעבורה ברשת משנה נתונה. לדוגמה, אם הערך של
filterExprמוגדר כ-false, לא יוצגו יומנים.
אין ערכים של זמן הלוך ושוב או של בייטים בחלק מהיומנים
- יכול להיות שחסרים נתוני מדידה של RTT אם לא נדגמו מספיק מנות כדי לתעד את ה-RTT. הסיכוי שזה יקרה גבוה יותר בחיבורים עם נפח נמוך.
- ערכי ה-RTT זמינים רק לזרימות TCP שמדווחות ממכונות וירטואליות.
- חלק מהמנות נשלחות ללא מטען ייעודי (payload). אם מתבצעת דגימה של חבילות עם כותרת בלבד, ערך הבייטים הוא בדרך כלל אפס. מידע נוסף זמין במאמר בנושא פורמט של רשומות.
חלק מהתהליכים חסרים
- מבוצעת דגימה של מנות נתונים נכנסות אחרי כללי חומת האש ב-VPC. צריך לוודא שאין כללים של חומת אש לתעבורת נתונים נכנסת (ingress) שחוסמים את החבילות שאתם מצפים שיירשמו ביומן. אם אתם לא בטוחים אם כללי חומת האש ב-VPC חוסמים חבילות נתונים נכנסות, אתם יכולים להפעיל ניהול כללי חומת אש ולבדוק את היומנים.
- נתמכים רק הפרוטוקולים TCP, UDP, ICMP, ESP ו-GRE. VPC Flow Logs לא תומך בפרוטוקולים אחרים.
- היומנים נדגמים. יכול להיות שחלק מהמנות בתנועה עם נפח נמוך מאוד לא יזוהו.
חסרות הערות GKE בחלק מהיומנים
מוודאים שגרסת אשכול GKE שלכם היא גרסה נתמכת.
חסרים יומנים לחלק מהזרימות ב-GKE
מוודאים שההגדרה Intranode visibility מופעלת באשכול. אחרת, זרימות בין Pods באותו צומת לא מתועדות.
יומנים כפולים
כל הגדרה של VPC Flow Logs יוצרת קבוצה נפרדת של יומנים. אם פרטי הרישום מכילים רשומות כפולות, צריך לבדוק אם משאב הדיווח משויך ליותר מהגדרה אחת.
משאב משויך ליותר מהגדרה אחת אם יוצרים כמה הגדרות לכל משאב, או אם יוצרים כמה הגדרות וההיקפים שלהן חופפים, כמו שמתואר ברשימה הבאה:
יומני תנועה של VPC מוגדרים לארגון, ויש לכם הגדרות נוספות לארגון או לרשתות VPC, לרשתות משנה, לחיבורי VLAN או למנהרות Cloud VPN באחד מהפרויקטים של הארגון.
כברירת מחדל, הגדרה של יומני זרימה של VPC בארגון יוצרת יומנים לכל המכונות הווירטואליות בכל רשתות המשנה, לכל הקבצים המצורפים של VLAN ולכל מנהרות Cloud VPN בארגון. אם יוצרים הגדרות נוספות, כל הגדרה נוספת יוצרת קבוצה משלה של יומנים.
הגדרתם את יומני התנועה של VPC לרשת VPC, ויש לכם הגדרות נוספות לרשתות משנה, לחיבורי VLAN או למנהרות Cloud VPN באותה רשת.
כברירת מחדל, הגדרה של יומני זרימה של VPC ברשת VPC יוצרת יומנים לכל מכונות ה-VM בכל רשתות המשנה, לכל קבצים מצורפים של VLAN ולכל מנהרות Cloud VPN ברשת. אם יוצרים הגדרות נוספות, כל הגדרה נוספת יוצרת קבוצה משלה של יומנים.
אפשר להגדיר יומני זרימה של VPC עבור רשת משנה באמצעות Network Management API ו-Compute Engine API. ההגדרה של יומני הזרימה של VPC שמנוהלים על ידי Compute Engine API עבור רשת המשנה, וכל הגדרה רלוונטית שאתם יוצרים באמצעות Network Management API כדי ליצור יומנים.
מידע נוסף על המשאבים שנרשמים ביומן לפי כל היקף הגדרה של יומני תנועה ב-VPC זמין במאמר תצורות נתמכות. כדי לראות את ההגדרות של יומני הזרימה של VPC, אפשר לעיין במאמר בנושא הצגת ההגדרות של יומני הזרימה של VPC (הכול).
כדי לסנן יומנים כפולים כשמציגים אותם, אפשר להשתמש בשדות הבאים:
- כדי לסנן יומנים לפי שם היומן, מציינים את השדות
resource_typeו-log_name. - כדי לסנן את היומנים לפי הגדרה ושם משאב היעד, מציינים את השדות
resource.labels.nameו-labels.target_resource_name.
מידע נוסף על השדות האלה ועל אופן השימוש בהם זמין במאמר דוגמאות לשאילתות ב-Logs Explorer ליומני זרימה של VPC.
המאמרים הבאים
- צפייה במסמכי התיעוד בנושא רישום ביומן
- לעיון במסמכי התיעוד בנושא יעד לרישום ביומן
- ניתוח יומני זרימה ב-Flow Analyzer