Oracle Cloud Agentのトラブルシューティング

Oracle Cloud Agentを使用していると、次の問題が発生することがあります:

  • 「インスタンスの詳細」ページの「Oracle Cloud Agent」タブで、すべてのプラグインのステータスが「無効」になっている。
  • 「コンソール」ダッシュボードの「メトリック」セクションに、インスタンスのCPU、メモリー、ネットワークまたはディスクのメトリックが表示されない。

これらの問題が発生した場合、Oracle Cloud Agentがインストールされていないか、実行されていないか、Oracleサービスと通信できない可能性があります。特定の問題を診断するには、次のトラブルシューティング・ステップに従います。

ヒント

このトピックでは、Oracle Linuxの手順はCentOSイメージにも適用されます。

ステップ1: Oracle Cloud Agentがインストールされていることの確認

次のステップに従って、Oracle Cloud Agentがインスタンスにインストールされていることを確認します。

  1. インスタンスに接続し、オペレーティング・システムに応じて次のいずれかのコマンドを実行します。
    Oracle Linux
    rpm -q oracle-cloud-agent && echo "OCA Installed" || echo "OCA not Installed"
    

    Oracle Cloud Agentがインストールされている場合、次のようなメッセージが表示されます:

    oracle-cloud-agent-<version>.x86_64
    OCA Installed
    
    Ubuntu
    snap list oracle-cloud-agent &>/dev/null && echo "OCA Installed" || echo "OCA not Installed"

    Oracle Cloud Agentがインストールされている場合、次のメッセージが表示されます:

    OCA Installed
    Windows Server

    Windows PowerShellで、管理者としてコマンドを実行します。

    Get-WmiObject -Class Win32_Product |where name -eq "Oracle Cloud Agent"

    Oracle Cloud Agentがインストールされている場合、次のようなメッセージが表示されます:

    IdentifyingNumber : {<unique_ID>}
    Name              : Oracle Cloud Agent
    Vendor            : Oracle Corporation
    Version           : <version>
    Caption           : Oracle Cloud Agent
            
  2. コマンドの実行後にOracle Cloud Agentがインストールされていることを示すメッセージが表示されない場合は、Oracle Cloud Agentをインストールします。Oracle Cloud Agentがインストールされている場合は、次のステップに進み、実行されていることを確認します。

ステップ2: Oracle Cloud Agentが実行されていることの確認

Oracle Cloud Agentがインストールされていることを確認した後、次のステップに従って、実行されていることを確認します。

  1. インスタンスに接続し、次のいずれかのコマンドを実行して、Oracle Cloud Agentを再起動します。
    Oracle Linux 6.x
    initctl status oracle-cloud-agent

    Oracle Cloud Agentが実行されている場合に予期されるレスポンス:

    oracle-cloud-agent start/running, process 13809
    Oracle Linux 7.x以降のバージョン
    systemctl is-enabled oracle-cloud-agent &>/dev/null && echo "OCA is enabled" || echo "OCA is disabled" \
     && systemctl is-active oracle-cloud-agent &> /dev/null && echo "OCA is running" || echo "OCA is not running"

    Oracle Cloud Agentが実行されている場合に予期されるレスポンス:

    OCA is enabled
    OCA is running
    Ubuntu
    snap services oracle-cloud-agent

    Oracle Cloud Agentが実行されている場合に予期されるレスポンス:

    Service                               Startup Current Notes
    oracle-cloud-agent.oracle-cloud-agent enabled active  -
    Windows Server

    Windows PowerShellで、管理者としてコマンドを実行します。

    sc.exe query "OCA"|findstr "RUNNING"

    Oracle Cloud Agentが実行されている場合に予期されるレスポンス:

    STATE : 4 RUNNING
  2. コマンドの実行後にOracle Cloud Agentが実行されていることを示すメッセージが表示されない場合は、診断ツールを実行し、プラグインのデバッグ情報およびログを含むファイルを使用してサポート・チケットを提出します。Oracle Cloud Agentが実行されている場合は、次のステップに進み、Oracleサービスに接続できることを確認します。

