Ops エージェントのインストールと起動のトラブルシューティング

このドキュメントでは、Ops エージェントのインストールと起動に関する問題を診断して解決する際に役立つ情報を提供します。エージェントが実行されていて、ログまたは指標の取り込みに失敗した場合は、データの取り込みのトラブルシューティングをご覧ください。

始める前に

問題を解決する前に、エージェントのヘルスチェックのステータスを確認してください。

エージェントがインストールできない

インストール スクリプトの実行時に、次のエラーが発生することがあります。

オペレーティング システムがサポートされていない

オペレーティング システムがサポートされていない場合、Ops エージェントのインストールは失敗します。次のようなエラー メッセージが表示されます。

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

インストールされているエージェントが Ops エージェントと競合している

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

Ops エージェントが古いエージェントと互換性のない新しい構成ファイルを使用しています。詳細については、Ops エージェントの構成ガイドをご覧ください。

このエラーを解決するには、次の手順を行います。

  1. Cloud Monitoring エージェントCloud Logging エージェントのカスタム構成ファイルを保存します。

  2. 古い Cloud Monitoring エージェントCloud Logging エージェントをアンインストールします。

    エージェントをアンインストールした後、この変更が Google Cloud コンソールに反映されるまでに 1 時間ほどかかることがあります。

Monitoring エージェントのインストールに失敗した後、Ops エージェントのインストールが失敗する

Monitoring エージェントのインストールに失敗すると、Ops エージェントのインストールが失敗します。Debian オペレーティング システムで、Ops エージェントがインストールに失敗した場合のエラー メッセージは次のようになります。

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 エージェントのインストールが失敗した後に Ops エージェントをインストールする場合も、Monitoring エージェント リポジトリが無効であるために失敗します。

Ops エージェントでサポートされているすべてのオペレーティング システムが Monitoring エージェントでもサポートされているわけではありません。サポートされているオペレーティング システムの詳細については、Ops エージェント: Linux オペレーティング システムMonitoring エージェント: Linux オペレーティング システムをご覧ください。

Ops エージェントのインストール手順は次のとおりです。

  1. Monitoring エージェントのリポジトリを削除します。

    スクリプト 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. Ops エージェントのインストール スクリプトを実行します。

リポジトリの更新に失敗したため、Ops エージェントのインストールが失敗する

インストールされたリポジトリの更新が失敗するため、Ops エージェントのインストールは失敗します。

Linux

Debian オペレーティング システムの失敗メッセージの例では、apt-get update の呼び出しによりリポジトリの更新が行われています。詳細については、トラブルシューティングのエントリ、Monitoring エージェントのインストールに失敗した後に Ops エージェントのインストールが失敗するをご覧ください。

リポジトリの更新時にエラーが発生した場合、Ops エージェントをインストールする前にこれらのエラーを解決する必要があります。不要なリポジトリを削除または無効化することで、これらのエラーを解決できる可能性があります。

リポジトリを更新したら、Ops エージェントのインストール スクリプトを実行して Ops エージェントをインストールできます。

エージェントはインストールされているが、実行されていない

インストールしたエージェントが実行されていない場合、次のいずれかの問題が発生している可能性があります。

エージェント サービスが実行されていない

エージェント サービスが期待どおりに動作しているときにステータスをクエリすると、指標エージェントと Logging エージェントは実行中として表示されます。

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>

[...]

