במאמר הזה מפורטות הגדרות ברירת המחדל וההגדרות המותאמות אישית של Ops Agent. כדאי לקרוא את המסמך הזה אם אחת מהאפשרויות הבאות רלוונטית לגביכם:
אתם רוצים לשנות את ההגדרות של סוכן תפעול כדי להשיג את המטרות הבאות:
משביתים את הרישום המובנה ביומן או את ההעברה של המדדים.
כדי להשבית את ההעברה של הרישום ביומן, אפשר לעיין בדוגמאות להגדרות של רישום ביומן
service.כדי להשבית את ההטמעה של מדדים של מארחים, אפשר לעיין במאמר דוגמאות להגדרות של מדדים
service.
התאמה אישית של נתיב הקובץ של קובצי היומן שהסוכן אוסף מהם יומנים. מידע נוסף זמין במאמר בנושא מקבלים של יומנים.
אפשר להתאים אישית את פורמט היומן המובנה שבו הסוכן משתמש כדי לעבד את רשומות היומן, על ידי ניתוח ה-JSON או באמצעות ביטויים רגולריים. מידע נוסף זמין במאמר בנושא מעבדי יומנים.
שינוי קצב הדגימה של מדדים. מידע נוסף זמין במאמר בנושא מקבלים של מדדים.
להתאים אישית את קבוצת המדדים שרוצים להפעיל. כברירת מחדל, הסוכן אוסף את כל מדדי המערכת, כמו
cpuו-memory. מידע נוסף זמין במאמר בנושא מעבדי מדדים.אפשר להתאים אישית את האופן שבו הסוכן מבצע רוטציה של יומנים. מידע נוסף זמין במאמר בנושא הגדרת רוטציה של יומנים.
איסוף מדדים ויומנים מאפליקציות נתמכות של צד שלישי. רשימת האפליקציות הנתמכות מופיעה במאמר בנושא מעקב אחרי אפליקציות של צד שלישי.
אפשר להשתמש במקלט Prometheus כדי לאסוף מדדים מותאמים אישית.
אפשר להשתמש במקלט OpenTelemetry Protocol (OTLP) כדי לאסוף מדדים מותאמים אישית ועקבות.
אתם רוצים ללמוד את הפרטים הטכניים של ההגדרות של Ops Agent.
מודל ההגדרה
סוכן תפעול משתמש בהגדרת ברירת מחדל מובנית, ואי אפשר לשנות אותה ישירות. במקום זאת, יוצרים קובץ של שינויים שמתמזג עם התצורה המובנית כשהסוכן מופעל מחדש.
אלה אבני הבניין של ההגדרה:
-
receivers: הרכיב הזה מתאר את מה שנאסף על ידי הסוכן. -
processors: הרכיב הזה מתאר איך הסוכן יכול לשנות את המידע שנאסף. -
service: הרכיב הזה מקשר בין מקבלי נתונים ומעבדי נתונים כדי ליצור זרימות נתונים שנקראות צינורות. רכיבserviceמכיל רכיבpipelinesשיכול להכיל כמה צינורות.
ההגדרה המובנית מורכבת מהרכיבים האלה, ואתם משתמשים באותם רכיבים כדי לשנות את ההגדרה המובנית.
הגדרה מובנית
ההגדרה המובנית של סוכן תפעול מגדירה את איסוף ברירת המחדל של יומנים ומדדים. בדוגמה הבאה מוצגת ההגדרה המובנית עבור Linux ועבור Windows:
Linux
כברירת מחדל, סוכן תפעול אוסף יומנים מבוססי-קובץ syslog ומדדים של המארח.
מידע נוסף על המדדים שנאספים זמין במאמר מדדים שנקלטים על ידי הרכיבים המקבלים.
Windows
כברירת מחדל, סוכן תפעול אוסף יומני אירועים של Windows מהערוצים System, Application ו-Security, וגם מדדים של המארח, מדדי IIS ומדדי SQL Server.
מידע נוסף על המדדים שנאספים זמין במאמר מדדים שנקלטים על ידי הרכיבים המקבלים.
ההגדרות האלה מוסברות בפירוט במאמרים בנושא הגדרת רישום ביומן והגדרת מדדים.
הגדרה שנקבעה על ידי המשתמש
כדי לבטל את התצורה המובנית, מוסיפים רכיבי תצורה חדשים לקובץ התצורה של המשתמש. ממקמים את ההגדרות של סוכן תפעול בקבצים הבאים:
- ב-Linux:
/etc/google-cloud-ops-agent/config.yaml - ב-Windows:
C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml
כל הגדרה שצוינה על ידי המשתמש תמוזג עם ההגדרה המובנית כשהסוכן יופעל מחדש.
כדי לבטל את ההגדרה של מקלט, מעבד או צינור מובנים, צריך להגדיר אותם מחדש בקובץ config.yaml באמצעות הצהרה עם אותו מזהה.
החל מגרסה 2.31.0 של סוכן תפעול, אפשר גם להגדיר את התכונה של החלפת יומנים של הסוכן. מידע נוסף זמין במאמר הגדרת החלפת יומנים ב-סוכן תפעול.
לדוגמה, ההגדרה המובנית של מדדים כוללת hostmetrics
מקלט שמציין מרווח איסוף של 60 שניות. כדי לשנות את מרווח הזמן לאיסוף מדדים של המארח ל-30 שניות, צריך לכלול בקובץ config.yaml מקלט מדדים בשם hostmetrics שבו הערך של collection_interval מוגדר ל-30 שניות, כמו בדוגמה הבאה:
metrics:
receivers:
hostmetrics:
type: hostmetrics
collection_interval: 30s
דוגמאות נוספות לשינוי ההגדרות המובנות זמינות במאמרים הגדרת רישום ביומן והגדרת מדדים.
אפשר גם להשבית את האיסוף של נתוני רישום או נתוני מדדים. השינויים האלה מתוארים בדוגמה logging service
configurations וmetrics
service configurations.
אפשר להשתמש בקובץ הזה כדי למנוע מהסוכן לאסוף יומנים עצמיים ולשלוח אותם ל-Cloud Logging. מידע נוסף מופיע במאמר בנושא איסוף יומנים עצמיים.
בנוסף, אפשר להגדיר את התכונה של החלפת יומנים (log rotation) של הסוכן באמצעות הקובץ הזה. מידע נוסף זמין במאמר הגדרת החלפת יומנים ב-Ops Agent.
אי אפשר להגדיר את סוכן תפעול לייצא יומנים או מדדים לשירותים אחרים מלבד Cloud Logging ו-Cloud Monitoring.
הגדרות רישום
ההגדרה logging משתמשת במודל ההגדרה שתואר קודם:
-
receivers: הרכיב הזה מתאר את הנתונים לאיסוף מקובצי יומן. הנתונים האלה ממופים למודל <timestamp, record>. -
processors: רכיב אופציונלי שמתאר איך הנציג יכול לשנות את המידע שנאסף. -
service: הרכיב הזה מקשר בין מקבלי נתונים ומעבדי נתונים כדי ליצור זרימות נתונים שנקראות צינורות. הרכיבserviceמכיל רכיבpipelines, שיכול לכלול כמה הגדרות של צינורות.
אפשר להשתמש בכל רכיב מקבל ובכל רכיב מעבד בכמה צינורות.
בקטעים הבאים מתואר כל אחד מהרכיבים האלה.
סוכן תפעול שולח יומנים ל-Cloud Logging. אי אפשר להגדיר אותו לייצוא יומנים לשירותים אחרים. עם זאת, אפשר להגדיר את Cloud Logging לייצא יומנים. מידע נוסף זמין במאמר בנושא ניתוב יומנים ליעדים נתמכים.
רישום נמענים
האלמנט receivers מכיל קבוצה של מקלטים, שכל אחד מהם מזוהה על ידי RECEIVER_ID. מקלט מתאר איך לאחזר את היומנים. לדוגמה, על ידי מעקב אחרי קבצים, על ידי שימוש ביציאת TCP או מיומן האירועים של Windows.
המבנה של נמעני הרישום ביומן
לכל נמען צריך להיות מזהה, RECEIVER_ID, והוא צריך לכלול רכיב type. הסוגים התקינים הם:
-
files: איסוף יומנים על ידי מעקב אחרי קבצים בדיסק. fluent_forward(סוכן תפעול בגרסה 2.12.0 ואילך): איסוף יומנים שנשלחים באמצעות פרוטוקול Fluent Forward דרך TCP.-
tcp(סוכן תפעול בגרסה 2.3.0 ואילך): איסוף יומנים בפורמט JSON על ידי האזנה ליציאת TCP. - ב-Linux בלבד:
-
syslog: איסוף הודעות Syslog באמצעות TCP או UDP. -
systemd_journald(סוכן תפעול בגרסה 2.4.0 ואילך): איסוף יומנים של systemd journal משירות systemd-journald.
-
- Windows בלבד:
-
windows_event_log: איסוף יומני אירועים של Windows באמצעות Windows Event Log API.
-
- מקבלים של יומני אפליקציות של צד שלישי
המבנה של receivers נראה כך:
receivers:
RECEIVER_ID:
type: files
...
RECEIVER_ID_2:
type: syslog
...
בהתאם לערך של הרכיב type, יכולות להיות אפשרויות הגדרה אחרות, כמו האפשרויות הבאות:
filesreceivers:
include_paths: שדה חובה. רשימה של נתיבים במערכת הקבצים לקריאה על ידי מעקב אחרי כל קובץ. אפשר להשתמש בתווים הכלליים הבאים בנתיבים:
*: תואם לכל רצף של תווים שאינם מפרידי נתיבים בתוך שם של ספרייה או קובץ יחיד.- דוגמה (Linux):
/var/log/*.logתואם לכל הקבצים שמסתיימים ב-.logישירות ב-/var/log/. - דוגמה (Linux):
/var/log/app_*/server.logתואם ל-/var/log/app_1/server.logול-/var/log/app_2/server.log, אבל לא תואם ל-/var/log/app_1/v2/server.log.
- דוגמה (Linux):
**(globstar): מתאים לאפס או יותר ספריות בנתיב. התבנית הזו משמשת להתאמת קבצים בכמה רמות של ספריות (באופן רקורסיבי).- דוגמה (Linux):
/var/log/**/*.logמתאים לכל קובץ שמסתיים ב-.logבתוך/var/logאו בכל אחת מתתי-הספריות שלו בכל עומק (לדוגמה,/var/log/app1.log,/var/log/apache2/access.log). - דוגמה (Linux): כדי לאסוף יומנים ממופעים של אפליקציות שיוצרים ספריות משנה עם גרסאות או ספריות משנה ספציפיות למופע, כמו
/opt/my-app/logs/instance-01/app.log,/opt/my-app/logs/groupA/instance-02/app.log, אפשר להשתמש ב-globstar:/opt/my-app/logs/**/*.log
- דוגמה (Linux):
רשימה של קובצי יומן נפוצים של אפליקציות Linux מופיעה במאמר קובצי יומן נפוצים של Linux.
exclude_paths: אופציונלי. רשימה של תבניות של נתיבי מערכת קבצים שיוחרגו מהקבוצה שתואמת ל-include_paths.
record_log_file_path: אופציונלי. אם הערך הואtrue, הנתיב לקובץ הספציפי שממנו נלקחה רשומת היומן מופיע ברשומת היומן של הפלט כערך של התוויתagent.googleapis.com/log_file_path. כשמשתמשים בתו כללי לחיפוש, מתועד רק הנתיב של הקובץ שממנו התקבל הרשומה.
wildcard_refresh_interval: אופציונלי. המרווח שבו מתרחש רענון של נתיבי קבצים עם תו כללי לחיפוש ב-include_paths. הערך הוא משך זמן, לדוגמה,30s,2m. הנכס הזה יכול להיות שימושי כשקצב העברת הנתונים של היומנים גבוה, והקבצים מסתובבים מהר יותר מברירת המחדל של המרווח. אם לא מציינים את המרווח, ברירת המחדל היא 60 שניות.
fluent_forwardreceivers:
listen_host: אופציונלי. כתובת IP להאזנה. ערך ברירת המחדל הוא127.0.0.1.
listen_port: אופציונלי. יציאה להאזנה. ערך ברירת המחדל הוא24224.
מקלט
syslog(ל-Linux בלבד):
transport_protocol: ערכים נתמכים:tcp, udp.
listen_host: כתובת IP להאזנה.
listen_port: יציאה להאזנה.
tcpreceivers:
format: שדה חובה. פורמט היומן. ערך נתמך:json.
listen_host: אופציונלי. כתובת IP להאזנה. ערך ברירת המחדל הוא127.0.0.1.
listen_port: אופציונלי. יציאה להאזנה. ערך ברירת המחדל הוא5170.
מקלטים
windows_event_log(ל-Windows בלבד):-
channels: שדה חובה. רשימה של ערוצים ביומן האירועים של Windows שמתוכם יתבצע קריאת יומנים.
receiver_version: אופציונלי. קובעת באיזה Windows Event Log API להשתמש. הערכים הנתמכים הם1ו-2. ערך ברירת המחדל הוא1.
render_as_xml: אופציונלי. אם הערך הואtrue, כל השדות ביומן האירועים, חוץ מjsonPayload.MessageוjsonPayload.StringInserts, מוצגים כמסמך XML בשדה מחרוזת בשםjsonPayload.raw_xml. ערך ברירת המחדל הואfalse. אי אפשר להגדיר את הערךtrueכאשר הערך שלreceiver_versionהוא1.
-
דוגמאות למקבלי יומנים
דוגמה למקלט files:
receivers:
RECEIVER_ID:
type: files
include_paths: [/var/log/*.log]
exclude_paths: [/var/log/not-this-one.log]
record_log_file_path: true
דוגמה למקלט fluent_forward:
receivers:
RECEIVER_ID:
type: fluent_forward
listen_host: 127.0.0.1
listen_port: 24224
דוגמה למקלט syslog (ב-Linux בלבד):
receivers:
RECEIVER_ID:
type: syslog
transport_protocol: tcp
listen_host: 0.0.0.0
listen_port: 5140
דוגמה למקלט tcp:
receivers:
RECEIVER_ID:
type: tcp
format: json
listen_host: 127.0.0.1
listen_port: 5170
דוגמה למקלט windows_event_log (Windows בלבד):
receivers:
RECEIVER_ID:
type: windows_event_log
channels: [System,Application,Security]
דוגמה למקלט windows_event_log שמבטל את המקלט המובנה כדי להשתמש בגרסה 2:
receivers:
windows_event_log:
type: windows_event_log
channels: [System,Application,Security]
receiver_version: 2
דוגמה למקלט systemd_journald:
receivers:
RECEIVER_ID:
type: systemd_journald
שדות מיוחדים במטען ייעודי (payload) מובנה
למעבדים ולמקבלים שיכולים לקלוט נתונים מובְנים (מקבלים מסוג fluent_forward ו-tcp ומעבד מסוג parse_json), אפשר להגדיר שדות מיוחדים בקלט שימופו לשדות ספציפיים באובייקט LogEntry שהסוכן כותב ל-Logging API.
כשסוכן תפעול מקבל נתונים מובְנים מיומנים חיצוניים, הוא מציב שדות ברמה העליונה בשדה LogEntry's jsonPayload, אלא אם שם השדה מופיע בטבלה הבאה:
| שדה הרשומה | שדה LogEntry |
|---|---|
|
אפשרות 1
אפשרות 2
|
timestamp |
| receiver_id (לא שדה של רשומה) | logName |
logging.googleapis.com/httpRequest (HttpRequest) |
httpRequest |
logging.googleapis.com/severity (מחרוזת) |
severity |
logging.googleapis.com/labels (struct of string:string) |
labels |
logging.googleapis.com/operation (struct) |
operation |
logging.googleapis.com/sourceLocation (struct) |
sourceLocation |
logging.googleapis.com/trace (מחרוזת) |
trace |
logging.googleapis.com/spanId (מחרוזת) |
spanId |
כל השדות הנותרים של הרשומה המובנית נשארים חלק מהמבנה jsonPayload.
קובצי יומן נפוצים ב-Linux
בטבלה הבאה מפורטים קובצי יומן נפוצים של אפליקציות Linux שמשתמשים בהן לעיתים קרובות:
| בקשת הצטרפות | קובצי יומן נפוצים |
|---|---|
| apache | מידע על קובצי יומן של Apache זמין במאמר בנושא מעקב אחרי אפליקציות של צד שלישי: שרת אינטרנט של Apache. |
| cassandra | מידע על קובצי יומן של Cassandra זמין במאמר בנושא מעקב אחרי אפליקציות של צד שלישי: Cassandra. |
| שף |
/var/log/chef-server/bookshelf/current
|
| gitlab |
/home/git/gitlab/log/application.log
|
| jenkins |
/var/log/jenkins/jenkins.log
|
| מזח |
/var/log/jetty/out.log
|
| joomla |
/var/www/joomla/logs/*.log
|
| magento |
/var/www/magento/var/log/exception.log
|
| mediawiki |
/var/log/mediawiki/*.log
|
| memcached | מידע על קובצי יומן של Memcached זמין במאמר בנושא מעקב אחרי אפליקציות של צד שלישי: Memcached. |
| mongodb | מידע על קובצי יומן של MongoDB זמין במאמר בנושא מעקב אחרי אפליקציות של צד שלישי: MongoDB. |
| mysql | מידע על קובצי יומן של MySQL זמין במאמר בנושא מעקב אחרי אפליקציות של צד שלישי: MySQL. |
| nginx | מידע על קובצי יומן של nginx זמין במאמר בנושא מעקב אחרי אפליקציות של צד שלישי: nginx. |
| postgres | מידע על קובצי יומן של PostgreSQL זמין במאמר בנושא מעקב אחרי אפליקציות של צד שלישי: PostgreSQL. |
| בובה |
/var/log/puppet/http.log
|
| puppet-enterprise |
/var/log/pe-activemq/activemq.log
|
| rabbitmq | מידע על קובצי יומן של RabbitMQ זמין במאמר בנושא מעקב אחרי אפליקציות של צד שלישי: RabbitMQ. |
| redis | מידע על קובצי יומן של Redis זמין במאמר בנושא מעקב אחרי אפליקציות של צד שלישי: Redis. |
| redmine |
/var/log/redmine/*.log
|
| מלח |
/var/log/salt/key
|
| solr | מידע על קובצי יומן של Apache Solr זמין במאמר בנושא מעקב אחרי אפליקציות של צד שלישי: Apache Solr. |
| sugarcrm |
/var/www/*/sugarcrm.log
|
| syslog |
/var/log/syslog
|
| tomcat | מידע על קובצי יומן של Apache Tomcat זמין במאמר בנושא מעקב אחרי אפליקציות של צד שלישי: Apache Tomcat. |
| מטפל בבעלי חיים | מידע על קובצי יומן של Apache ZooKeeper זמין במאמר בנושא Monitoring third-party applications: Apache ZooKeeper (מעקב אחרי אפליקציות של צד שלישי: Apache ZooKeeper). |
תוויות ברירת מחדל שנוספו
כברירת מחדל, היומנים יכולים להכיל את התוויות הבאות ב-LogEntry:
| שדה | ערך לדוגמה | תיאור |
|---|---|---|
labels."compute.googleapis.com/resource_name" |
test_vm |
השם של המכונה הווירטואלית שממנה נוצר היומן הזה. נכתב לכל היומנים. |
labels."logging.googleapis.com/instrumentation_source" |
agent.googleapis.com/apache_access |
הערך של המקלט type שממנו נוצר היומן הזה, עם הקידומת agent.googleapis.com/. ההודעות נכתבות רק על ידי מקבלים משילובים של צד שלישי. |
מעבדי רישום
הרכיב האופציונלי processors מכיל קבוצה של הוראות עיבוד, שכל אחת מהן מזוהה על ידי PROCESSOR_ID. מעבד מתאר איך לבצע מניפולציה במידע שנאסף על ידי מקלט.
לכל מעבד צריך להיות מזהה ייחודי, והוא צריך לכלול רכיב type. הסוגים התקינים הם:
-
parse_json: ניתוח יומנים מובנים בפורמט JSON. -
parse_multiline: ניתוח יומנים מרובי שורות. (ב-Linux בלבד) -
parse_regex: ניתוח יומנים בפורמט טקסט באמצעות תבניות regex כדי להפוך אותם ליומנים מובנים בפורמט JSON. -
exclude_logs: החרגת יומנים שתואמים לכללים שצוינו (החל מגרסה 2.9.0). -
modify_fields: הגדרה או שינוי של שדות ברשומות ביומן (החל מגרסה 2.14.0).
המבנה של processors נראה כך:
processors:
PROCESSOR_ID:
type: parse_json
...
PROCESSOR_ID_2:
type: parse_regex
...
בהתאם לערך של רכיב type, יש אפשרויות הגדרה נוספות, כמו שמתואר בהמשך.
מעבד parse_json
מבנה ההגדרה
processors:
PROCESSOR_ID:
type: parse_json
time_key: <field name within jsonPayload>
time_format: <strptime format string>
מעבד parse_json מנתח את קובץ ה-JSON של הקלט בשדה jsonPayload של LogEntry. אפשר לנתח חלקים אחרים של LogEntry על ידי הגדרה של שדות מיוחדים מסוימים ברמה העליונה.
time_key: אופציונלי. אם רשומת היומן מספקת שדה עם חותמת זמן, האפשרות הזו מציינת את השם של השדה הזה. הערך שחולץ משמש להגדרת השדהtimestampשלLogEntryשמתקבל, ומוסר ממטען הייעודי (payload).אם מציינים את האפשרות
time_key, צריך לציין גם את הפרטים הבאים:-
time_format: חובה אם משתמשים ב-time_key. האפשרות הזו מציינת את הפורמט של השדהtime_keyכדי שהמערכת תוכל לזהות ולנתח אותו בצורה נכונה. פרטים על הפורמט זמינים במדריךstrptime(3).
-
הגדרה לדוגמה
processors:
PROCESSOR_ID:
type: parse_json
time_key: time
time_format: "%Y-%m-%dT%H:%M:%S.%L%Z"
מעבד parse_multiline
מבנה ההגדרה
processors:
PROCESSOR_ID:
type: parse_multiline
match_any:
- type: <type of the exceptions>
language: <language name>
match_any: שדה חובה. רשימה של כלל אחד או יותר.
type: שדה חובה. יש תמיכה רק בערך יחיד:-
language_exceptions: מאפשר למעבד לשרשר חריגים ל-LogEntryאחד, על סמך הערך של האפשרותlanguage.
-
language: שדה חובה. יש תמיכה רק בערך יחיד:-
java: שרשור של חריגים נפוצים ב-Java ל-LogEntryאחד. -
python: שרשור של חריגים נפוצים ב-Python ל-LogEntryאחד. -
go: שרשור של חריגים נפוצים ב-Go ל-LogEntryאחד.
-
הגדרה לדוגמה
logging:
receivers:
custom_file1:
type: files
include_paths:
- /tmp/test-multiline28
processors:
parse_java_multiline:
type: parse_multiline
match_any:
- type: language_exceptions
language: java
extract_structure:
type: parse_regex
field: message
regex: "^(?<time>[\d-]*T[\d:.Z]*) (?<severity>[^ ]*) (?<file>[^ :]*):(?<line>[\d]*) - (?<message>(.|\\n)*)$"
time_key: time
time_format: "%Y-%m-%dT%H:%M:%S.%L"
move_severity:
type: modify_fields
fields:
severity:
move_from: jsonPayload.severity
service:
pipelines:
pipeline1:
receivers: [custom_file1]
processors: [parse_java_multiline, extract_structure, move_severity]
במעבד extract_structure, המשמעות של ההצהרה field: message היא שהביטוי הרגולרי מוחל על השדה jsonPayload.message של רשומת היומן. כברירת מחדל, מקבל הקבצים ממקם כל שורה בקובץ היומן ברשומה של יומן עם שדה מטען ייחודי שנקרא jsonPayload.message.
מעבד extract_structure ממקם את השדות שחולצו בשדות משנה של השדה LogEntry.jsonPayload. הצהרות אחרות בקובץ ה-YAML גורמות להזזה של שניים מהשדות שחולצו, time ו-severity.
ההצהרה time_key: time שולפת את השדה LogEntry.jsonPayload.time, מנתחת את חותמת הזמן ואז מוסיפה את השדה LogEntry.timestamp.
מעבד move_severity מעביר את שדה החומרה מהשדה LogEntry.jsonPayload.severity לשדה LogEntry.severity.
קובץ יומן לדוגמה:
2022-10-17T22:00:00.187512963Z ERROR HelloWorld:16 - javax.servlet.ServletException: Something bad happened
at com.example.myproject.OpenSessionInViewFilter.doFilter(OpenSessionInViewFilter.java:60)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.example.myproject.ExceptionHandlerFilter.doFilter(ExceptionHandlerFilter.java:28)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at com.example.myproject.OutputBufferFilter.doFilter(OutputBufferFilter.java:33)
Caused by: com.example.myproject.MyProjectServletException
at com.example.myproject.MyServlet.doPost(MyServlet.java:169)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
at com.example.myproject.OpenSessionInViewFilter.doFilter(OpenSessionInViewFilter.java:30)
... 27 common frames omitted
הסוכן מעביר כל שורה מקובץ היומן אל Cloud Logging בפורמט הבא:
{
"insertId": "...",
"jsonPayload": {
"line": "16",
"message": "javax.servlet.ServletException: Something bad happened\n at com.example.myproject.OpenSessionInViewFilter.doFilter(OpenSessionInViewFilter.java:60)\n at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)\n at com.example.myproject.ExceptionHandlerFilter.doFilter(ExceptionHandlerFilter.java:28)\n at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)\n at com.example.myproject.OutputBufferFilter.doFilter(OutputBufferFilter.java:33)\nCaused by: com.example.myproject.MyProjectServletException\n at com.example.myproject.MyServlet.doPost(MyServlet.java:169)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)\n at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)\n at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)\n at com.example.myproject.OpenSessionInViewFilter.doFilter(OpenSessionInViewFilter.java:30)\n ... 27 common frames omitted\n",
"file": "HelloWorld"
},
"resource": {
"type": "gce_instance",
"labels": {
"instance_id": "...",
"project_id": "...",
"zone": "..."
}
},
"timestamp": "2022-10-17T22:00:00.187512963Z",
"severity": "ERROR",
"labels": {
"compute.googleapis.com/resource_name": "..."
},
"logName": "projects/.../logs/custom_file",
"receiveTimestamp": "2022-10-18T03:12:38.430364391Z"
}
מעבד parse_regex
מבנה ההגדרה
processors:
PROCESSOR_ID:
type: parse_regex
regex: <regular expression>
time_key: <field name within jsonPayload>
time_format: <format string>
time_key: אופציונלי. אם רשומת היומן מספקת שדה עם חותמת זמן, האפשרות הזו מציינת את השם של השדה הזה. הערך שחולץ משמש להגדרת השדהtimestampשלLogEntryשמתקבל, ומוסר ממטען הייעודי (payload).אם מציינים את האפשרות
time_key, צריך לציין גם את הפרטים הבאים:-
time_format: חובה אם משתמשים ב-time_key. האפשרות הזו מציינת את הפורמט של השדהtime_keyכדי שהמערכת תוכל לזהות ולנתח אותו בצורה נכונה. פרטים על הפורמט זמינים במדריךstrptime(3).
-
regex: שדה חובה. הביטוי הרגולרי לניתוח השדה. הביטוי צריך לכלול שמות של מפתחות לביטויי המשנה התואמים, לדוגמה,"^(?<time>[^ ]*) (?<severity>[^ ]*) (?<msg>.*)$".הטקסט שתואם לקבוצות לכידה עם שם ימוקם בשדות בשדה
LogEntryשלjsonPayload. כדי להוסיף עוד מבנה ליומנים, משתמשים במעבדmodify_fields.כדי לראות קבוצה של ביטויים רגולריים לחילוץ מידע מקובצי יומן נפוצים של אפליקציות Linux, אפשר לעיין במאמר קובצי יומן נפוצים של Linux.
הגדרה לדוגמה
processors:
PROCESSOR_ID:
type: parse_regex
regex: "^(?<time>[^ ]*) (?<severity>[^ ]*) (?<msg>.*)$"
time_key: time
time_format: "%Y-%m-%dT%H:%M:%S.%L%Z"
מעבד exclude_logs
מבנה ההגדרות:
type: exclude_logs
match_any:
- <filter>
- <filter>
ההגדרה ברמה העליונה של המעבד הזה מכילה שדה יחיד, match_any, שמכיל רשימה של כללי סינון.
match_any: שדה חובה. רשימה של כלל אחד או יותר. אם רשומה ביומן תואמת לכלל כלשהו, סוכן ה-Ops לא יקלוט את הרשומה הזו.היומנים שמוטמעים על ידי סוכן תפעול הם במבנה
LogEntry. שמות השדות הם תלויי אותיות רישיות. אפשר להגדיר כללים רק על סמך השדות הבאים ושדות המשנה שלהם:httpRequestjsonPayloadlabelsoperationseveritysourceLocationtracespanId
הכלל הבא לדוגמה
severity =~ "(DEBUG|INFO)"משתמש בביטוי רגולרי כדי להחריג את כל היומנים ברמה
DEBUGוברמהINFO.הכללים פועלים לפי התחביר של שפת השאילתות של Cloud Logging, אבל הם תומכים רק בקבוצת משנה של התכונות ששפת השאילתות של Logging תומכת בהן:
- אופרטורים להשוואה:
=, !=, :, =~, !~. יש תמיכה רק בהשוואות של מחרוזות. - אופרטור ניווט:
.. לדוגמהjsonPayload.message. - אופרטורים בוליאניים:
AND,OR,NOT. - קיבוץ ביטויים באמצעות
().
הגדרה לדוגמה
processors:
PROCESSOR_ID:
type: exclude_logs
match_any:
- '(jsonPayload.message =~ "log spam 1" OR jsonPayload.message =~ "log spam 2") AND severity = "ERROR"'
- 'jsonPayload.application = "foo" AND severity = "INFO"'
modify_fields מעבד
מעבד modify_fields מאפשר התאמה אישית של המבנה והתוכן של רשומות ביומן.
מבנה ההגדרה
type: modify_fields
fields:
<destination field>:
# Source
move_from: <source field>
copy_from: <source field>
static_value: <string>
# Mutation
default_value: <string>
map_values:
<old value>: <new value>
type: {integer|float}
omit_if: <filter>
ההגדרה ברמה העליונה של המעבד הזה מכילה שדה יחיד, fields, שמכיל מיפוי של שמות שדות פלט ותרגומים תואמים. לכל שדה פלט מוחלים מקור אופציונלי ואפס או יותר פעולות שינוי.
כל שמות השדות משתמשים בתחביר עם נקודות משפת השאילתות של Cloud Logging. המסננים משתמשים בשפת השאילתות של Cloud Logging.
כל השינויים מוחלים במקביל, כלומר מקורות ומסננים פועלים על רשומת היומן המקורית של הקלט, ולכן לא יכולים להפנות לערך החדש של שדות אחרים שמשתנים על ידי אותו מעבד.
אפשרויות מקור: אפשר לציין מקור אחד לכל היותר.
לא צוין מקור
אם לא מציינים ערך מקור, הערך הקיים בשדה היעד ישתנה.
move_from: <source field>הערך מ-
<source field>ישמש כמקור לשדה היעד. בנוסף,<source field>יוסר מהרשומה ביומן. אם שדה מקור מוזכר גם ב-move_fromוגם ב-copy_from, שדה המקור עדיין יוסר.copy_from: <source field>הערך מ-
<source field>ישמש כמקור לשדה היעד. <source field>לא יוסר מיומן הרישום, אלא אם הוא מוזכר גם בפעולהmove_fromאו אם הוא ישונה בדרך אחרת.static_value: <string>המחרוזת הסטטית
<string>תשמש כמקור לשדה היעד.
אפשרויות לשינוי: אפשר להחיל על שדה אחד אפס או יותר אופרטורים לשינוי. אם מספקים כמה אופרטורים, הם תמיד יופעלו בסדר הבא.
default_value: <string>אם שדה המקור לא קיים, ערך הפלט יוגדר כ-
<string>. אם שדה המקור כבר קיים (גם אם הוא מכיל מחרוזת ריקה), הערך המקורי לא משתנה.map_values: <map>אם ערך הקלט תואם לאחד מהמפתחות ב-
<map>, ערך הפלט יוחלף בערך התואם מהמיפוי.map_values_exclusive: {true|false}אם הערך של
<source field>לא תואם לאף אחד מהמפתחות שצוינו בצמדיmap_values, שדה היעד יבוטל בכוח אםmap_values_exclusiveהוא true, או יישאר ללא שינוי אםmap_values_exclusiveהוא false.type: {integer|float}ערך הקלט יומר למספר שלם או למספר עשרוני. אם אי אפשר להמיר את המחרוזת למספר, ערך הפלט לא יוגדר. אם המחרוזת מכילה מספר עשרוני אבל הסוג מוגדר כ-
integer, המספר יעבור חיתוך ויהפוך למספר שלם.שימו לב: Cloud Logging API משתמש ב-JSON ולכן הוא לא תומך במספר שלם מלא של 64 ביט. אם נדרש מספר שלם של 64 ביט (או יותר), צריך לאחסן אותו כמחרוזת ברשומה ביומן.
omit_if: <filter>אם המסנן תואם לרשומת היומן של הקלט, שדה הפלט לא יוגדר. אפשר להשתמש בפונקציה הזו כדי להסיר ערכי placeholder, כמו:
httpRequest.referer: move_from: jsonPayload.referer omit_if: httpRequest.referer = "-"
הגדרות לדוגמה
מעבד parse_json ימיר קובץ JSON שמכיל
{
"http_status": "400",
"path": "/index.html",
"referer": "-"
}
לתוך מבנה LogEntry שנראה כך:
{
"jsonPayload": {
"http_status": "400",
"path": "/index.html",
"referer": "-"
}
}
אפשר להפוך את זה באמצעות modify_fields לזה LogEntry:
{
"httpRequest": {
"status": 400,
"requestUrl": "/index.html",
}
}
באמצעות ההגדרה הזו של סוכן תפעול:
logging:
receivers:
in:
type: files
include_paths:
- /var/log/http.json
processors:
parse_json:
type: parse_json
set_http_request:
type: modify_fields
fields:
httpRequest.status:
move_from: jsonPayload.http_status
type: integer
httpRequest.requestUrl:
move_from: jsonPayload.path
httpRequest.referer:
move_from: jsonPayload.referer
omit_if: jsonPayload.referer = "-"
service:
pipelines:
pipeline:
receivers: [in]
processors: [parse_json, set_http_request]
ההגדרה הזו קוראת יומנים בפורמט JSON מ-/var/log/http.json ומאכלסת חלק מהמבנה httpRequest משדות ביומנים.
שירות רישום ביומן
שירות רישום ביומן מתאים את רמת הפירוט של היומנים של Ops Agent, ומקשר בין מעבדי יומנים לבין מקבלי יומנים בצינורות. הקטע service
כולל את הרכיבים הבאים:
log_levelpipelines
רמת הפירוט של הרישום ביומן
השדה log_level, שזמין ב-סוכן תפעול מגרסה 2.6.0 ואילך, מאפשר להתאים אישית את דרגת המלל של היומנים של מודול המשנה של סוכן תפעול לרישום ביומן. ברירת המחדל היא info. האפשרויות הזמינות הן: error, warn, info, debug, trace.
ההגדרה הבאה מתאימה אישית את רמת הפירוט של היומן עבור מודול המשנה של רישום ביומן ל-debug:
logging:
service:
log_level: debug
צינורות עיבוד נתונים לרישום ביומן
השדה pipelines יכול להכיל כמה מזהי צינורות והגדרות. כל ערך pipeline מורכב מהרכיבים הבאים:
receivers: חובה לצינורות חדשים. רשימה של מזהי מקבלים, כפי שמתואר במאמר בנושא רישום מקבלים ביומן. אין חשיבות לסדר מזהי הנמענים ברשימה. צינור הנתונים אוסף נתונים מכל המקבלים שמופיעים ברשימה.
processors: אופציונלי. רשימה של מזהי מעבדים, כמו שמתואר במאמר בנושא מעבדי יומנים. הסדר של מזהי המעבדים ברשימה חשוב. כל רשומה מועברת דרך המעבדים לפי הסדר שמופיע ברשימה.
הגדרות לדוגמה של רישום ביומן service
הגדרות service כוללות את המבנה הבא:
service:
log_level: CUSTOM_LOG_LEVEL
pipelines:
PIPELINE_ID:
receivers: [...]
processors: [...]
PIPELINE_ID_2:
receivers: [...]
processors: [...]
כדי למנוע מהסוכן לאסוף ולשלוח רשומות של /var/log/message או של /var/log/syslog, צריך להגדיר מחדש את צינור ברירת המחדל עם רשימה ריקה של receivers וללא מעבדים. ההגדרה הזו לא מפסיקה את רכיב המשנה של רישום היומן של הסוכן, כי הסוכן צריך להיות מסוגל לאסוף יומנים עבור רכיב המשנה של המעקב. הגדרות הרישום ביומן הריקות נראות כך:
logging:
service:
pipelines:
default_pipeline:
receivers: []
ההגדרה הבאה service מגדירה צינור עיבוד נתונים עם המזהה custom_pipeline:
logging:
service:
pipelines:
custom_pipeline:
receivers:
- RECEIVER_ID
processors:
- PROCESSOR_ID
הגדרות של מדדים
ההגדרה metrics משתמשת במודל ההגדרה שתואר קודם:
-
receivers: רשימה של הגדרות של נמענים.receiverמתאר את המקור של המדדים. לדוגמה, מדדי מערכת כמוcpuאוmemory. אפשר לשתף את הרכיבים ברשימה הזו בין כמה צינורות. -
processors: רשימה של הגדרות מעבד.processorמתאר איך לשנות את המדדים שנאספים על ידי מקלט. -
service: מכיל קטעpipelinesשהוא רשימה של הגדרותpipeline.pipelineמקשר בין רשימה שלreceiversורשימה שלprocessorsכדי ליצור את זרימת הנתונים.
בקטעים הבאים מתואר כל אחד מהרכיבים האלה.
סוכן תפעול שולח מדדים ל-Cloud Monitoring. אי אפשר להגדיר אותו לייצוא מדדים לשירותים אחרים.
מקבלים של מדדים
הרכיב receivers מכיל קבוצה של הגדרות של מקלטים. מקבל
מתאר מאיפה לאחזר את המדדים, כמו cpu ו-memory.
אפשר לשתף מקלט בין כמה צינורות.
המבנה של מקבלי מדדים
לכל נמען צריך להיות מזהה, RECEIVER_ID, והוא צריך לכלול רכיב type. הסוגים המובנים התקינים הם:
hostmetrics-
iis(Windows בלבד) -
mssql(Windows בלבד)
הנמען יכול גם לציין את האפשרות collection_interval. הערך הוא משך זמן בפורמט של משך, לדוגמה, 30s או 2m. ערך ברירת המחדל הוא 60s.
כל אחד מסוגי המקבלים האלה אוסף קבוצה של מדדים. מידע על המדדים הספציפיים שכלולים מופיע במאמר מדדים שנקלטים על ידי המקבלים.
שינוי מרווח האיסוף במקבלי המדדים
יכול להיות שיהיה צורך בהתראות מהירות לגבי עומסי עבודה קריטיים מסוימים. כדי להגדיר התראות רגישות יותר, אפשר לקצר את מרווח האיסוף של המדדים. מידע על אופן ההערכה של ההתראות זמין במאמר התנהגות של מדיניות התראות שמבוססת על מדדים.
לדוגמה, המקלט הבא משנה את מרווח האיסוף של מדדי המארח (מזהה המקלט הוא hostmetrics) מברירת המחדל של 60 שניות ל-10 שניות:
metrics:
receivers:
hostmetrics:
type: hostmetrics
collection_interval: 10s
באותה שיטה אפשר גם לשנות את מרווח האיסוף של מקבלי המדדים של Windows iis ו-mssql.
מדדים שנקלטים על ידי הנמענים
למדדים שמוטמעים על ידי Ops Agent יש מזהים שמתחילים בדפוס הבא: agent.googleapis.com/GROUP.
רכיב GROUP מזהה קבוצה של מדדים קשורים. הערכים שלו הם cpu, network ועוד.
מקלט hostmetrics
מקלט hostmetrics קולט את קבוצות המדדים הבאות. מידע נוסף זמין בקטע המקושר לכל קבוצה בדף מדדים של סוכן תפעול.
| קבוצה | מדד |
|---|---|
cpu
|
עומס על המעבד במרווחי זמן של דקה עומס על המעבד במרווחי זמן של 5 דקות עומס על המעבד במרווחי זמן של 15 דקות שימוש במעבד, עם תוויות של מספר המעבד ומצב המעבד אחוז השימוש במעבד, עם תוויות של מספר המעבד ומצב המעבד |
disk
|
Disk bytes read, with label for device Disk bytes written, with label for device Disk I/O time, with label for device Disk weighted I/O time, with label for device Disk pending operations, with label for device Disk merged operations, with labels for device and direction Disk operations, with labels for device and direction Disk operation time, with labels for device and direction Disk usage, with labels for device and state Disk utilization, with labels for device and state |
gpuל-Linux בלבד. מידע חשוב נוסף זמין במאמר בנושא מדדי gpu.
|
מספר הבייטים הנוכחי של זיכרון ה-GPU בשימוש, לפי מצב הכמות המקסימלית של זיכרון ה-GPU, בבייטים, שהוקצתה על ידי התהליך אחוז הזמן במהלך משך החיים של התהליך שבו ליבה אחת או יותר פעלה ב-GPU אחוז הזמן, מאז הדגימה האחרונה, שבו ה-GPU היה פעיל |
interfaceב-Linux בלבד |
המספר הכולל של שגיאות ברשת המספר הכולל של חבילות נתונים שנשלחו ברשת המספר הכולל של בייטים שנשלחו ברשת |
memory
|
השימוש בזיכרון, עם תווית למצב (buffered, cached, free, slab, used) אחוז השימוש בזיכרון, עם תווית למצב (buffered, cached, free, slab, used) |
network
|
מספר חיבורי TCP, עם תוויות של יציאה ומצב TCP |
swap
|
החלפת פעולות קלט/פלט, עם תווית לכיוון החלפת בייטים בשימוש, עם תוויות למכשיר ולמצב החלפת אחוז השימוש, עם תוויות למכשיר ולמצב |
pagefileWindows בלבד |
האחוז הנוכחי של קובץ ההחלפה שנעשה בו שימוש לפי מצב |
processes
|
מספר התהליכים, עם תווית למצב מספר התהליכים המפוצלים קריאת קלט/פלט בדיסק לכל תהליך, עם תוויות לשם התהליך + אחרים כתיבת קלט/פלט בדיסק לכל תהליך, עם תוויות לשם התהליך + אחרים שימוש ב-RSS לכל תהליך, עם תוויות לשם התהליך + אחרים שימוש במכונה וירטואלית לכל תהליך, עם תוויות לשם התהליך + אחרים |
מקלט iis (Windows בלבד)
ה-iis receiver (רק ב-Windows) קולט מדדים של קבוצת ה-iis.
מידע נוסף זמין בדף מדדים של סוכנים.
| קבוצה | מדד |
|---|---|
iisWindows בלבד |
חיבורים פתוחים כרגע ל-IIS בייטים ברשת שהועברו על ידי IIS חיבורים שנפתחו ל-IIS בקשות שנשלחו ל-IIS |
מקלט mssql (Windows בלבד)
ה-mssql receiver (רק ב-Windows) קולט מדדים של קבוצת ה-mssql. מידע נוסף זמין בדף מדדים של סוכן תפעול.
| קבוצה | מדד |
|---|---|
mssqlWindows בלבד |
חיבורים פתוחים כרגע לשרת SQL סך העסקאות לשנייה בשרת SQL עסקאות כתיבה לשנייה בשרת SQL |
מעבדי מדדים
הרכיב processor מכיל קבוצה של הגדרות מעבד. מעבד
מתאר מדדים מסוג הרסיבר להחרגה. הסוג הנתמך היחיד הוא exclude_metrics, שמקבל אפשרות metrics_pattern. הערך הוא רשימה של תבניות glob שתואמות לסוגי המדדים של סוכן תפעול שרוצים להחריג מהקבוצה שנאספת על ידי מקלט. לדוגמה:
- כדי להחריג את כל מדדי המעבד של הסוכן,
מציינים
agent.googleapis.com/cpu/*. - כדי להחריג את מדד ניצול המעבד של הסוכן, מציינים
agent.googleapis.com/cpu/utilization. - כדי לא לכלול את מדד מספר הבקשות בצד הלקוח במדדים שנאספים על ידי שילוב צד שלישי של Apache Cassandra, צריך לציין
workloads.googleapis.com/cassandra.client.request.count. - כדי להחריג את כל המדדים בצד הלקוח מהמדדים שנאספים על ידי שילוב צד שלישי של Apache Cassandra, מציינים
workloads.googleapis.com/cassandra.client.*.
מעבד מדדים לדוגמה
בדוגמה הבאה מוצג המעבד exclude_metrics שסופק בתצורות המובנות. המעבד הזה מספק ערך ריק metrics_pattern
ולכן הוא לא מחריג אף מדד.
processors:
metrics_filter:
type: exclude_metrics
metrics_pattern: []
כדי להשבית את איסוף כל מדדי התהליך על ידי סוכן תפעול, מוסיפים את השורות הבאות לקובץ config.yaml:
metrics:
processors:
metrics_filter:
type: exclude_metrics
metrics_pattern:
- agent.googleapis.com/processes/*
המדדים האלה לא נכללים באוסף המדדים של התהליך בmetrics_filter
מעבד שחל על צינור ברירת המחדל בשירות metrics.
שירות המדדים
שירות המדדים מתאים אישית את דרגת המלל של היומנים של מודול המדדים של סוכן תפעול, ומקשר בין מקבלי מדדים לבין מעבדי מדדים כדי ליצור פייפליינים. הקטע service כולל שני רכיבים: log_level ו-pipelines.
רמת הפירוט של המדדים
log_level, שזמין בגרסאות 2.6.0 ואילך של סוכן תפעול, משמש להתאמה אישית של רמת הפירוט ביומנים של מודול המשנה של מדדי סוכן תפעול. ערך ברירת המחדל הוא info.
האפשרויות הזמינות הן: error, warn, info, debug.
צינורות עיבוד נתונים של מדדים
בקטע service יש רכיב אחד, pipelines, שיכול להכיל כמה מזהים והגדרות של צינורות עיבוד נתונים. כל הגדרה של pipeline מורכבת מהרכיבים הבאים:
receivers: חובה לצינורות חדשים. רשימה של מזהי מקלטים, כפי שמתואר במאמר בנושא מקלטי מדדים. אין חשיבות לסדר המזהים של הנמענים ברשימה. צינור הנתונים אוסף נתונים מכל המקורות שמופיעים ברשימה.
processors: אופציונלי. רשימה של מזהי מעבדים, כמו שמתואר במאמר בנושא מעבדי מדדים. הסדר של מזהי המעבדים ברשימה חשוב. כל נקודת מדד עוברת דרך המעבדים לפי הסדר שמופיע ברשימה.
דוגמאות להגדרות של מדדים service
הגדרות service כוללות את המבנה הבא:
service:
log_level: CUSTOM_LOG_LEVEL
pipelines:
PIPELINE_ID:
receivers: [...]
processors: [...]
PIPELINE_ID_2:
receivers: [...]
processors: [...]
כדי להשבית את ההטמעה המובנית של מדדי המארח, צריך להגדיר מחדש את צינור ברירת המחדל עם רשימה ריקה של receivers וללא מעבדים. הגדרת המדדים המלאה נראית כך:
metrics:
service:
pipelines:
default_pipeline:
receivers: []
בדוגמה הבאה מוצגת ההגדרה המובנית service עבור Windows:
metrics:
service:
pipelines:
default_pipeline:
receivers:
- hostmetrics
- iis
- mssql
processors:
- metrics_filter
ההגדרה המותאמת אישית service הבאה משנה את רמת הפירוט של היומן של מודול המשנה metrics ל-debug:
metrics:
service:
log_level: debug
איסוף יומנים של עצמי
כברירת מחדל, היומנים העצמיים של Fluent Bit ב-Ops Agent נשלחים אל Cloud Logging. היומנים האלה יכולים לכלול הרבה מידע, והנפח הנוסף עשוי להגדיל את העלויות שלכם לשימוש ב-Cloud Logging.
אפשר להשבית את האיסוף של יומני הפעילות האלה החל מגרסה 2.44.0 של סוכן תפעול, באמצעות האפשרות default_self_log_file_collection.
כדי להשבית את האיסוף של יומני רישום עצמיים, מוסיפים קטע global לקובץ ההגדרות שצוין על ידי המשתמש ומגדירים את האפשרות default_self_log_file_collection לערך false:
logging: ... metrics: ... global: default_self_log_file_collection: false
הגדרות החלפת יומנים
החל מגרסה 2.31.0 של סוכן תפעול, אפשר גם להגדיר את התכונה של החלפת יומנים באמצעות קובצי תצורה. מידע נוסף זמין במאמר בנושא הגדרת החלפת יומנים ב-סוכן תפעול.