ניהול ידני של הגדרות של חברות שילוח
בדף הזה מוסבר איך ליצור ולשנות באופן ידני קובץ הגדרות של מעביר נתונים ב-Google Security Operations. כדי להגדיר את המעביר דרך ממשק המשתמש (מומלץ), אפשר לעיין במאמר בנושא ניהול הגדרות של מעבירים דרך ממשק המשתמש של Google SecOps.
לכל מעביר נתונים של Google SecOps שמוטמע נדרש קובץ הגדרה של מעביר נתונים. קובץ הגדרות של מעביר נתונים מציין את ההגדרות להעברת הנתונים למופע של Google SecOps.
מידע על התקנה והגדרה של המעביר של Google SecOps, על דרישות המערכת ועל הגדרות ההגדרה זמין במאמר התקנה והגדרה של המעביר.
לפני שמתחילים
לפני שיוצרים את קובץ ההגדרות, חשוב לתכנן את ההטמעה ולהבין אילו סוגי נתונים אפשר להזין ואילו מאפיינים מרכזיים צריך להגדיר בקובץ ההגדרות.
יצירת קובץ התצורה
כדי ליצור את קובץ התצורה באופן ידני, פועלים לפי השלבים הבאים:
מורידים את קובצי ההגדרות דרך ממשק המשתמש.
שומרים את שני הקבצים באותה תיקייה לפי מוסכמת השמות הבאה:
FORWARDER_NAME.conf – משתמשים בקובץ הזה כדי להגדיר את הגדרות התצורה שקשורות להוספת נתונים ליומן.
FORWARDER_NAME_auth.conf – משתמשים בקובץ הזה כדי להגדיר את פרטי ההרשאה.משנים את הקבצים כך שיכללו את ההגדרות של מופע המעביר.
פרטים על ההגדרות של כל סוג של מנגנון הטמעה, כמו Splunk או Syslog, זמינים במאמר הגדרת סוגי נתונים בקובץ ההגדרות. לפרטים על התאמה אישית של כל מאפיין, כמו דחיסת נתונים או אחסון בזיכרון מטמון בדיסק, אפשר לעיין במאמר הגדרת מאפייני מפתח בקובץ ההגדרות.
מוודאים שיש רשומה לכל קלט בקובץ
FORWARDER_NAME_auth.conf, גם אם לקלט אין פרטי אימות תואמים. הפעולה הזו נדרשת כדי למפות את הנתונים בצורה נכונה.
כל שינוי שתבצעו בקובץ ההגדרות יחול באופן אוטומטי על ידי המעביר תוך חמש דקות.
הגדרות לדוגמה
אתם יכולים להשתמש בקובצי ההגדרות הבאים כתבניות כדי ליצור קבצים משלכם.
דוגמה להגדרה של שני קבצים
במערכת הקבצים הזו, פרטי האימות נשמרים בקובץ נפרד כדי לשפר את האבטחה. אפשר לאחסן את הקובץ FORWARDER_NAME.conf במאגר של מערכת בקרת גרסאות או בכל מערכת פתוחה לניהול הגדרות.
אפשר לאחסן את הקובץ FORWARDER_NAME_auth.conf ישירות במכונה הפיזית או הווירטואלית שבה מופעלת ההעברה.
בדוגמת הקוד הבאה מוצג הפורמט של קובצי ההגדרות של מעביר נתונים.
הקובץ FORWARDER_NAME.conf
output:
url: {region}-chronicle.googleapis.com (for example: us-chronicle.googleapis.com)
use_dataplane : true
project_id: PROJECT_ID
region: {region} (for example: {us})
identity:
identity:
collector_id: COLLECTOR_ID \
customer_id: CUSTOMER_ID \
collectors:
- syslog:
common:
enabled: true
data_type: "WINDOWS_DHCP"
data_hint:
batch_n_seconds: 10
batch_n_bytes: 1048576
tcp_address: 0.0.0.0:10514
udp_address: 0.0.0.0:10514
connection_timeout_sec: 60
tcp_buffer_size: 524288
- syslog:
common:
enabled: true
data_type: "WINDOWS_DNS"
data_hint:
batch_n_seconds: 10
batch_n_bytes: 1048576
tcp_address: 0.0.0.0:10515
connection_timeout_sec: 60
tcp_buffer_size: 524288
הקובץ FORWARDER_NAME_auth.conf
output:
identity:
secret_key: |
{
"type": "service_account",
"project_id": "PROJECT_ID" \,
"private_key_id": "PRIVATE_KEY_ID" \,
"private_key": "-----BEGIN PRIVATE KEY-----\\"PRIVATE_KEY" \n-----END PRIVATE KEY-----\n",
"client_email": "CLIENT_EMAIL" \,
"client_id": "CLIENT_ID" \,
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/example-account-1%40example-account.iam.gserviceaccount.com"
}
collectors:
- syslog:
- syslog:
certificate: "../forwarder/inputs/testdata/localhost.pem"
certificate_key: "../forwarder/inputs/testdata/localhost.key"
דוגמה להגדרות של קובץ יחיד
output:
url: us-chronicle.googleapis.com
use_dataplane: true
project_id: PROJECT_ID
region: us
identity:
collector_id: COLLECTOR_ID \
customer_id: CUSTOMER_ID \
secret_key: |
{
"type": "service_account",
"project_id": "PROJECT_ID" \,
"private_key_id": "PRIVATE_KEY_ID" \,
"private_key": "-----BEGIN PRIVATE KEY-----\ "PRIVATE_KEY" \n-----END PRIVATE KEY-----\n",
"client_email": "CLIENT_EMAIL" \,
"client_id": "CLIENT_ID" \,
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/malachite-test-1%40malachite-test.iam.gserviceaccount.com"
}
collectors:
- syslog:
common:
enabled: true
data_type: "WINDOWS_DHCP"
data_hint:
batch_n_seconds: 10
batch_n_bytes: 1048576
tcp_address: 0.0.0.0:10514
udp_address: 0.0.0.0:10514
connection_timeout_sec: 60
tcp_buffer_size: 524288
- syslog:
common:
enabled: true
data_type: "WINDOWS_DNS"
data_hint:
batch_n_seconds: 10
batch_n_bytes: 1048576
tcp_address: 0.0.0.0:10515
connection_timeout_sec: 60
certificate: "../forwarder/inputs/testdata/localhost.pem"
certificate_key: "../forwarder/inputs/testdata/localhost.key"
tcp_buffer_size: 524288
המרת מערכת קבצים מקובץ יחיד לשני קבצים
אם אתם משתמשים בקובץ תצורה יחיד ואתם רוצים לעבור למערכת של שני קבצים, אתם צריכים לבצע את הפעולות הבאות:
יוצרים עותק של קובץ התצורה הקיים.
שומרים קובץ אחד כקובץ
FORWARDER_NAME.conf ומוחקים את פרטי ההרשאה מהקובץ.שומרים את הקובץ השני כקובץ
FORWARDER_NAME_auth.conf ומוחקים ממנו את כל הנתונים שאינם נתוני הרשאה. אפשר להשתמש בהגדרת הדוגמה כהפניה. חשוב לפעול לפי מוסכמת מתן השמות וההנחיות האחרות שמפורטות בקטע התאמה אישית של ההגדרות.
הגדרת סוגי נתונים בקובץ ההגדרות
הקטעים הבאים יעזרו לכם להגדיר את המעביר של Google SecOps כדי להטמיע סוגים שונים של נתונים, שמועברים למופע של Google SecOps.
נתוני Splunk
אפשר להגדיר את המעביר של Google SecOps כדי להעביר את הנתונים של Splunk ל-Google SecOps. Google Cloud מגדיר את המעביר של Google SecOps עם המידע הבא כדי להעביר את הנתונים מ-Splunk:
כתובת ה-URL של Splunk API בארכיטקטורת REST (לדוגמה, https://10.0.113.15:8089).
שאילתות Splunk ליצירת נתונים לכל אחד מסוגי הנתונים הנדרשים (לדוגמה, index=dns).
FORWARDER_NAME.conf
output:
collectors:
- splunk:
common:
enabled: true
data_type: WINDOWS_DNS
data_hint: "#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto trans_id query qclass qclass_name"
batch_n_seconds: 10
batch_n_bytes: 819200
url: https://127.0.0.1:8089
is_ignore_cert: true
minimum_window_size: 10s
maximum_window_size: 30s
query_string: search index=* sourcetype=dns
query_mode: realtime
- הופכים את פרטי הכניסה לחשבון Splunk לזמינים למעביר של Google SecOps. כדי לעשות את זה, יוצרים קובץ
creds.txt.
כדי להשתמש בקובץ creds.txt:
יוצרים קובץ מקומי לפרטי הכניסה שלכם ל-Splunk ונותנים לו את השם
creds.txt.מזינים את שם המשתמש בשורה הראשונה ואת הסיסמה בשורה השנייה:
cat creds.txt myusername mypassword
כדי להשתמש ב-Google SecOps forwarder כדי לגשת למופע של Splunk, מעתיקים את הקובץ
creds.txtלספריית התצורה (אותה ספרייה שבה נמצאים קובצי התצורה).Linux
cp creds.txt /opt/chronicle/config/creds.txt
Windows
cp creds.txt c:/opt/chronicle/config/creds.txt
מוודאים שהקובץ
creds.txtנמצא בספרייה הרצויה:Linux
ls /opt/chronicle/config
Windows
ls c:/opt/chronicle/config
נתוני Syslog
אפשר להשתמש בשרת להעברת נתונים כשרת Syslog. אתם יכולים להגדיר כל שרת שתומך בשליחת נתוני Syslog דרך חיבור TCP או UDP כדי להעביר את הנתונים שלו אל כלי ההעברה של Google SecOps. אתם יכולים לשלוט בנתונים שהשרת שולח למעביר, והמעביר יכול להעביר את הנתונים ל-Google SecOps.
קובץ ההגדרות FORWARDER_NAME.conf (שמסופק על ידיGoogle Cloud) מציין אילו יציאות צריך לנטר עבור כל סוג של נתונים מועברים (לדוגמה, יציאה 10514). כברירת מחדל, המעביר של Google SecOps מקבל חיבורי TCP ו-UDP.
אפשר לערוך את שטח האחסון הזמני של TCP. גודל ברירת המחדל של שטח האחסון הזמני של TCP הוא 64KB. ערך ברירת המחדל והערך המומלץ של הפרמטר connection_timeout הוא 60 שניות.
חיבור ה-TCP יסתיים אם החיבור לא פעיל במשך יותר מ-60 שניות.
הגדרת rsyslog
כדי להגדיר את rsyslog, צריך לציין יעד לכל יציאה (לדוגמה, לכל סוג נתונים). בדוגמאות הבאות מוצגת הגדרת היעד rsyslog:
תנועת יומן TCP:
dns.* @@192.168.0.12:10514תנועת יומן UDP:
dns.* @192.168.0.12:10514
פרטים נוספים מופיעים במסמכי העזרה של המערכת.
הפעלת TLS להגדרות Syslog
אפשר להפעיל TLS לחיבור Syslog למעביר של Google SecOps. בקובץ ההגדרות של המעביר (FORWARDER_NAME.conf), מציינים את המיקום של האישור ושל מפתח האישור שנוצרו, כמו בדוגמה הבאה.
אפשר ליצור ספרייה בשם certs בספרייה configuration ולאחסן בה את קובצי האישורים.
Linux:
| אישור | /opt/chronicle/external/certs/client_generated_cert.pem |
| certificate_key | /opt/chronicle/external/certs/client_generated_cert.key |
Windows:
| אישור | c:/opt/chronicle/external/certs/client_generated_cert.pem |
| certificate_key | c:/opt/chronicle/external/certs/client_generated_cert.key |
על סמך הדוגמה שמוצגת, משנים את קובץ התצורה של המעביר (FORWARDER_NAME.conf) באופן הבא:
Linux:
collectors:
- syslog:
common:
enabled: true
data_type: WINDOWS_DNS
data_hint:
batch_n_seconds: 10
batch_n_bytes: 1048576
tcp_address: 0.0.0.0:10515
tcp_buffer_size: 65536
connection_timeout_sec: 60
certificate: "/opt/chronicle/external/certs/client_generated_cert.pem"
certificate_key: "/opt/chronicle/external/certs/client_generated_cert.key"
minimum_tls_version: "TLSv1_3"
Windows:
collectors:
- syslog:
common:
enabled: true
data_type: WINDOWS_DNS
data_hint:
batch_n_seconds: 10
batch_n_bytes: 1048576
tcp_address: 0.0.0.0:10515
tcp_buffer_size: 65536
connection_timeout_sec: 60
certificate: "c:/opt/chronicle/external/certs/client_generated_cert.pem"
certificate_key: "c:/opt/chronicle/external/certs/client_generated_cert.key"
minimum_tls_version: "TLSv1_3"
גרסת ה-TLS של בקשת הקלט צריכה להיות גדולה מגרסת ה-TLS המינימלית. גרסת ה-TLS המינימלית צריכה להיות אחת מהערכים הבאים: TLSv1_0, TLSv1_1, TLSv1_2, TLSv1_3.
הנתונים של הקבצים
אוסף קבצים נועד לאחזר יומנים מקובץ שמצורף לקונטיינר של Docker. אפשר להשתמש באפשרות הזו אם רוצים להעלות ידנית יומנים מקובץ יומן יחיד.
מפעילים את Google SecOps forwarder מקונטיינר Docker כדי למפות את נפח הטעינה לקונטיינר:
Linux
docker run
--detach
--name cfps
--log-opt max-size=100m
--log-opt max-file=10
--net=host
-v /opt/chronicle/config:/opt/chronicle/external
-v /var/log/crowdstrike/falconhostclient:/opt/chronicle/edr
gcr.io/chronicle-container/cf_production_stable
Windows
docker run `
--name cfps `
--log-opt max-size=100m `
--log-opt max-file=10 `
-p 10514:10514 `
-v c:/opt/chronicle/config:c:/opt/chronicle/external `
-v c:/var/log/crowdstrike/falconhostclient:c:/opt/chronicle/edr `
gcr.io/chronicle-container/cf_production_stable_windows
אפשר להוסיף כמה יציאות באמצעות כמה אפשרויות או כמה טווחים. לדוגמה: -p 3001:3000 -p 2023:2022 או -p 7000-8000:7000-8000.
מספרי היציאות שמופיעים בקוד לדוגמה הם רק דוגמאות. מחליפים את מספרי היציאות לפי הצורך.
על סמך הדוגמה, אפשר לשנות את הגדרות המעביר של Google SecOps (קובץ FORWARDER_NAME.conf) באופן הבא:
Linux
collectors:
- file:
common:
enabled: true
data_type: CS_EDR
data_hint:
batch_n_seconds: 10
batch_n_bytes: 1048576
file_path: /opt/chronicle/edr/sample.txt
filter:
Windows
collectors:
- file:
common:
enabled: true
data_type: CS_EDR
data_hint:
batch_n_seconds: 10
batch_n_bytes: 1048576
file_path: c:/opt/chronicle/edr/sample.txt
filter:
הקובץ sample.txt צריך להיות בתיקייה /var/log/crowdstrike/falconhostclient.
הגדרות דיווח
skip_seek_to_end (bool): דגל זה מוגדר כ-false כברירת מחדל, וקובץ הקלט שולח רק שורות חדשות ביומן כקלט. הגדרה של הערך true גורמת לשליחה מחדש של כל השורות הקודמות ביומן במהלך הפעלה מחדש של המעביר. הפעולה הזו גורמת לשכפול של היומן. הגדרת הדגל הזה ל-true מועילה במצבים מסוימים (לדוגמה, במהלך הפסקות שירות), כי הפעלה מחדש של המעביר שולחת שוב את שורות היומן החסרות.
poll (bool): כלי איסוף הקבצים משתמש בספריית Tail כדי לבדוק אם יש שינויים במערכת הקבצים. אם מגדירים את הדגל הזה ל-true, ספריית Tail משתמשת בשיטת הסקר במקום בשיטת ההתראה שמוגדרת כברירת מחדל.
נתוני חבילות
הכלי להעברת נתונים של Google SecOps יכול לתעד חבילות במקום רשומות ביומן, ישירות מממשק רשת.
מערכות Linux
הכלי להעברת נתונים של Google SecOps יכול ללכוד חבילות באמצעות libcap ב-Linux. מידע נוסף על libcap זמין בדף העזרה של libcap – Linux.
במקום רשומות ביומן, מנות רשת גולמיות נלכדות ונשלחות אל Google SecOps. הלכידה הזו מוגבלת לממשק מקומי. כדי להפעיל את התכונה 'לכידת מנות' במערכת, צריך לפנות אל התמיכה של Google SecOps.
Google SecOps מגדיר את מעביר הנתונים של Google SecOps באמצעות הביטוי של Berkeley Packet Filter (BPF) שמשמש ללכידת מנות (לדוגמה, יציאה 53 ולא localhost). מידע נוסף זמין במאמר בנושא Berkeley packet filters.
מערכות Windows
הכלי להעברת נתונים של Google SecOps יכול ללכוד מנות באמצעות Npcap במערכות Windows.
במקום רשומות ביומן, מנות רשת גולמיות נלכדות ונשלחות אל Google SecOps. הלכידה הזו מוגבלת לממשק מקומי. כדי להגדיר את מעביר הנתונים של Google SecOps לצורך לכידת מנות, צריך לפנות אל התמיכה של Google SecOps.
הדרישות להעברת נתוני PCAP:
מתקינים את Npcap במארח Microsoft Windows.
צריך להעניק למעביר של Google SecOps הרשאות root או הרשאות אדמין כדי לנטר את ממשק הרשת.
במהלך ההתקנה של Npcap, מפעילים את מצב התאימות של WinPcap.
כדי להגדיר מעביר PCAP, Google Cloud צריך את ה-GUID של הממשק שמשמש ללכידת חבילות.
מריצים את הפקודה getmac.exe במכונה שבה מתכננים להתקין את Google SecOps forwarder (השרת או המכונה שמקשיבים ליציאת ה-SPAN) ושולחים את הפלט אל Google SecOps.
אפשר גם לשנות את קובץ התצורה. מחפשים את הקטע PCAP ומחליפים את ערך ה-GUID הקיים ב-GUID שהתקבל מהרצת הפקודה getmac.exe.
לדוגמה, הנה קטע מקורי של PCAP:
- pcap:
common:
enabled: true
data_type: PCAP_DNS
batch_n_seconds: 10
batch_n_bytes: 1048576
interface: \Device\NPF_{1A7E7C8B-DD7B-4E13-9637-0437AB1A12FE}
bpf: udp port 53
פלט מהרצת getmac.exe:
C:\>getmac.exe
Physical Address Transport Name
===========================================================================
A4-73-9F-ED-E1-82 \Device\Tcpip_{2E0E9440-ABFF-4E5B-B43C-E188FCAD1234}
קטע PCAP מתוקן עם ה-GUID החדש:
- pcap:
common:
enabled: true
data_type: PCAP_DNS
batch_n_seconds: 10
batch_n_bytes: 1048576
interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734}
bpf: udp port 53
הפלט getmac.exe של Transport Name מתחיל ב-\Device\Tcpip, ואילו החלק המקביל ב-pcap מתחיל ב-\Device\NPF.
נתונים מנושא Kafka
הכלי להעברת נתונים ב-Google SecOps תומך בהטמעת נתונים ישירות מנושאי Kafka. אפשר לפרוס עד שלושה מעבירי נתונים ולשלוף נתונים מאותו נושא ב-Kafka באמצעות קבוצות צרכנים לעיבוד יעיל ומקביל. מידע נוסף זמין במאמר בנושא Kafka. מידע נוסף על קבוצות של צרכני Kafka זמין במאמר בנושא צרכן Kafka.
ההגדרה הבאה של המעביר מראה איך להגדיר את המעביר כך שיקלוט נתונים מנושאי Kafka.
Linux
הקובץ FORWARDER_NAME.conf
collectors:
- kafka:
common:
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: NIX_SYSTEM
enabled: true
topic: example-topic
group_id: chronicle-forwarder
timeout: 60s
brokers: ["broker-1:9092", "broker-2:9093"]
tls:
insecureSkipVerify: true
certificate: "/path/to/cert.pem"
certificate_key: "/path/to/cert.key"
- syslog:
common:
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: WINEVTLOG
enabled: true
tcp_address: 0.0.0.0:30001
connection_timeout_sec: 60
הקובץ FORWARDER_NAME_auth.conf
collectors:
- kafka:
username: user
password: password
- syslog:
Windows
קובץ FORWARDER_NAME.conf
collectors:
- kafka:
common:
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: NIX_SYSTEM
enabled: true
topic: example-topic
group_id: chronicle-forwarder
timeout: 60s
brokers: ["broker-1:9092", "broker-2:9093"]
tls:
insecureSkipVerify: true
certificate: "c:/path/to/cert.pem"
certificate_key: "c:/path/to/cert.key"
- syslog:
common:
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: WINEVTLOG
enabled: true
tcp_address: 0.0.0.0:30001
connection_timeout_sec: 60
קובץ FORWARDER_NAME_auth.conf
collectors:
- kafka:
username: user
password: password
- syslog:
נתונים מ-WebProxy
הכלי להעברת נתונים ב-Google SecOps יכול ללכוד נתונים של WebProxy ישירות מממשק רשת.
Linux
הכלי להעברת נתונים של Google SecOps יכול ללכוד נתונים של WebProxy באמצעות libcap ב-Linux. מידע נוסף על libcap זמין בדף העזרה של libcap – Linux. כדי להפעיל את האפשרות ללכידת נתונים של WebProxy במערכת, צריך לפנות אל התמיכה של Google SecOps.
משנים את ההגדרה של המעביר ב-Google SecOps (קובץ FORWARDER_NAME.conf) באופן הבא:
- webproxy:
common:
enabled : true
data_type: <Your LogType>
batch_n_seconds: 10
batch_n_bytes: 1048576
interface: any
bpf: tcp and dst port 80
Windows
המעביר יכול ללכוד נתונים של WebProxy באמצעות Npcap ולשלוח אותם אל Google Cloud.
כדי להפעיל את האפשרות ללכידת נתונים של WebProxy במערכת, פנו לתמיכה של Google SecOps.
לפני שמריצים WebProxy forwarder, צריך לבצע את הפעולות הבאות:
מתקינים את Npcap במארח Microsoft Windows. מפעילים את מצב התאימות של WinPcap במהלך ההתקנה.
צריך להעניק למעביר הרשאות root או הרשאות אדמין כדי לנטר את ממשק הרשת.
מקבלים את ה-GUID של הממשק שמשמש ללכידת מנות WebProxy.
מריצים את הפקודה
getmac.exeבמכונה שבה רוצים להתקין את המעביר של Google SecOps ושולחים את הפלט אל Google SecOps. אפשר גם לשנות את קובץ התצורה. מאתרים את הקטע WebProxy ומחליפים את ה-GUID שמוצג ליד הממשק ב-GUID שמוצג אחרי שמריצים את הפקודהgetmac.exe.משנים את קובץ ההגדרות של המעביר של Google SecOps (
FORWARDER_NAME.conf) באופן הבא:- webproxy: common: enabled : true data_type: <Your LogType> batch_n_seconds: 10 batch_n_bytes: 1048576 interface: \Device\NPF_{2E0E9440-ABFF-4E5B-B43C-E188FCAD9734} bpf: tcp and dst port 80
הגדרת מאפייני מפתח בקובץ התצורה
בטבלה הבאה מפורטים פרמטרים חשובים שמשמשים בקובץ ההגדרות של המעביר.
| פרמטר | תיאור |
|---|---|
| data_type | סוג נתוני היומן שהכלי לאיסוף נתונים יכול לאסוף ולעבד. |
| מטא-נתונים | מטא-נתונים, שמבטלים את המטא-נתונים הגלובליים. |
| max_file_buffer_bytes | המספר המקסימלי של בייטים שיכולים להצטבר בדיסק או במאגר הקבצים.
ערך ברירת המחדל הוא 1073741824, כלומר 1GB. |
| max_memory_buffer_bytes | המספר המקסימלי של בייטים שיכולים להצטבר במאגר הזיכרון. ערך ברירת המחדל הוא 1073741824, כלומר 1GB. |
| write_to_disk_dir_path | הנתיב שבו יש להשתמש עבור מאגר קבצים או דיסקים. |
| write_to_disk_buffer_enabled | אם true, נעשה שימוש במאגר נתונים זמני בדיסק במקום במאגר נתונים זמני בזיכרון. ערך ברירת המחדל הוא false.
|
| batch_n_bytes | מספר הבייטים המקסימלי שיכולים להצטבר באיסוף הנתונים, שאחריו הנתונים נשלחים בקבוצות. ערך ברירת המחדל הוא 1048576, כלומר 1MB. |
| batch_n_seconds | מספר השניות שאחריהן הנתונים שנאספים על ידי הכלי לאיסוף נתונים נארזים. ערך ברירת המחדל הוא 11 שניות. |
| data_hint | פורמט הנתונים שהכלי לאיסוף נתונים יכול לקבל (בדרך כלל הכותרת של קובץ היומן שמתארת את הפורמט). |
רשימה מפורטת של הפרמטרים שמשמשים בקובץ ההגדרות זמינה במאמרים שדות הגדרות של מעבירי נתונים ושדות הגדרות של אוספי נתונים.
דחיסת נתונים
כברירת מחדל, דחיסת היומנים מושבתת. הפעלת דחיסה של יומנים עשויה להפחית את צריכת רוחב הפס. עם זאת, הפעלת דחיסת היומן עלולה גם להגדיל את השימוש במעבד. כדאי להעריך את הפשרה על סמך הסביבה ונתוני היומן.
כדי להפעיל דחיסה של היומן, מגדירים את השדה compression לערך true בקובץ ההגדרות של המעביר ב-Google SecOps, כמו בדוגמה הבאה:
הקובץ FORWARDER_NAME.conf
output:
compression: true
url: malachiteingestion-pa.googleapis.com:443
identity:
identity:
collector_id: 10479925-878c-11e7-9421-10604b7cb5c1
customer_id: ebdc4bb9-878b-11e7-8455-10604b7cb5c1
...
הקובץ FORWARDER_NAME_auth.conf
output:
identity:
secret_key: |
{
"type": "service_account",
...
}
אגירת נתונים בדיסק
באמצעות אחסון זמני של נתונים בדיסק, אפשר לאחסן זמנית הודעות שהצטברו בדיסק ולא בזיכרון.
אתם יכולים להגדיר מאגר זמני אוטומטי בזיכרון כדי להשתמש במאגר נתונים זמני משותף באופן דינמי בין האוספים, וכך להתמודד טוב יותר עם עליות פתאומיות בתעבורת נתונים. כדי להפעיל את מאגר הנתונים הזמני המשותף הדינמי, מוסיפים את השורות הבאות להגדרות של ה-Forwarder:
auto_buffer: enabled: true target_memory_utilization: 80
אם האפשרות 'אגירת נתונים אוטומטית בדיסק' מופעלת אבל target_memory_utilization לא מוגדר, המערכת משתמשת בערך ברירת המחדל 70.
אם אתם מריצים את המעביר באמצעות Docker, מומלץ להוסיף נפח אחסון נפרד מנפח האחסון של ההגדרות, כדי ליצור בידוד. בנוסף, כל קלט צריך להיות מבודד בספרייה או באמצעי אחסון משלו כדי למנוע התנגשויות.
הגדרה לדוגמה
ההגדרה הבאה כוללת תחביר להפעלת אחסון זמני בדיסק:
collectors:
- syslog:
common:
write_to_disk_buffer_enabled: true
# /buffers/NIX_SYSTEM is part of the external mounted volume for the
forwarder
write_to_disk_dir_path: /buffers/NIX_SYSTEM
max_file_buffer_bytes: 1073741824
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: NIX_SYSTEM
enabled: true
tcp_address: 0.0.0.0:30000
connection_timeout_sec: 60
- syslog:
common:
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: WINEVTLOG
enabled: true
tcp_address: 0.0.0.0:30001
connection_timeout_sec: 60
מסננים של ביטויים רגולריים
מסננים של ביטויים רגולריים מאפשרים לסנן יומנים לפי התאמת תבניות לנתוני היומן הגולמיים. המסננים משתמשים בתחביר RE2. המסננים צריכים לכלול ביטוי רגולרי, ואפשר גם להגדיר התנהגות במקרה של התאמה.
התנהגות ברירת המחדל במקרה של התאמה היא block. אפשר לציין מסננים באמצעות allow
behaviour. אם מציינים מסנן allow, המעביר חוסם יומנים שלא תואמים לפחות למסנן allow אחד.
אפשר להגדיר מספר שרירותי של מסננים. מסנני Block קודמים למסנני allow.
כשמגדירים מסננים, צריך להקצות להם שם. שמות המסננים הפעילים ידווחו ל-Google SecOps באמצעות מדדי תקינות של שרתים להעברת אימייל. מסננים שמוגדרים ברמת הבסיס של ההגדרה משולבים עם מסננים שמוגדרים ברמת האיסוף. במקרים של שמות סותרים, המסננים ברמת האוסף מקבלים עדיפות. אם לא מוגדרים מסננים ברמת השורש או ברמת האוסף, המערכת מאפשרת את כל היומנים.
הגדרה לדוגמה
בהגדרות של המעביר הבאות, היומנים WINEVTLOG שלא תואמים למסנן השורש (allow_filter) נחסמים. בהינתן הביטוי הרגולרי, המסנן מאפשר רק יומנים עם עדיפויות בין 0 ל-99.
עם זאת, יומני NIX_SYSTEM שמכילים את המחרוזות foo או bar נחסמים, למרות allow_filter. הסיבה לכך היא שהמסננים משתמשים בלוגיקת OR. כל היומנים מעובדים עד שמסנן מופעל.
regex_filters:
allow_filter:
regexp: ^<[1-9][0-9]?$>.*$
behavior_on_match: allow
collectors:
- syslog:
common:
regex_filters:
block_filter_1:
regexp: ^.*foo.*$
behavior_on_match: block
block_filter_2:
regexp: ^.*bar.*$
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: NIX_SYSTEM
enabled: true
tcp_address: 0.0.0.0:30000
connection_timeout_sec: 60
- syslog:
common:
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: WINEVTLOG
enabled: true
tcp_address: 0.0.0.0:30001
connection_timeout_sec: 60
תוויות שרירותיות
התוויות משמשות לצירוף מטא-נתונים מותאמים אישית ליומנים באמצעות צמדי מפתח/ערך. אפשר להגדיר תוויות לכל המעביר או בתוך אוסף ספציפי של המעביר. אם יש תוויות בשתי הרמות, התוויות ברמת האוסף מבטלות את התוויות ברמת המעביר אם יש חפיפה במפתחות.
הגדרה לדוגמה
בהגדרת המעביר הבאה, צמדי המפתח/ערך foo=bar ו-meow=mix מצורפים ליומני WINEVTLOG, וצמדי המפתח/ערך foo=baz ו-meow=mix מצורפים ליומני NIX_SYSTEM.
metadata:
labels:
foo: bar
meow: mix
collectors:
syslog:
common:
metadata:
labels:
foo: baz
meow: mix
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: NIX_SYSTEM
enabled: true
tcp_address: 0.0.0.0:30000
connection_timeout_sec: 60
syslog:
common:
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: WINEVTLOG
enabled: true
tcp_address: 0.0.0.0:30001
connection_timeout_sec: 60
מרחבי שמות
אפשר להשתמש בתוויות של מרחב שמות כדי לזהות יומנים מפלחים שונים ברשת ולפתור בעיות שנובעות מכתובות IP חופפות. כל מרחב שמות שהוגדר עבור המעביר מופיע עם הנכסים המשויכים בממשק המשתמש של Google SecOps. אפשר גם לחפש מרחבי שמות באמצעות התכונה 'חיפוש' ב-Google SecOps.
מידע על הצגת מרחבי שמות בממשק המשתמש של Google SecOps זמין במאמר מרחבי שמות של נכסים.
הגדרה לדוגמה
בהגדרות של המעביר הבאות, היומנים WINEVTLOG מצורפים למרחב השמות FORWARDER והיומנים NIX_SYSTEM מצורפים למרחב השמות CORPORATE.
metadata:
namespace: FORWARDER
collectors:
- syslog:
common:
metadata:
namespace: CORPORATE
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: NIX_SYSTEM
enabled: true
tcp_address: 0.0.0.0:30000
connection_timeout_sec: 60
- syslog:
common:
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: WINEVTLOG
enabled: true
tcp_address: 0.0.0.0:30001
connection_timeout_sec: 60
אפשרויות של איזון עומסים וזמינות גבוהה
אפשר להגדיר את שרת ה-HTTP, איזון העומסים ואפשרויות הזמינות הגבוהה בקטע השרת של קובץ ההגדרות של המעביר. האפשרויות האלה תומכות בהגדרת משכי זמן קצובים וקודי סטטוס שמוחזרים בתגובה לבדיקות תקינות שמתקבלות בפריסות מבוססות-תזמור ומתזמן קונטיינרים, וגם ממאזני עומסים.
משתמשים בנתיבי כתובות ה-URL הבאים לבדיקות תקינות, מוכנות ופעילות.
הערכים של <host:port> מוגדרים בתצורת המעביר.
-
http://<host:port>/meta/available: בדיקות פעילות לתזמון או לניהול של קונטיינרים -
http://<host:port>/meta/ready: בדיקות מוכנות ובדיקות תקינות של מאזן העומסים
ההגדרה הבאה של מעביר היא דוגמה לאיזון עומסים ולזמינות גבוהה:
collectors:
- syslog:
common:
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: NIX_SYSTEM
enabled: true
tcp_address: 0.0.0.0:30000
connection_timeout_sec: 60
- syslog:
common:
batch_n_bytes: 1048576
batch_n_seconds: 10
data_hint: null
data_type: WINEVTLOG
enabled: true
tcp_address: 0.0.0.0:30001
connection_timeout_sec: 60
server:
graceful_timeout: 15s
drain_timeout: 10s
http:
port: 8080
host: 0.0.0.0
read_timeout: 3s
read_header_timeout: 3s
write_timeout: 3s
idle_timeout: 3s
routes:
- meta:
available_status: 204
ready_status: 204
unready_status: 503
| נתיב ההגדרה | תיאור |
|---|---|
| server : graceful_timeout | משך הזמן שבו המעביר מחזיר בדיקת מוכנות או תקינות לא תקינה, ועדיין מקבל חיבורים חדשים. זה גם הזמן להמתנה בין קבלת אות להפסקת הפעולה לבין תחילת ההשבתה של השרת עצמו. כך מאזן העומסים מקבל זמן להסיר את המעביר מהמאגר. |
| server : drain_timeout | משך הזמן שבו המעביר ממתין לחיבורים פעילים להיסגר בהצלחה בעצמם לפני שהם נסגרים על ידי השרת. |
| server : http : port | מספר היציאה ששרת ה-HTTP מאזין לה לבדיקות תקינות ממאזן העומסים. הערך חייב להיות בין 1024 ל-65535. |
| server : http : host | כתובת ה-IP או שם המארח שאפשר לתרגם לכתובות IP, שהשרת צריך להאזין להן. אם לא מציינים ערך, ברירת המחדל היא המערכת המקומית (0.0.0.0). |
| server : http : read_timeout | משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. הזמן המקסימלי שמוקצב לקריאת הבקשה כולה, גם הכותרת וגם הגוף. אפשר להגדיר גם את read_timeout וגם את read_header_timeout. |
| server : http : read_header_timeout | משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. הזמן המקסימלי שמוקצב לקריאת כותרות הבקשה. המועד האחרון לקריאה של החיבור מאופס אחרי קריאת הכותרת. |
| server : http : write_timeout | משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. משך הזמן המקסימלי שמוקצב לשליחת תגובה. הערך מתאפס כשכותרת בקשה חדשה נקראת. |
| server : http : idle_timeout | משמשת לכוונון של שרת ה-HTTP. בדרך כלל אין צורך לשנות את הגדרת ברירת המחדל. הזמן המקסימלי להמתנה לבקשה הבאה כשחיבורים בלי פעילות מופעלים. אם idle_timeout הוא אפס, המערכת משתמשת בערך של read_timeout. אם שניהם אפס, נעשה שימוש ב-read_header_timeout. |
| routes : meta : ready_status | קוד הסטטוס שמוחזר על ידי המעביר כשהוא מוכן לקבל את התנועה באחד מהמצבים הבאים:
|
| routes : meta : unready_status | קוד הסטטוס שמוחזר על ידי המעביר כשהוא לא מוכן לקבל תנועה. |
| routes : meta : available_status | קוד הסטטוס שמוחזר על ידי המעביר כשמתקבלת בדיקת פעילות והמעביר זמין. מתזמני קונטיינרים או כלי תזמור שולחים לעיתים קרובות בדיקות פעילות. |
הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.