● google-cloud-ops-agent-diagnostics.service - Google Cloud Ops Agent - Diagnostics
     Loaded: loaded (/lib/systemd/system/google-cloud-ops-agent-diagnostics.service; disabled; vendor preset: e>
     Active: active (running) since Wed 2023-05-03 21:22:26 UTC; 4 weeks 0 days ago
   Main PID: 3353819 (google_cloud_op)
      Tasks: 8 (limit: 2355)
     Memory: 36.0M
        CPU: 3min 19.488s
     CGroup: /system.slice/google-cloud-ops-agent-diagnostics.service
             └─3353819 /opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_diagnostics -config /etc/goog>

[...]

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
Running  google-cloud-op... Google Cloud Ops Agent - Diagnostics

エージェント サービスが実行されていない場合は、次のステータスが表示されることがあります。

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.
    

    このエラーを解決するには、次の 2 つの方法があります。

    1. Ops エージェント構成ファイルの競合するセクションを無効にします。詳細については、Ops エージェントの構成ガイドをご覧ください。

    2. 競合する Cloud Logging エージェントまたは Cloud Monitoring エージェントを無効にします。

      1. Cloud Logging エージェントのカスタム構成ファイルを保存します。
      2. 古い Cloud Monitoring エージェントCloud Logging エージェントをアンインストールします。

      エージェントをアンインストールした後、この変更が Google Cloud コンソールに反映されるまでに 1 時間ほどかかることがあります。

必要なポートを使用できない

コンポーネントに必要なポートが別のプロセスで使用されている場合、Ops エージェントまたはそのコンポーネントのいずれかが起動に失敗する可能性があります。Ops エージェントは次のポートを使用します。

  • ポート 20201: 指標エージェント コンポーネント用
  • ポート 20202: Logging エージェント コンポーネント用

Ops エージェント コンポーネント以外のプロセスがポート 20201 またはポート 20202 を使用している場合は、そのプロセスを停止して Ops エージェントを再起動します。ポートを使用しているプロセスを確認するには、次の操作を行います。

Linux

指標エージェント コンポーネント: ポート 20201 を使用しているプロセスを確認するには、次のコマンドを使用します。

sudo netstat -ns -p | grep '20201'

次の出力は予想される結果を示しています。Ops エージェントの指標コレクタ 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 エージェント コンポーネント: ポート 20202 を使用しているプロセスを確認するには、次のコマンドを使用します。

sudo netstat -ns -p | grep '20202'

次の出力は予想される結果を示しています。Ops エージェントのログコレクタ 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

指標エージェント コンポーネント: ポート 20201 を使用しているプロセスを確認するには、次のコマンドを使用します。

netstat -na -b  | Select-String "20201" -Context 0,1

次の出力は予想される結果を示しています。Ops エージェントの指標コレクタ 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 エージェント コンポーネント: ポート 20202 を使用しているプロセスを確認するには、次のコマンドを使用します。

netstat -na -b  | Select-String "20202" -Context 0,1

次の出力は予想される結果を示しています。Ops エージェントのログコレクタ 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

ポートの可用性エラーは、Ops エージェントによるヘルスチェックの実行で検出できます。

エージェントに API 権限がない

エージェントが起動に失敗した場合や、データの取り込みに失敗した場合は、API へのアクセスに必要な権限が指標エージェント コンポーネントまたは Logging エージェント コンポーネントにない可能性があります。

Ops エージェントで使用されるサービス アカウントには、次の Identity and Access Management のロールが必要です。

これらのロールには、ロギングデータまたは指標データの書き込みに必要な権限が含まれています。これらのロールは、VM に関連付けられたサービス アカウントに付与する必要があります。使用するサービス アカウントは、VM の構成方法とエージェントの認証方法によって異なります。次のいずれかを使用している可能性があります。

VM に関連付けられているサービス アカウントを確認する手順は次のとおりです。

  1. Google Cloud コンソールのナビゲーション パネルで、[Compute Engine] を選択してから、[VM インスタンス] を選択します。

    [VM インスタンス] に移動

  2. 必要に応じて、Google Cloud プロジェクトのプルダウン リストをクリックし、プロジェクトの名前を選択します。

  3. 必要に応じて [インスタンス] タブを選択します。

  4. VM インスタンスのリストで VM の名前をクリックして、VM の [詳細] ページを表示します。

  5. このページの [API と ID の管理] セクションを見つけます。[サービス アカウント] フィールドの値にサービス アカウントが表示されています。

サービス アカウントに付与されるロールの設定については、既存のサービス アカウントのロールを確認、変更するをご覧ください。

API 権限エラーは、Ops エージェントによるヘルスチェックの実行で検出できます。

無効な構成

構成が無効な場合にエージェント サービスを再起動しようとすると、次のエラーが発生する可能性があります。

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 ':'

このエラーを修正するには、無効な構成を修正してエージェントを再起動します。詳細については、Ops エージェントの構成ガイドをご覧ください。

エージェント クラッシュと NVIDIA に関する報告

Compute Engine VM で接続された GPU を使って Ops エージェントを実行しようとしています。エージェントがクラッシュし、出力に「NVIDIA」が含まれています。

これは、Ops エージェントのバージョン 2.39.0 と 2.40.0 の既知の問題です。この問題を回避するには、Ops エージェント バージョン 2.38.0 またはバージョン 2.41.0 以降をインストールします。

Google Cloud コンソールのステータス情報が間違っている

Google Cloud コンソールは、Cloud Monitoring の VM インスタンス ダッシュボードなど、さまざまなダッシュボードの Compute Engine VM でエージェントのステータスを報告します。この情報が想定と一致しない場合、システムで構成の変更が想定どおりに反映されているため、原因は単に遅延である可能性があります。ただし、エージェントが期待どおりに実行されていない可能性もあります。

Google Cloud コンソールにインストール済みのエージェントが検出されなかったと表示される

エージェントが存在することを Google Cloud コンソールで確認するには、エージェントがデータを実行し、取り込む必要があります。エージェントをインストールしたものの、コンソールのステータスが「未検出」のままである場合は、エージェントが実行されていないか、エージェントが実行されているものの、データが取り込まれていません。詳しくは以下をご覧ください。

削除したエージェントが Google Cloud コンソールで「インストール済み」と報告される

エージェントをアンインストールした後、この変更が Google Cloud コンソールに反映されるまでに 1 時間ほどかかることがあります。