ステップ3: Oracle Cloud AgentがOracleサービスに接続できることの確認

Oracle Cloud Agentがインストールされ実行されているが、「インスタンスの詳細」ページのすべてのプラグインのステータスが「無効」であることを確認した場合、または「コンソール」ダッシュボードの「メトリック」セクションにメトリックが表示されない場合、Oracle Cloud AgentがOracleサービスに接続できない可能性があります。次の各項では、Oracle Cloud AgentがOracleサービスに接続できない場合に考えられる原因について説明します。問題を診断するには、次のステップを順番に実行します。

  1. インスタンスがインスタンス・メタデータ・サービス・エンドポイントにアクセスできることを確認します。
  2. クロック・スキュー・エラーを確認します。
  3. ゲートウェイが正しく構成されていることを確認します。
  4. プロキシ・サーバー設定を変更します。

インスタンスがインスタンス・メタデータ・サービス・エンドポイントにアクセスできることの確認

次のステップでは、インスタンスがインスタンス・メタデータ・サービス・エンドポイントにアクセスできるかどうかを確認します。

  1. インスタンスに接続し、オペレーティング・システムに応じて次のいずれかのコマンドを実行します。
    Oracle LinuxおよびUbuntu
    curl -v -H 'Authorization: Bearer Oracle' http://169.254.169.254/opc/v2/instance/

    Oracle Cloud Agentが実行されている場合、次のようなメッセージが表示されます:

    * About to connect() to 169.254.169.254 port 80 (#0)
    *   Trying 169.254.169.254...
    * Connected to 169.254.169.254 (169.254.169.254) port 80 (#0)
    > GET /opc/v2/instance/ HTTP/1.1
    > User-Agent: curl/7.29.0
    > Host: 169.254.169.254
    > Accept: */*
    > Authorization: Bearer Oracle
    >
    < HTTP/1.1 200 OK
    < Server: server
    < Date: Wed, 24 Mar 2021 20:52:38 GMT
    < Content-Type: application/json
    < Content-Length: 1800
    < Last-Modified: Wed, 03 Mar 2021 01:43:50 GMT
    < Connection: keep-alive
    < ETag: "603ee9d6-708"
    < Accept-Ranges: bytes
    <
    {
      "availabilityDomain" : "uybn:<availability_domain>",
      "faultDomain" : "<fault_domain>",
      "compartmentId" : "ocid1.compartment.oc1..<unique_ID>",
      "displayName" : "<instance_name>",
      "hostname" : "<host_name>",
      "id" : "<unique_ID>",
      "image" : "ocid1.image.oc1.iad.<unique_ID>",
      "metadata" : {
        "ssh_authorized_keys" : ""
      },
      "region" : "<region_key>",
      "canonicalRegionName" : "<region_name>",
      "ociAdName" : "<availability_domain>",
      "regionInfo" : {
        "realmKey" : "<realm>",
        "realmDomainComponent" : "oraclecloud.com",
        "regionKey" : "<region_key>",
        "regionIdentifier" : "<region>"
      },
      "shape" : "<shape>",
      "state" : "Running",
      "timeCreated" : 1614637343723,
      "agentConfig" : {
        "monitoringDisabled" : false,
        "managementDisabled" : false,
        "allPluginsDisabled" : false,
        "pluginsConfig" : [ {
          "name" : "OS Management Service Agent",
          "desiredState" : "ENABLED"
        }, {
          "name" : "Custom Logs Monitoring",
          "desiredState" : "ENABLED"
        }, {
          "name" : "Compute Instance Run Command",
          "desiredState" : "ENABLED"
        }, {
          "name" : "Compute Instance Monitoring",
          "desiredState" : "ENABLED"
        } ]
      },
      "freeformTags" : {
        "keep" : "keep"
      }
    * Connection #0 to host 169.254.169.254 left intact
    
    Windows Server

    Windows PowerShellで、管理者としてコマンドを実行します。

    Invoke-WebRequest -Headers @{'Authorization'='Bearer Oracle'} http://169.254.169.254/opc/v2/instance/
    

    Oracle Cloud Agentが実行されている場合、次のようなメッセージが表示されます:

    StatusCode        : 200
    StatusDescription : OK
    Content           : {
                          "availabilityDomain" : "<availability_domain>",
                          "faultDomain" : "<fault_domain>",
                          "compartmentId" :
                        "ocid1.tenancy.region1..<unique_ID>",
                          "displayNam...
    RawContent        : HTTP/1.1 200 OK
                        Connection: keep-alive
                        Accept-Ranges: bytes
                        Content-Length: 1197
                        Content-Type: application/json
                        Date: Wed, 24 Mar 2021 21:07:42 GMT
                        ETag: "<unique_ID>"
                        Last-Modified: Wed, 24 M...
    Forms             : {}
    Headers           : {[Connection, keep-alive], [Accept-Ranges, bytes], [Content-Length, 1197], [Content-Type,
                        application/json]...}
    Images            : {}
    InputFields       : {}
    Links             : {}
    ParsedHtml        : mshtml.HTMLDocumentClass
    RawContentLength  : 1197
    
  2. プロキシ・エラーなしで正常なレスポンスが得られた場合は、クロック・スキュー・エラーを確認します。プロキシ・サーバー・エラーが発生した場合は、プロキシ・サーバー設定を確認します。

クロック・スキュー・エラーの確認

インスタンスのクロックがNTPサービスと同期していない場合があります。クロック・スキューによってTLSネゴシエーションが失敗し、インスタンスがOracleサービスに接続できなくなる可能性があります。次のステップに従って、クロック・スキュー・エラーを確認します。

  1. インスタンスに接続し、次のコマンドのいずれかを実行して、monitoring.logファイルを生成します。

    Linux
    sudo tail -15 /var/log/oracle-cloud-agent/plugins/gomon/monitoring.log
    Windows Server 2019、Windows Server 2022

    Windows PowerShellで、管理者としてコマンドを実行します。

    Get-Content -tail 15 C:\Windows\ServiceProfiles\OCA\AppData\Local\OracleCloudAgent\plugins\gomon\monitoring.log
    2019より前のWindows Server

    Windows PowerShellで、管理者としてコマンドを実行します。

    Get-Content -tail 15 C:\Users\OCA\AppData\Local\OracleCloudAgent\plugins\gomon\monitoring.log

    クロック・スキュー・エラーがあると、次のようなメッセージが表示されます:

    failed to call: Service error:NotAuthenticated. Date 'Tue, 09 Mar 2021 06:39:35 UTC' is not within allowed clock skew.
    Current 'Tue, 09 Mar 2021 06:45:45 UTC', valid datetime range: ['Tue, 09 Mar 2021 06:40:45 UTC', 'Tue, 09 Mar 2021 06:50:46 UTC'].
    http status code: 401. Opc request id: <unique_id>
  2. クロック・スキュー・エラーが発生している場合は、インスタンスのOracle Cloud Infrastructure NTPサービスを構成します。クロック・スキュー・エラーが発生していない場合は、ゲートウェイが正しく構成されていることを確認します
  3. 前のステップでNTPサービスを構成した場合は、構成の完了後に、次のいずれかのコマンドを実行して、Oracle Cloud Agentを再起動します:
    Oracle Linux 6.x
    sudo initctl restart oracle-cloud-agent
    Oracle Linux 7.x以降のバージョン
    sudo systemctl restart oracle-cloud-agent
    Ubuntu
    sudo snap restart oracle-cloud-agent
    Windows Server

    Windows PowerShellで、管理者としてコマンドを実行します。

    net stop OCA
    net start OCA
  4. monitoring.logファイルを再度生成します。

    Oracle Cloud Agentが正しく実行されている場合、正常なレスポンスは200 OKです。monitoring.logで、次のようなメッセージを探します:

    2021/03/18 03:12:44.391381 t2.go:139: Sent metrics status: 200; took: 387ms; with opc-request-id:<unique_ID>;
    2021/03/18 03:13:44.006391 instancemetadata_client.go:64: fetched metadata from http://169.254.169.254/opc/v2/instance/ , status 200 OK
    2021/03/18 03:13:44.730102 t2.go:139: Sent metrics status: 200; took: 723ms; with opc-request-id:<unique_ID>;
    2021/03/18 03:14:44.324046 t2.go:139: Sent metrics status: 200; took: 320ms; with opc-request-id:<unique_ID>;

Windowsドメイン参加インスタンスの権限の確認

ドメインに参加しているWindowsインスタンスがある場合は、ローカル・グループ・ポリシーで、仮想アカウントに「サービスとしてログオン」ユーザー権限が付与されていることを確認します。権限を設定するには、Microsoftのサービス・ログオンの有効化のガイドのローカル・グループ・ポリシーを使用してサービス・ログオンを有効化するためのステップに従います。「サービスとしてログオン」で、ユーザーNT SERVICE\ALL SERVICESまたは特定のユーザーを追加します。

ゲートウェイが正しく構成されていることの確認

Oracle Cloud AgentがOracleサービスと通信するには、サブネット内のゲートウェイが正しく構成されている必要があります。次のステップに従って、構成を確認および修正します。

  1. VCNのサブネットのインターネット・ゲートウェイ、NATゲートウェイまたはサービス・ゲートウェイを構成します
  2. 構成ステップを実行した後、インスタンスがインスタンス・メタデータ・サービス・エンドポイントにアクセスできることの確認の項のコマンドを使用して、サービスを再起動します。サービスを再起動したら、monitoring.logファイルでOracleサービスへの正常なリクエストを確認します。

プロキシ・サーバー設定の変更

ローカル・プロキシ・サーバーが原因で、Oracle Cloud Agentがサービスと通信できなくなる場合があります。プロキシ・サーバーはそれぞれ異なります。

多くの場合、プロキシ・クライアント・インスタンスでoracle-cloud-agentおよびoracle-cloud-agent-updaterサービスのhttp_proxyhttps_proxyおよびno_proxy環境変数を設定すると、プロキシの問題が解決されます。これらの環境変数を設定した後、プロキシ・サーバーのaccess.logファイル(またはご使用のシステムに応じて同等のもの)で、プロキシ・クライアントからOracle Cloud Agentがアクセスするサービスへのリクエストが表示されることを確認します。

Oracle Linux
  1. 次のコマンドを実行します。

    sudo EDITOR=vi systemctl edit oracle-cloud-agent
  2. エディタ・ウィンドウで、次のエントリを追加し、ファイルを保存します。

    [Service]
    Environment="http_proxy=<proxy_url>:<proxy_port>"
    Environment="https_proxy=<proxy_url>:<proxy_port>"
    Environment="no_proxy=localhost,127.0.0.1,169.254.169.254"
    • <proxy_url>はプロキシURLです。
    • <proxy_port>はプロキシ・ポートです。
  3. oracle-cloud-agent-updaterサービスについて、前述の2つのステップを繰り返します。
  4. 次のコマンドを実行し、サービスを再起動します。

    sudo systemctl daemon-reload
    sudo systemctl restart oracle-cloud-agent oracle-cloud-agent-updater
Ubuntu
  1. 次のコマンドを実行します。

    sudo EDITOR=vi systemctl edit snap.oracle-cloud-agent.oracle-cloud-agent
  2. エディタ・ウィンドウで、次のエントリを追加し、ファイルを保存します。

    [Service]
    Environment="http_proxy=<proxy_url>:<proxy_port>"
    Environment="https_proxy=<proxy_url>:<proxy_port>"
    Environment="no_proxy=localhost,127.0.0.1,169.254.169.254"
    • <proxy_url>はプロキシURLです。
    • <proxy_port>はプロキシ・ポートです。
  3. snap.oracle-cloud-agent.oracle-cloud-agent-updaterサービスについて、前述の2つのステップを繰り返します。
  4. 次のコマンドを実行し、サービスを再起動します。

    sudo systemctl daemon-reload
    sudo systemctl restart snap.oracle-cloud-agent.oracle-cloud-agent snap.oracle-cloud-agent.oracle-cloud-agent-updater
Windows Server
  1. Windows PowerShellで、管理者として次のコマンドを実行します。環境変数の大/小文字の区別は変更しないでください。

    Set System environment variables for HTTP_PROXY, HTTPS_PROXY and NO_PROXY
    [System.Environment]::SetEnvironmentVariable("HTTP_PROXY", "<proxy_url>:<proxy_port>", [System.EnvironmentVariableTarget]::Machine)
    [System.Environment]::SetEnvironmentVariable("HTTPS_PROXY", "<proxy_url>:<proxy_port>", [System.EnvironmentVariableTarget]::Machine)
    [System.Environment]::SetEnvironmentVariable("NO_PROXY", "localhost,127.0.0.1,169.254.169.254", [System.EnvironmentVariableTarget]::Machine)
    • <proxy_url>はプロキシURLです。
    • <proxy_port>はプロキシ・ポートです。
  2. oracle-cloud-agentおよびoracle-cloud-agent-updaterサービスを再起動します。

    net stop OCA
    net start OCA
    net stop OCAU
    net start OCAU
  3. Custom Logs Monitoringプラグインがメトリックを送信できることを確認するには、monitoring.logファイルを末尾にします。

    Windows Server 2019、Windows Server 2022

    Get-Content C:\Windows\ServiceProfile\OCA\Appdata\Local\OracleCloudAgent\plugins\gomon\monitoring.log -Wait

    2019より前のバージョンのWindows Server

    Get-Content C:\Users\OCA\Appdata\Local\OracleCloudAgent\plugins\gomon\monitoring.log -Wait

ステップ4: Oracle Cloud Agentの診断ファイルの生成

OracleサポートがOracle Cloud Agentソフトウェアの問題のトラブルシューティングを簡単に行えるようにするために、コンピュート・インスタンスにOracle Cloud Agent診断ツールを実行できます。診断ツールはOracle Cloud Agentが管理するプラグインのデバッグ情報およびログを含むファイルを生成します。

診断ツールは、Oracle Cloud Agentバージョン1.14.0以降でインストールされます。Oracle Cloud Agentを更新するには、「Oracle Cloud Agentソフトウェアの更新」を参照してください。

前述のトラブルシューティング・ステップを完了した後、診断ツールを実行し、プラグインのデバッグ情報およびログを含むファイルを使用してサポート・チケットを提出します。

Linuxインスタンスで診断ファイルを生成するには
  1. インスタンスに接続します
  2. ディレクトリを診断ツールが保存されているフォルダに変更します:

    cd /usr/libexec/oracle-cloud-agent/ocatools
  3. 診断ツールを実行します:

    sudo ./diagnostic

    このツールは、oca-diag-<date>.<identifier>.tar.gzという形式の名前のTARファイルを生成します。サポート要求を開くときに、そのファイルを提供します。

Windowsインスタンスで診断ファイルを生成するには
  1. インスタンスに接続します
  2. 管理者としてPowerShellを開きます。
  3. ディレクトリを診断ツールが保存されているフォルダに変更します:

    cd C:\Program Files\Oracle Cloud Agent\ocatools
  4. 診断ツールを実行します:

    .\diagnostic.ps1

    このツールは、ZIPファイルを生成し、C:\Users\opc\Desktop\に保存します。サポート要求を開くときに、そのファイルを提供します。