במאמר הזה מוסבר איך לאבחן ולפתור בעיות בהתקנה ובהפעלה של סוכן תפעול. אם הסוכן פועל אבל לא מצליח להטמיע יומנים או מדדים, כדאי לעיין במאמר בנושא פתרון בעיות בהטמעת נתונים.
לפני שמתחילים
לפני שמנסים לפתור בעיה, כדאי לבדוק את הסטטוס של בדיקות התקינות של הסוכן.
התקנת הסוכן נכשלת
יכול להיות שתיתקלו בשגיאות הבאות כשמריצים את סקריפט ההתקנה.
מערכת ההפעלה לא נתמכת
אם מערכת ההפעלה לא נתמכת, ההתקנה של סוכן תפעול נכשלת. הודעת השגיאה עשויה להיראות כך:
Linux
https://packages.cloud.google.com/yum/repos/google-cloud-ops-agent-el6-x86_64-all/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found" Trying other mirror. To address this issue please refer to the below wiki article https://wiki.centos.org/yum-errors If above article doesn't help to resolve this issue please use https://bugs.centos.org/. Error: Cannot retrieve repository metadata (repomd.xml) for repository: google-cloud-ops-agent. Please verify its path and try again
מותקן סוכן מדור קודם שמתנגש עם סוכן התפעול
אם במכונת ה-VM כבר מותקן סוכן Cloud Logging או סוכן Cloud Monitoring, הם יתנגשו עם הסוכן החדש. הודעת השגיאה עשויה להיראות כך:
Linux
Error: Problem: problem with installed package stackdriver-agent-6.0.5-1.el8.x86_64 - package google-cloud-ops-agent-0.1.0-1.el8.x86_64 conflicts with stackdriver-agent provided by stackdriver-agent-6.0.5-1.el8.x86_64
סוכן התפעול משתמש בקובצי תצורה חדשים שלא תואמים לסוכנים הישנים. למידע נוסף, אפשר לעיין במדריך בנושא הגדרת סוכן תפעול.
כדי לפתור את השגיאה:
שומרים את קובצי ההגדרות בהתאמה אישית של סוכן Cloud Monitoring ושל סוכן Cloud Logging.
מסירים את הגרסה הישנה של סוכן Cloud Monitoring ושל סוכן Cloud Logging.
אחרי שמסירים את הסוכן, יכול להיות שיעבור עד שעה עד שהשינוי יופיע במסוף Google Cloud .
התקנת סוכן התפעול נכשלת אחרי התקנה כושלת של סוכן Monitoring
ההתקנה של Ops Agent נכשלת אחרי ניסיון כושל להתקין את סוכן Monitoring. במערכת הפעלה מסוג Debian, הודעות השגיאה שמוצגות אם סוכן תפעול נכשל בהתקנה דומות להודעות הבאות:
Linux
... E: The repository 'https://packages.cloud.google.com/apt google-cloud-monitoring-jammy-all Release' does not have a Release file. ... Could not refresh the google-cloud-ops-agent apt repositories.
אם מנסים להתקין את סוכן המעקב במערכת הפעלה שלא נתמכת על ידי הסוכן, ההתקנה נכשלת. ההתקנה נכשלת אחרי שמאגר הסוכן של Monitoring נוסף למערכת. התקנת סוכן התפעול אחרי התקנה שנכשלה של סוכן Monitoring נכשלת גם היא בגלל מאגר לא תקין של סוכן Monitoring.
לא כל מערכות ההפעלה שנתמכות על ידי סוכן תפעול נתמכות גם על ידי Monitoring agent. מידע על מערכות הפעלה נתמכות זמין במאמרים סוכן תפעול: Linux operating systems ו-Monitoring agent: Linux operating systems.
כדי להתקין את סוכן תפעול:
מסירים את המאגר של סוכן המעקב:
אם הסקריפט
add-monitoring-agent-repo.shנמצא במערכת, מריצים את הפקודה הבאה:sudo bash add-monitoring-agent-repo.sh --remove-repo
אחרת, מסירים את המאגר באופן ידני:
Debian
sudo rm /etc/apt/sources.list.d/google-cloud-monitoring.list
RHEL
sudo rm /etc/yum.repos.d/google-cloud-monitoring.repo
Suse
sudo rm /etc/zypp/repos.d/google-cloud-monitoring.repo
מריצים את סקריפט ההתקנה של סוכן תפעול.
התקנת סוכן תפעול נכשלת כי רענון המאגר נכשל
ההתקנה של סוכן תפעול נכשלת כי רענון המאגרים המותקנים נכשל.
Linux
דוגמה להודעת הכשל במערכת הפעלה של Debian, שבה רענון המאגר מתרחש בגלל קריאה ל-apt-get update, אפשר לראות בערך לפתרון בעיות התקנת Ops Agent נכשלת אחרי התקנה שנכשלה של Monitoring agent.
אם נתקלתם בבעיות כשניסיתם לרענן את המאגרים, תצטרכו לפתור אותן לפני שתוכלו להתקין את סוכן תפעול. יכול להיות שאפשר לפתור את הכשלים האלה על ידי מחיקה או השבתה של מאגרי מידע שלא נחוצים.
אחרי שתוכלו לרענן את המאגרים, תוכלו להתקין את סוכן התפעול על ידי הרצת סקריפט ההתקנה של סוכן התפעול.
רענון המאגר נכשל כי המפתח הציבורי לא זמין
Linux
רענון המאגר, בגלל קריאה אל apt-get update, נכשל כי המפתח הציבורי לא זמין. השגיאה הזו יכולה להופיע גם כשמתקינים את Ops Agent או משדרגים אותו. יכול להיות שתופיע השגיאה הבאה:
W: GPG error: http://packages.cloud.google.com/apt google-cloud-ops-agent-focal-all InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY C0BA5CE6DC6315A3
E: The repository 'http://packages.cloud.google.com/apt google-cloud-ops-agent-focal-all InRelease' is not signed.
כדי לפתור את השגיאה, מריצים את הפקודה הבאה כדי להוסיף את המפתח החסר למערכת:
curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \
| sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-ops-agent.gpg
הסוכן מותקן אבל לא פועל
אם התקנתם את הסוכן אבל הוא לא פועל, יכול להיות שהבעיה היא אחת מהבאות:
- אחד מהרכיבים העיקריים, Metrics Agent או Logging Agent, לא הופעל. אפשר לעיין במאמר שירותי הסוכן לא פועלים.
- אחד מהסוכנים מדור קודם מותקן גם ב-VM. ראו התנגשות עם סוכנים שמותקנים כרגע.
- יציאה שאחד מהרכיבים דורש נמצאת בשימוש על ידי תהליך אחר. מידע נוסף זמין במאמר יציאה לא זמינה.
- ההגדרה של סוכן תפעול לא תקינה. מידע נוסף זמין במאמר בנושא הגדרה לא תקינה.
שירותי הסוכן לא פועלים
כשסוכני השירות פועלים כצפוי, סוכן המדדים וסוכן הרישום מופיעים כפועלים כשמבצעים שאילתה לגבי הסטטוס:
ב-Linux
sudo systemctl status google-cloud-ops-agent"*"
חלק מהשורות בפלט נמחקו כדי שהפלט יהיה קצר יותר.
● google-cloud-ops-agent.service - Google Cloud Ops Agent
Loaded: loaded (/lib/systemd/system/google-cloud-ops-agent.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2023-05-03 21:22:28 UTC; 4 weeks 0 days ago
Process: 3353828 ExecStartPre=/opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_engine -in /etc/go>
Process: 3353837 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 3353837 (code=exited, status=0/SUCCESS)
CPU: 195ms
[...]
● google-cloud-ops-agent-opentelemetry-collector.service - Google Cloud Ops Agent - Metrics Agent
Loaded: loaded (/lib/systemd/system/google-cloud-ops-agent-opentelemetry-collector.service; static)
Active: active (running) since Wed 2023-05-03 21:22:29 UTC; 4 weeks 0 days ago
Process: 3353840 ExecStartPre=/opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_engine -service=ot>
Main PID: 3353855 (otelopscol)
Tasks: 9 (limit: 2355)
Memory: 65.3M
CPU: 40min 31.555s
CGroup: /system.slice/google-cloud-ops-agent-opentelemetry-collector.service
└─3353855 /opt/google-cloud-ops-agent/subagents/opentelemetry-collector/otelopscol --config=/run/g>
[...]
● google-cloud-ops-agent-fluent-bit.service - Google Cloud Ops Agent - Logging Agent
Loaded: loaded (/lib/systemd/system/google-cloud-ops-agent-fluent-bit.service; static)
Active: active (running) since Wed 2023-05-03 21:22:29 UTC; 4 weeks 0 days ago
Process: 3353838 ExecStartPre=/opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_engine -service=fl>
Main PID: 3353856 (google_cloud_op)
Tasks: 31 (limit: 2355)
Memory: 58.3M
CPU: 29min 6.771s
CGroup: /system.slice/google-cloud-ops-agent-fluent-bit.service
├─3353856 /opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_wrapper -config_path /etc/goo>
└─3353872 /opt/google-cloud-ops-agent/subagents/fluent-bit/bin/fluent-bit --config /run/google-clo>
[...]
ב-Windows
Get-Service google-cloud-ops-agent* Status Name DisplayName ------ ---- ----------- Running google-cloud-op... Google Cloud Ops Agent Running google-cloud-op... Google Cloud Ops Agent - Logging Agent Running google-cloud-op... Google Cloud Ops Agent - Metrics Agent
אם שירות הסוכן לא פועל, יכול להיות שיוצג הסטטוס הבא:
Linux
$ sudo service google-cloud-ops-agent status ● google-cloud-ops-agent.service - Google Cloud Ops Agent Loaded: loaded (/lib/systemd/system/google-cloud-ops-agent.service; enabled; vendor preset: enabled) Active: inactive (dead) since Wed 2021-06-30 21:20:43 UTC; 6s ago
Windows
Get-Service google-cloud-ops-agent Status Name DisplayName ------ ---- ----------- Stopped google-cloud-ops-agent Google Cloud Ops Agent
כדי לפתור את השגיאה, מריצים את הפקודה הבאה כדי להפעיל את השירות:
Linux
sudo service google-cloud-ops-agent start
Windows
Start-Service google-cloud-ops-agent
אם השירות לא מופעל, יכול להיות שההגדרה לא תקינה.
התנגשות עם סוכנים שמותקנים כרגע
במכונת ה-VM כבר מותקן סוכן Cloud Logging או סוכן Cloud Monitoring, וההגדרה שלהם מתנגשת עם ההגדרה של הסוכן החדש. הודעת השגיאה עשויה להיראות כך:
Windows
We detected an existing Windows service for the StackdriverLogging agent, which is not compatible with the Ops Agent when the Ops Agent configuration has a non-empty logging section. Please either remove the logging section from the Ops Agent configuration, or disable the StackdriverLogging agent, and then retry enabling the Ops Agent.
כדי לפתור את השגיאה, יש שתי אפשרויות:
משביתים את הקטע שגורם להתנגשות בקובץ התצורה של סוכן תפעול. למידע נוסף, אפשר לעיין במדריך בנושא הגדרת סוכן תפעול.
משביתים את סוכן Cloud Logging או את סוכן Cloud Monitoring שגורמים להתנגשות.
- שומרים את קובצי ההגדרות המותאמים אישית של הסוכן של Cloud Logging.
- מסירים את הגרסה הישנה של סוכן Cloud Monitoring ושל סוכן Cloud Logging.
אחרי שמסירים את הסוכן, יכול להיות שיעבור עד שעה עד שהשינוי יופיע במסוף Google Cloud .
היציאה הנדרשת לא זמינה
יכול להיות שהסוכן לתפעול או אחד מהרכיבים שלו לא יופעלו אם יציאה שנדרשת לרכיב נמצאת בשימוש של תהליך אחר. סוכן התפעול משתמש ביציאות הבאות:
- יציאה 20201, לרכיב Metrics Agent
- יציאה 20202, לרכיב Logging Agent
אם תהליך אחר שאינו רכיב של סוכן תפעול משתמש ביציאה 20201 או ביציאה 20202, צריך לעצור את התהליך הזה ולהפעיל מחדש את סוכן תפעול. כדי לזהות איזה תהליך משתמש ביציאות, מבצעים את השלבים הבאים:
Linux
רכיב Metrics Agent: כדי לראות איזה תהליך משתמש ביציאה 20201, משתמשים בפקודה הבאה:
sudo netstat -ns -p | grep '20201'
הפלט הבא מציג את התוצאה הצפויה:
הכלי לאיסוף מדדים של סוכן תפעול, otelopscol, משתמש ביציאה:
tcp 0 0 127.0.0.1:50138 127.0.0.1:20201 ESTABLISHED 16850/otelopscol tcp6 0 0 :::20201 :::* LISTEN 16850/otelopscol tcp6 0 0 127.0.0.1:20201 127.0.0.1:50138 ESTABLISHED 16850/otelopscol
רכיב Logging Agent: כדי לראות איזה תהליך משתמש ביציאה 20202, משתמשים בפקודה הבאה:
sudo netstat -ns -p | grep '20202'
בפלט הבא מוצגת התוצאה הצפויה:
כלי האיסוף של יומני סוכן תפעול, fluent-bit, משתמש ביציאה:
tcp 0 0 0.0.0.0:20202 0.0.0.0:* LISTEN 16640/fluent-bit tcp 0 0 127.0.0.1:20202 127.0.0.1:52998 TIME_WAIT -
Windows
רכיב Metrics Agent: כדי לראות איזה תהליך משתמש ביציאה 20201, משתמשים בפקודה הבאה:
netstat -na -b | Select-String "20201" -Context 0,1
הפלט הבא מציג את התוצאה הצפויה: כלי איסוף המדדים של Ops Agent, google-cloud-metrics-agent_windows_amd64.exe, משתמש ביציאה:
> TCP 0.0.0.0:20201 0.0.0.0:0 LISTENING [google-cloud-metrics-agent_windows_amd64.exe] > TCP 127.0.0.1:20201 127.0.0.1:50090 ESTABLISHED [google-cloud-metrics-agent_windows_amd64.exe] > TCP 127.0.0.1:50090 127.0.0.1:20201 ESTABLISHED [google-cloud-metrics-agent_windows_amd64.exe] > TCP [::]:20201 [::]:0 LISTENING [google-cloud-metrics-agent_windows_amd64.exe]
רכיב Logging Agent: כדי לראות איזה תהליך משתמש ביציאה 20202, משתמשים בפקודה הבאה:
netstat -na -b | Select-String "20202" -Context 0,1
בדוגמה הבאה מוצגת התוצאה הצפויה:
הכלי לאיסוף יומנים של סוכן תפעול, fluent-bit.exe, משתמש ביציאה:
> TCP 0.0.0.0:20202 0.0.0.0:0 LISTENING
[fluent-bit.exe]
> TCP 127.0.0.1:20202 127.0.0.1:57535 TIME_WAIT
> TCP 127.0.0.1:20202 127.0.0.1:57539 TIME_WAIT
TCP 127.0.0.1:49807 127.0.0.1:49808 ESTABLISHED
אפשר לזהות שגיאות שקשורות לזמינות של יציאות באמצעות בדיקות התקינות שמבוצעות על ידי סוכן תפעול.
לסוכן אין הרשאות API
אם הסוכן לא מופעל או לא מעביר נתונים, יכול להיות שהבעיה היא שלרכיב Metrics Agent או לרכיב סוכן Logging אין את ההרשאה הנדרשת לגשת ל-API.
חשבון השירות שבו משתמשים ב-סוכן תפעול צריך את התפקידים הבאים בניהול זהויות והרשאות גישה (IAM):
- רכיב Logging Agent: Logs Writer (
roles/logging.logWriter) - לרכיב Metrics Agent: Monitoring Metric Writer (
roles/monitoring.metricWriter).
התפקידים האלה כוללים את ההרשאות שנדרשות לכתיבת נתוני רישום או מדדים, והם צריכים להיות מוענקים לחשבון השירות שמשויך למכונה הווירטואלית. חשבון השירות שבו אתם משתמשים תלוי באופן שבו הגדרתם את המכונה הווירטואלית והרשיתם את הסוכן. יכול להיות שאתם משתמשים באחד מהדברים הבאים:
- חשבון שירות שמצורף למכונה הווירטואלית.
- חשבון שירות שמשתמש במפתח פרטי.
כדי לזהות את חשבון השירות שמשויך למכונה וירטואלית:
-
נכנסים לדף VM instances במסוף Google Cloud :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה עם כותרת המשנה Compute Engine.
אם צריך, לוחצים על הרשימה הנפתחת של Google Cloud פרויקטים ובוחרים את שם הפרויקט.
אם צריך, לוחצים על הכרטיסייה מופעים.
ברשימת מכונות ה-VM, לוחצים על שם מכונת ה-VM כדי להציג את הדף Details של מכונת ה-VM.
מוצאים את הקטע API and identity management (ממשק API וניהול זהויות) בדף. חשבון השירות מופיע כערך בשדה חשבון שירות.
במאמר אימות ושינוי של תפקידים בחשבון שירות קיים מוסבר איך מגדירים את התפקידים שמוענקים לחשבון השירות.
אפשר לזהות שגיאות בהרשאות API באמצעות בדיקות תקינות שמבוצעות על ידי סוכן תפעול.
הגדרות אישיות לא תקינות
אם ההגדרה לא תקינה, יכול להיות שתופיע השגיאה הבאה כשמנסים להפעיל מחדש את שירות הסוכן:
Linux
$ sudo service google-cloud-ops-agent restart \
&& sudo service google-cloud-ops-agent status
● google-cloud-ops-agent-fluent-bit.service - Google Cloud Ops Agent - Logging Agent
Loaded: loaded (/usr/lib/systemd/system/google-cloud-ops-agent-fluent-bit.service; static; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/google-cloud-ops-agent-fluent-bit.service.d
└─directories.conf
Active: failed (Result: exit-code) since Wed 2021-06-30 22:21:08 UTC; 2s ago
Process: 1141421 ExecStart=/opt/google-cloud-ops-agent/subagents/fluent-bit/bin/fluent-bit --config ${RUNTIME_DIRECTORY}/fluent_bit_main.conf --parser ${RUNTIME_DIRECTORY}/fluent_bit_parser.conf --log_>
Process: 1141847 ExecStartPre=/opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_engine -service=fluentbit -in /etc/google-cloud-ops-agent/config.yaml -logs ${LOGS_DIRECTORY} -state ${STATE_DIR>
Main PID: 1141421 (code=exited, status=0/SUCCESS)
Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Control process exited, code=exited status=1
Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Failed with result 'exit-code'.
Jun 30 22:21:08 centos8-2 systemd[1]: Failed to start Google Cloud Ops Agent - Logging Agent.
Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Service RestartSec=100ms expired, scheduling restart.
Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Scheduled restart job, restart counter is at 5.
Jun 30 22:21:08 centos8-2 systemd[1]: Stopped Google Cloud Ops Agent - Logging Agent.
Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Start request repeated too quickly.
Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Failed with result 'exit-code'.
Jun 30 22:21:08 centos8-2 systemd[1]: Failed to start Google Cloud Ops Agent - Logging Agent.
משתמשים ב-journalctl כדי לקבל את הודעת השגיאה המדויקת:
sudo journalctl -xe | grep "google_cloud_ops_agent_engine"
יכול להיות שתופיע הודעה דומה לזו:
Jun 30 22:00:26 centos8-2 google_cloud_ops_agent_engine[1141491]: 2021/06/30 22:00:26 the agent config file is not valid YAML. detailed error: yaml: line 21: did not find expected key
Windows
failed to generate config files: can't parse configuration: yaml: line 20: could not find expected ':'
כדי לפתור את השגיאה, צריך לתקן את ההגדרה הלא תקינה ולהפעיל מחדש את הסוכן. לעיון, אפשר לעיין במדריך בנושא הגדרת סוכן התפעול.
קריסות של סוכן והזכרות של NVIDIA בדוח
אתם מנסים להריץ את סוכן התפעול במכונה וירטואלית ב-Compute Engine עם יחידות GPU שמצורפות. הסוכן קורס, ובפלט מוזכר NVIDIA.
זו בעיה מוכרת בגרסאות 2.39.0 ו-2.40.0 של סוכן תפעול. כדי לפתור את הבעיה, צריך להתקין את סוכן תפעול בגרסה 2.38.0 או בגרסה 2.41.0 ומעלה.פרטי הסטטוס במסוף שגויים Google Cloud
במסוף Google Cloud מופיע מידע על הסטטוס של הסוכנים במכונות וירטואליות ב-Compute Engine בלוחות בקרה שונים, למשל בלוח הבקרה VM Instances ב-Cloud Monitoring. אם המידע הזה לא תואם למה שציפיתם, יכול להיות שהסיבה היא פשוט עיכוב, כי לוקח זמן עד ששינויים בהגדרות מתעדכנים במערכת. אבל מידע לא צפוי יכול גם להצביע על כך שהסוכן לא פועל כמצופה.
הנציג המותקן דווח על ידי Google Cloud המסוף כלא מזוהה
הסוכן צריך לפעול ולהעביר נתונים כדי שהמסוף Google Cloud יזהה שהוא קיים. אם התקנתם את הסוכן אבל הסטטוס במסוף נשאר 'לא זוהה', המשמעות היא שהסוכן לא פועל או שהוא פועל אבל לא מעביר נתונים. למידע נוסף, קראו את המאמרים הבאים:
הסרנו סוכן שדווח על ידי Google Cloud המסוף כסוכן שהותקן
אחרי שמסירים את הסוכן, יכול להיות שיעבור עד שעה עד שהשינוי יופיע במסוף Google Cloud .