התאמה אישית של הגדרות סוכן התפעול מאפשרת לכם לקבוע איך הסוכן אוסף, מנתח ומנתב יומנים, מדדים ומעקבים מהמכונות הווירטואליות של Compute Engine. למרות שסוכן תפעול כולל הגדרת ברירת מחדל מובנית ליומני מערכת נפוצים ולמדדי מארח, אתם יכולים להגדיר שינויים מותאמים אישית כדי להתאים את איסוף הטלמטריה לעומסי העבודה שלכם.
משימות הגדרה נפוצות
אפשר לשנות את ההגדרות של סוכן תפעול כדי להשיג את היעדים הבאים:
משביתים את הרישום המובנה ביומן או את הטמעת המדדים:
כדי להשבית את הטמעת היומנים, קראו את המאמר דוגמאות להגדרות של רישום ביומן ב-
service.כדי להשבית את הטמעת המדדים של המארח, ראו דוגמאות להגדרות של מדדי
service.
להתאים אישית את נתיב הקובץ של קובצי היומן שהסוכן אוסף מהם יומנים. מידע נוסף זמין במאמר מקלטי רישום ביומן.
התאמה אישית של פורמט היומן המובנה שבו הסוכן משתמש כדי לעבד את רשומות היומן, על ידי ניתוח ה-JSON או באמצעות ביטויים רגולריים. מידע נוסף זמין במאמר מעבדי רישום ביומן.
לשנות את תדירות הדגימה של המדדים; ראו מקלטי מדדים.
אתם יכולים לבחור איזו קבוצה או קבוצות של מדדים להפעיל. כברירת מחדל, הסוכן אוסף את כל מדדי המערכת, כמו
cpuו-memory. למידע נוסף, ראו מעבדי מדדים.להתאים אישית את האופן שבו הסוכן מחליף יומנים; ראו הגדרת החלפת יומנים.
לאסוף מדדים ויומנים מאפליקציות נתמכות של צד שלישי. רשימת האפליקציות הנתמכות מופיעה במאמר מעקב אחרי אפליקציות של צד שלישי.
משתמשים במקלט של Prometheus כדי לאסוף מדדים בהתאמה אישית.
משתמשים במקלט של OpenTelemetry Protocol (OTLP) כדי לאסוף מדדים מותאמים אישית ומעקבים.
מודל ההגדרות האישיות
לסוכן תפעול יש הגדרת ברירת מחדל מובנית, ואי אפשר לשנות אותה ישירות. במקום זאת, יוצרים קובץ של שינויים שממוזגים עם ההגדרות המובנות כשהסוכן מופעל מחדש.
אבני הבניין של ההגדרה הן:
-
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
כל הגדרה שהמשתמשים מציינים מתמזגת עם ההגדרה המובנית כשה-agent מופעל מחדש.
כדי לשנות מקלט, מעבד או צינור עיבוד נתונים מובנה, מגדירים אותו מחדש בקובץ config.yaml על ידי הצהרה עליו עם אותו מזהה.
החל מגרסה 2.31.0 של סוכן תפעול, אפשר גם להגדיר את תכונת החלפת היומנים של הסוכן. מידע נוסף זמין במאמר הגדרת החלפת יומנים ב-Ops Agent.
לדוגמה, ההגדרה המובנית למדדים כוללת מקלט hostmetrics שמציין מרווח איסוף של 60 שניות. כדי לשנות את מרווח הזמן לאיסוף מדדי המארח ל-30 שניות, צריך לכלול מקלט מדדים בשם hostmetrics בקובץ config.yaml שמגדיר את הערך של collection_interval ל-30 שניות, כמו בדוגמה הבאה:
metrics:
receivers:
hostmetrics:
type: hostmetrics
collection_interval: 30s
דוגמאות נוספות לשינוי ההגדרות המובנות מופיעות במאמרים הגדרת רישום ביומן והגדרת מדדים.
אפשר גם להשבית את האיסוף של נתוני הרישום ביומן או של נתוני המדדים. השינויים האלה מתוארים בדוגמאות להגדרות service של רישום ביומן ולהגדרות service של מדדים.
אתם יכולים להשתמש בקובץ הזה כדי למנוע מהסוכן לאסוף יומנים עצמיים ולשלוח אותם ל-Cloud Logging. מידע נוסף מופיע במאמר איסוף של יומני רישום עצמיים.
באמצעות הקובץ הזה אפשר גם להגדיר את תכונת החלפת היומנים של סוכן תפעול. מידע נוסף זמין במאמר הגדרת החלפת יומנים ב-Ops Agent.
אי אפשר להגדיר את סוכן תפעול לייצא יומנים או מדדים לשירותים אחרים מלבד Cloud Logging ו-Cloud Monitoring.
הגדרות רישום ביומן
ההגדרה של logging משתמשת במודל ההגדרה שמתואר למעלה:
-
receivers: הרכיב הזה מתאר את הנתונים שצריך לאסוף מקובצי היומן. הנתונים האלה ממופים למודל <timestamp, record>. -
processors: הרכיב האופציונלי הזה מתאר איך הסוכן יכול לשנות את המידע שנאסף. -
service: הרכיב הזה מקשר בין מקלטים למעבדים כדי ליצור תהליכי נתונים שנקראים צינורות עיבוד נתונים. הרכיבserviceמכיל רכיבpipelines, שיכול לכלול כמה הגדרות של צינור עיבוד נתונים.
אפשר להשתמש בכל מקלט ובכל מעבד בכמה צינורות עיבוד נתונים.
בקטעים הבאים מתוארים כל אחד מהרכיבים האלה.
סוכן התפעול שולח יומנים ל-Cloud Logging. אי אפשר להגדיר אותו לייצוא יומנים לשירותים אחרים. עם זאת, אתם יכולים להגדיר את Cloud Logging לייצוא יומנים. מידע נוסף זמין במאמר ניתוב יומנים ליעדים נתמכים.
מקבלים של רישום ביומן
הרכיב receivers מכיל קבוצה של נמענים, שכל אחד מהם מזוהה באמצעות RECEIVER_ID. מקלט מתאר איך לאחזר את היומנים, למשל באמצעות קובצי tail, באמצעות יציאת 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, יכול להיות שיהיו אפשרויות הגדרה נוספות, כמו:
filesמקלטים:
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_forwardמקלטים:
listen_host: אופציונלי. כתובת IP להאזנה. ערך ברירת המחדל הוא127.0.0.1.
listen_port: אופציונלי. יציאה להאזנה. ערך ברירת המחדל הוא24224.
מקלט
syslog(ל-Linux בלבד):transport_protocol: ערכים נתמכים:tcp,udp.
listen_host: כתובת IP להאזנה.
listen_port: יציאה להאזנה.
tcpמקלטים:
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
שדות מיוחדים במטענים מובְנים
במעבדים ובמקבלים שיכולים להטמיע נתונים מובְנים (המקבלים fluent_forward ו-tcp והמעבד parse_json), אפשר להגדיר שדות מיוחדים בקלט שימופו לשדות ספציפיים באובייקט LogEntry שהסוכן כותב ב-Logging API.
כש-Ops Agent מקבל נתוני יומן מובנים חיצוניים, הוא ממקם את השדות ברמה העליונה בשדה jsonPayload של LogEntry, אלא אם שם השדה מופיע בטבלה הבאה:
| שדה הרשומה | השדה LogEntry |
|---|---|
|
אפשרות 1 אפשרות 2 |
timestamp |
| receiver_id (לא שדה של רשומה) | logName |
logging.googleapis.com/httpRequest (HttpRequest) |
httpRequest |
logging.googleapis.com/severity (מחרוזת) |
severity |
logging.googleapis.com/labels (מבנה של 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
|
| jetty |
/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, קראו את המאמר מעקב אחרי אפליקציות של צד שלישי: 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: ניתוח של יומנים בפורמט טקסט באמצעות דפוסי ביטויים רגולריים כדי להפוך אותם ליומנים מובְנים בפורמט 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>
המעבד (processor) של 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 של הרשומה ביומן. כברירת מחדל, מקלט הקבצים ממקם כל שורה בקובץ היומן ברשומת יומן עם שדה מטען ייעודי (payload) אחד שנקרא 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
ה-agent מעביר כל שורה מקובץ היומן ל-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>.*)$".הטקסט שתואם לקבוצות לחילוץ עם שם ימוקם בשדות בשדה
jsonPayloadשלLogEntry. כדי להוסיף מבנה ליומנים, השתמשו במעבד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 Agent לא מטמיע את הרשומה הזו.היומנים שמוטמעים על ידי סוכן התפעול תואמים למבנה של
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>אם המסנן תואם לרשומת היומן של הקלט, שדה הפלט לא יוגדר. אפשר להשתמש בפונקציה הזו כדי להסיר ערכים זמניים לשמירת מקום (פלייסהולדרים), כמו:
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 משדות ביומנים.
שירות רישום ביומן
שירות הרישום ביומן מתאים אישית את דרגת המלל של היומנים של סוכן תפעול, ומקשר בין מקבלי היומנים לבין מעבדי היומנים בצינורות עיבוד נתונים. הקטע service כולל את הרכיבים הבאים:
log_levelpipelines
רמת הפירוט של היומן
השדה log_level, שזמין בגרסאות 2.6.0 ואילך של Ops Agent, מאפשר להתאים אישית את דרגת המלל של היומנים של מודול המשנה לרישום ביומן של Ops Agent. ערך ברירת המחדל הוא 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
באותה שיטה אפשר גם לשנות את מרווח הזמן לאיסוף של מקלטי המדדים iis ו-mssql ב-Windows.
מדדים שנקלטו על ידי המקלטים
למדדים שנקלטים על ידי סוכן תפעול יש מזהים שמתחילים בתבנית הבאה: agent.googleapis.com/GROUP.
הרכיב GROUP מזהה קבוצה של מדדים קשורים, ויש לו ערכים כמו cpu, network וערכים אחרים.
המקלט hostmetrics
המקלט hostmetrics מטמיע את קבוצות המדדים הבאות. למידע נוסף, עיינו בקטע המקושר לכל קבוצה בדף המדדים של סוכן תפעול.
| קבוצה | מדד |
|---|---|
cpu
|
עומס על המעבד (CPU) במרווחים של דקה אחת עומס על המעבד (CPU) במרווחים של 5 דקות עומס על המעבד (CPU) במרווחים של 15 דקות שימוש במעבד (CPU), עם תוויות למספר המעבד ולמצב המעבד אחוז השימוש במעבד (CPU), עם תוויות למספר המעבד ולמצב המעבד |
disk
|
בייטים שנקראו בדיסק, עם תווית למכשיר בייטים שנכתבו בדיסק, עם תווית למכשיר זמן קלט/פלט בדיסק, עם תווית למכשיר זמן קלט/פלט משוקלל בדיסק, עם תווית למכשיר פעולות בהמתנה בדיסק, עם תווית למכשיר פעולות ממוזגות בדיסק, עם תוויות למכשיר ולכיוון פעולות בדיסק, עם תוויות למכשיר ולכיוון זמן פעולה בדיסק, עם תוויות למכשיר ולכיוון שימוש בדיסק, עם תוויות למכשיר ולמצב ניצול הדיסק, עם תוויות למכשיר ולמצב |
gpuב-Linux בלבד. מידע חשוב נוסף זמין במאמר מידע על המדדים של gpu.
|
מספר הבייטים הנוכחי של זיכרון ה-GPU שנעשה בהם שימוש, לפי מצב הכמות המקסימלית של זיכרון ה-GPU, בבייטים, שהוקצתה על ידי התהליך אחוז הזמן במהלך חיי התהליך שבו ליבה אחת או יותר פעלה ב-GPU אחוז הזמן, מאז הדגימה האחרונה, שבו ה-GPU היה פעיל |
interfaceב-Linux בלבד |
המספר הכולל של שגיאות בחיבור לרשת המספר הכולל של חבילות הנתונים שנשלחו ברשת המספר הכולל של בייטים שנשלחו ברשת |
memory
|
שימוש בזיכרון, עם תווית למצב (מאגר, מטמון, פנוי, slab, בשימוש) אחוז השימוש בזיכרון, עם תווית למצב (מאגר, מטמון, פנוי, slab, בשימוש) |
network
|
מספר חיבורי ה-TCP, עם תוויות ליציאה ולמצב ה-TCP |
swap
|
פעולות קלט/פלט של החלפה, עם תווית לכיוון בייטים של החלפה בשימוש, עם תוויות למכשיר ולמצב אחוז החלפה בשימוש, עם תוויות למכשיר ולמצב |
pagefileWindows בלבד |
האחוז הנוכחי של קובץ ההחלפה (pagefile) בשימוש לפי מצב |
processes
|
מספר התהליכים, עם תווית למצב מספר התהליכים המפוצלים קלט/פלט של קריאה מהדיסק לכל תהליך, עם תוויות לשם התהליך + אחרים קלט/פלט של כתיבה לדיסק לכל תהליך, עם תוויות לשם התהליך + אחרים שימוש ב-RSS לכל תהליך, עם תוויות לשם התהליך + אחרים שימוש במכונה וירטואלית לכל תהליך, עם תוויות לשם התהליך + אחרים |
מקלט iis (Windows בלבד)
המקלט iis (ב-Windows בלבד) מטמיע מדדים של הקבוצה iis.
למידע נוסף, קראו את הדף מדדי נציג.
| קבוצה | מדד |
|---|---|
iisWindows בלבד |
חיבורים פתוחים כרגע ל-IIS בייטים ברשת שהועברו על ידי IIS חיבורים שנפתחו ל-IIS בקשות שנשלחו ל-IIS |
מקלט mssql (Windows בלבד)
המקלט mssql (ב-Windows בלבד) מטמיע מדדים של הקבוצה mssql. למידע נוסף, ראו את הדף מדדים של סוכן תפעול.
| קבוצה | מדד |
|---|---|
mssqlWindows בלבד |
חיבורים פתוחים כרגע לשרת SQL סך כל העסקאות בשנייה בשרת SQL עסקאות כתיבה בשנייה בשרת SQL |
מעבדי מדדים
הרכיב processor מכיל קבוצה של הגדרות מעבדים. מעבד (processor) מתאר מדדים מסוג המקלט שצריך להחריג. הסוג היחיד שנתמך הוא exclude_metrics, שמקבל את האפשרות metrics_pattern. הערך הוא רשימה של תבניות glob שתואמות לסוגי המדדים של סוכן תפעול שרוצים להחריג מהקבוצה שנאספת על ידי מקלט. לדוגמה:
- כדי להחריג את כל מדדי המעבד (CPU) של הסוכן, מציינים את הערך
agent.googleapis.com/cpu/*. - כדי להחריג את המדד של ניצול ה-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 משנה את דרגת המלל של היומן במודול המשנה של המדדים ל-debug:
metrics:
service:
log_level: debug
איסוף יומנים עצמיים
כברירת מחדל, יומני ה-Fluent Bit של סוכן התפעול נשלחים ל-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 של Ops Agent, אפשר גם להגדיר את תכונת החלפת היומנים של הסוכן באמצעות קובצי התצורה. מידע נוסף זמין במאמר הגדרת החלפת יומנים ב-סוכן תפעול.