פתרון בעיות בהתקנה ובהפעלה של Ops Agent

במאמר הזה מוסבר איך לאבחן ולפתור בעיות בהתקנה ובהפעלה של סוכן תפעול. אם הסוכן פועל אבל לא מצליח להטמיע יומנים או מדדים, כדאי לעיין במאמר בנושא פתרון בעיות בהטמעת נתונים.

לפני שמתחילים

לפני שמנסים לפתור בעיה, כדאי לבדוק את הסטטוס של בדיקות התקינות של הסוכן.

התקנת הסוכן נכשלת

יכול להיות שתיתקלו בשגיאות הבאות כשמריצים את סקריפט ההתקנה.

מערכת ההפעלה לא נתמכת

אם מערכת ההפעלה לא נתמכת, ההתקנה של סוכן תפעול נכשלת. הודעת השגיאה עשויה להיראות כך:

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

סוכן התפעול משתמש בקובצי תצורה חדשים שלא תואמים לסוכנים הישנים. למידע נוסף, אפשר לעיין במדריך בנושא הגדרת סוכן תפעול.

כדי לפתור את השגיאה:

  1. שומרים את קובצי ההגדרות בהתאמה אישית של סוכן Cloud Monitoring ושל סוכן Cloud Logging.

  2. מסירים את הגרסה הישנה של סוכן 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.

כדי להתקין את סוכן תפעול:

  1. מסירים את המאגר של סוכן המעקב:

    אם הסקריפט 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

  2. מריצים את סקריפט ההתקנה של סוכן תפעול.

התקנת סוכן תפעול נכשלת כי רענון המאגר נכשל

ההתקנה של סוכן תפעול נכשלת כי רענון המאגרים המותקנים נכשל.

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

הסוכן מותקן אבל לא פועל

אם התקנתם את הסוכן אבל הוא לא פועל, יכול להיות שהבעיה היא אחת מהבאות:

שירותי הסוכן לא פועלים

כשסוכני השירות פועלים כצפוי, סוכן המדדים וסוכן הרישום מופיעים כפועלים כשמבצעים שאילתה לגבי הסטטוס:

ב-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.
    

    כדי לפתור את השגיאה, יש שתי אפשרויות:

    1. משביתים את הקטע שגורם להתנגשות בקובץ התצורה של סוכן תפעול. למידע נוסף, אפשר לעיין במדריך בנושא הגדרת סוכן תפעול.

    2. משביתים את סוכן Cloud Logging או את סוכן Cloud Monitoring שגורמים להתנגשות.

      1. שומרים את קובצי ההגדרות המותאמים אישית של הסוכן של Cloud Logging.
      2. מסירים את הגרסה הישנה של סוכן 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):

התפקידים האלה כוללים את ההרשאות שנדרשות לכתיבת נתוני רישום או מדדים, והם צריכים להיות מוענקים לחשבון השירות שמשויך למכונה הווירטואלית. חשבון השירות שבו אתם משתמשים תלוי באופן שבו הגדרתם את המכונה הווירטואלית והרשיתם את הסוכן. יכול להיות שאתם משתמשים באחד מהדברים הבאים:

כדי לזהות את חשבון השירות שמשויך למכונה וירטואלית:

  1. נכנסים לדף VM instances במסוף Google Cloud :

    כניסה לדף VM instances

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה עם כותרת המשנה Compute Engine.

  2. אם צריך, לוחצים על הרשימה הנפתחת של Google Cloud פרויקטים ובוחרים את שם הפרויקט.

  3. אם צריך, לוחצים על הכרטיסייה מופעים.

  4. ברשימת מכונות ה-VM, לוחצים על שם מכונת ה-VM כדי להציג את הדף Details של מכונת ה-VM.

  5. מוצאים את הקטע 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 .