Google Cloud の SAP 用エージェントのトラブルシューティング ガイド

このガイドでは、Google Cloud の SAP 用エージェントのバージョン 3.6(最新)の問題を解決する方法について説明します。

SAP のトラブルシューティングとサポート情報については、次の SAP Notes をご覧ください。

ロギング

ご使用のオペレーティング システムに固有のディレクトリにあるログを確認します。

Google Cloud の SAP 用エージェントのログを表示するには、次のパスに移動します。

Linux

/var/log/google-cloud-sap-agent.log

Windows

C:\Program Files\Google\google-cloud-sap-agent\logs\google-cloud-sap-agent.log

Google Cloud の SAP 用エージェントの Backint 機能を有効にしている場合は、次のログを確認します。

  • SAP HANA backup.log ファイル。SAP HANA のバックアップと復元のオペレーションに関する情報が記録されています。
  • SAP HANA backint.log ファイル。エージェントの Backint 機能やその他の外部バックアップ ツールのバックアップ インターフェースの呼び出しが記録されています。
  • Google Cloud の SAP 用エージェントの Backint ログファイル: /var/log/google-cloud-sap-agent/backint.log。このファイルには、Backint 機能が有効になったタイミング、関連するオペレーション イベント、Cloud Storage との通信エラーの兆候、関連する構成や権限の問題に関する情報が含まれています。
  • Cloud Logging の Google Cloud ログ。Google Cloud の SAP 用エージェントで使用されるサービス アカウントに関連するエラーが記録されている場合があります。これらのログを表示するには、Google Cloud コンソールで [ログ エクスプローラ] ページに移動します。

一般的な問題

以降のセクションでは、Google Cloud の SAP 用エージェントの使用に関連する一般的な問題とその原因、解決策について説明します。

問題: IAM 権限が不十分である

問題: Google Cloud の SAP 用エージェント ログに IAM 権限不足のエラーが表示される。

原因: エージェントが使用するサービス アカウントに、Cloud Monitoring API にアクセスするために必要な IAM 権限がありません。エージェントの Backint 機能を使用している場合は、Cloud Storage バケットにアクセスするための十分な権限がありません。

解決策: この問題を解決するには、次の手順を完了します。

  1. Google Cloud コンソールの [VM インスタンスの詳細] ページで、サービス アカウントの名前をメモします。例: sap-example@example-project-123456.iam.gserviceaccount.com

  2. [IAM と管理] ページに移動し、そのサービス アカウントに次の IAM ロールが含まれていることを確認します。

    機能 必要な IAM のロール
    SAP Host Agent 指標の収集
    Process Monitoring 指標の収集
    Workload Manager 評価指標の収集
    SAP HANA モニタリング指標の収集
    SAP HANA の Backint ベースのバックアップと復元
    • Storage オブジェクト管理者(roles/storage.objectAdmin
    • Cloud KMS 暗号鍵の暗号化 / 復号(roles/cloudkms.cryptoKeyEncrypterDecrypter)。顧客管理の暗号鍵を使用して Cloud Storage の SAP HANA バックアップを暗号化している場合。この機能の詳細については、バックアップの暗号化オプションをご覧ください。

    詳細については、必要な Cloud Storage 権限をご覧ください。

Google Cloud の SAP 用エージェントに必要な認証の詳細については、認証とアクセスをご覧ください。

Cloud Monitoring エージェントに必要な権限を確認するには、次の Monitoring のドキュメントをご覧ください。

問題: Compute Engine インスタンスのサービス アカウントのアクセス スコープが間違っている

問題: ホスト コンピューティング インスタンスのアクセス スコープを制限すると、Google Cloud の SAP 用エージェント ログに IAM 権限不足のエラーが表示されることがあります。

原因: Google Cloud の SAP 用エージェントでは、ホスト コンピューティング インスタンスで最小限の Cloud API アクセス スコープが必要です。このエラーは、サービス アカウントに必要なアクセス スコープがない場合に発生します。

解決策: アクセス スコープは、コンピューティング インスタンスの権限を指定する従来の方法です。Compute Engine では、すべての Cloud APIs にすべてのアクセス スコープを使用できるようにコンピューティング インスタンスを構成し、サービス アカウントの IAM 権限のみを使用して Google Cloud リソースへのアクセスを制御することをおすすめします。

この問題を解決するには、コンピューティング インスタンスにすべての cloud-platform アクセス スコープを設定し、IAM ロールでサービス アカウントの API アクセスを安全に制限するのがベスト プラクティスです。例:

  • https://www.googleapis.com/auth/cloud-platform

コンピューティング インスタンスのアクセス スコープを制限する場合は、ホスト コンピューティング インスタンスに次のアクセス スコープがあることを確認してください。

  • https://www.googleapis.com/auth/source.read_write
  • https://www.googleapis.com/auth/compute
  • https://www.googleapis.com/auth/servicecontrol
  • https://www.googleapis.com/auth/service.management.readonly
  • https://www.googleapis.com/auth/logging.admin
  • https://www.googleapis.com/auth/monitoring
  • https://www.googleapis.com/auth/trace.append
  • https://www.googleapis.com/auth/devstorage.full_control

Process Monitoring 指標または SAP HANA モニタリング指標の収集を有効にしている場合、ホスト コンピューティング インスタンスのアクセス スコープには、指標データを Google Cloud プロジェクトに公開するための書き込みアクセス権も必要です。

  • https://www.googleapis.com/auth/monitoring.write

アクセス スコープを変更するには、コンピューティング インスタンスを停止して変更を加え、それからコンピューティング インスタンスを再起動する必要があります。手順については、Compute Engine のドキュメントをご覧ください。この問題の場合、IAM ロールの権限を変更する必要はありません。

問題: SAP Host Agent が見つからないか間違っている

問題: Google Cloud の SAP 用エージェント ログに、SAP Host Agent が見つからないか、間違っているというエラーが表示される。

原因: SAP Host Agent または SAP Host Agent に必要な最小パッチレベルがインストールされていません。Google Cloud の SAP 用エージェントを機能させるには、SAP システムに SAP Host Agent をインストールし、Host Agent に必要な最小パッチレベルを維持する必要があります。

解決策: この問題を解決するには、必要なバージョンの SAP Host Agent をインストールします。SAP Host Agent のインストール手順については、SAP のドキュメントをご覧ください。

SAP Host Agent のバージョン要件については、次の SAP ノートをご覧ください。

問題: Google Cloud の SAP 用エージェントをインストールできない

問題: パッケージ管理システムのインストール コマンド(yumzyppergooget など)を実行すると、エージェントのインストールが失敗するか、Package matching google-cloud-sap-agent-VERSION_NUMBER already installed. Checking for update. というエラー メッセージが表示される。

原因: 次のいずれかの理由で、エージェントのインストールに失敗します。

  • エージェントを最新バージョン以外にダウングレードしていて、コンピューティング インスタンスが古いバージョンの RHEL for SAP(7.9 など)で実行されている。
  • エージェントをホストするコンピューティング インスタンスが外部 IP アドレスなしで作成されている。

解決策: この問題を解決するには、シナリオに応じて次のいずれかを行います。

  • エージェント インスタンスを最新バージョン以外のバージョンにダウングレードし、コンピューティング インスタンスが古いバージョンの RHEL for SAP(7.9 など)で実行されている場合は、次のコマンドを実行します。

    RHEL

    sudo tee /etc/yum.repos.d/google-cloud-sap-agent.repo << EOM
    [google-cloud-sap-agent]
    name=Google Cloud Agent for SAP
    baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-el$(cat /etc/redhat-release | cut -d . -f 1 | tr -d -c 0-9)-x86_64
    enabled=1
    gpgcheck=1
    repo_gpgcheck=0
    gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
    EOM
    sudo yum downgrade google-cloud-sap-agent-VERSION_NUMBER.x86_64

    SLES15

    sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles15-x86_64 google-cloud-sap-agent
    sudo zypper install google-cloud-sap-agent-VERSION_NUMBER.x86_64

    SLES 12

    sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles12-x86_64 google-cloud-sap-agent
    sudo zypper install google-cloud-sap-agent-VERSION_NUMBER.x86_64

    VERSION_NUMBER は、インストールするエージェントのバージョン番号(3.1-606637668 など)に置き換えます。インストール可能なエージェント バージョンについては、使用可能なすべてのエージェント バージョンを一覧表示するをご覧ください。

  • エージェントをホストするコンピューティング インスタンスに外部 IP アドレスがない場合は、ホストサーバーがインターネットにアウトバウンド アクセスできるように NAT ゲートウェイを設定します。NAT ゲートウェイの設定方法については、SAP システムのデプロイガイドをご覧ください。たとえば、SAP NetWeaver の場合は、次をご覧ください。

問題: SAP HANA モニタリング指標を収集できない

問題: SAP HANA 用モニタリング エージェントからアップグレードする際に、Google Cloud の SAP 用エージェントをインストールすると、次のようなエラー メッセージが表示される。

tls: failed to verify certificate: x509: certificate relies on legacy Common Name field, use SANs instead

原因: ターゲット SAP HANA インスタンスは、共通名(CN)で指定された SSL 証明書を使用しているため、Google Cloud の SAP 用エージェントが SAP HANA モニタリング指標の収集を開始できません。

解決策: この問題を解決するには、次の手順を完了します。

  1. Google Cloud の SAP 用エージェントを使用してモニタリングする SAP HANA インスタンスについては、共通名(CN)で指定された SSL 証明書の代わりに、Subject Alternate Name(SAN)の SSL 証明書の使用に切り替える必要があります。

  2. ホスト Compute Engine インスタンスまたは Bare Metal Solution サーバーと SSH 接続を確立します。

  3. Google Cloud の SAP 用エージェントの構成ファイルを開きます。

    /etc/google-cloud-sap-agent/configuration.json
  4. hana_monitoring_configuration セクションで、enabled パラメータを true に設定します。

  5. hana_monitoring_configuration.hana_instances セクションで、セキュア通信に TLS / SSL プロトコルを使用する SAP HANA インスタンスごとに次の操作を行います。

    1. enable_ssl パラメータを指定して、値を true に設定します。

    2. host_name_in_certificate パラメータを指定し、値として TLS / SSL 証明書で指定されている SAP HANA ホスト名を設定します。

    3. tls_root_ca_file パラメータを指定し、値として TLS / SSL 証明書が保存されているパスを設定します。

  6. 構成ファイルを保存します。

  7. Google Cloud の SAP 用エージェントを再起動して、新しい設定を有効にします。

    sudo systemctl restart google-cloud-sap-agent
  8. エージェントが SAP HANA モニタリング指標を収集していることを確認します。手順については、その他の指標を表示するをご覧ください。

  9. SAP HANA 用モニタリング エージェントをアンインストールします。

問題: 接続拒否エラー

問題: SAP Host Agent のログに接続拒否エラーが表示される。

原因: ポート 18181 が使用できないため、Google Cloud の SAP 用エージェントを起動できません。Google Cloud の SAP 用エージェントは、ポート 18181 でリクエストをリッスンします。エージェントが起動するには、このポートが使用可能である必要があります。

解決策: この問題を解決するには、Google Cloud の SAP 用エージェントでポート 18181 を使用できることを確認します。別のサービスによってポート 18181 が使用されている場合は、そのサービスを再起動するか、別のポートを使用するように再度構成する必要があります。

問題: SLES 15 SP4 for SAP 以降の OS イメージで Google Cloud の SAP 用エージェントが実行されない

問題: SAP 用 SLES OS イメージを使用すると、Google Cloud の SAP 用エージェントが自動的にプリインストールされる。ただし、OS イメージ SAP 用 SLES 15 SP4 以降では、プリインストールされた SAP 用エージェントは自動的に起動しません。

エージェントが実行されているかどうかを確認するには、次の操作を行います。

  1. ホスト Compute Engine インスタンスまたは Bare Metal Solution サーバーに接続します。
  2. 次のコマンドを実行します。

    systemctl status google-cloud-sap-agent

    エージェントが実行されていない場合、出力には inactive (dead) が含まれます。次に例を示します。

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
     Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; disabled; vendor preset: disabled)
     Active: inactive (dead)
    

原因: OS パッケージに問題があるため、SAP 用エージェントが自動的に起動しない。

解決策: この問題を解決するには、次の操作を行います。

  1. ホスト Compute Engine インスタンスまたは Bare Metal Solution サーバーに接続します。
  2. 次のコマンドを実行します。

    sudo sed -i 's~ /usr/sap~ -/usr/sap~g' /usr/lib/systemd/system/google-cloud-sap-agent.service
    sudo systemctl restart google-cloud-sap-agent
  3. エージェントが実行されていることを確認します。

    systemctl status google-cloud-sap-agent

    出力は次のようになります。

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
      Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; disabled; vendor preset: disabled)
      Active: active (running) since Wed 2023-07-12 03:07:23 UTC; 7s ago
    Main PID: 6117 (google_cloud_sa)
       Tasks: 6
      Memory: 8.8M (max: 1.0G limit: 1.0G available: 1015.1M)
      CGroup: /system.slice/google-cloud-sap-agent.service
               └─ 6117 /usr/bin/google_cloud_sap_agent startdaemon
    

問題: /usr/sap ディレクトリに対する実行権限がないため、システム検出が失敗する

問題: Google Cloud の SAP 用エージェント ログに警告 No execute permission for /usr/sap directory, some of the discovery operations will fail. Please ensure that the root user has execute permission for /usr/sap directory. が表示される

原因: root ユーザーに /usr/sap/ ディレクトリの実行権限がありません。このため、root ユーザーが /usr/sap ディレクトリにある SAP システム プロファイルと SAP ツールにアクセスできません。これにより、エージェントがホスト コンピューティング インスタンスで実行されている SAP システムを検出できず、エージェントの機能の想定動作が制限される可能性があります。

解決策: この問題を解決するには、root ユーザーに /usr/sap/ ディレクトリの実行権限が付与されていることを確認します。この操作を行うには、次のコマンドを実行します。

chmod +x /usr/sap

問題: 低スループット

問題: スループットが予想よりも低い。

原因: Google Cloud の SAP 用エージェントの Backint 機能で、compress 構成パラメータを使用して圧縮が有効になっている可能性があります。

解決策: この問題を解決するには、圧縮が有効になっていないことを確認します。次の手順を実施します。

  1. SSH を使用して SAP HANA のホストに接続します。

  2. Backint 構成ファイルを開きます。

    /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/parameters.json

    SID は、Backint 関連ファイルをインストールしたシステムの SID に置き換えます。

  3. compress パラメータが false に設定されていることを確認します。

  4. 変更を加えた場合は、構成ファイルを保存します。

問題: マルチストリーミング エラー

問題: データ バックアップのマルチストリーミング中にエラーが発生します。

原因: Google Cloud の SAP 用エージェントの Backint 機能に、より多くの並列ストリームを指定している可能性があります。

解決策: この問題を解決するには、次の手順を完了します。

  1. SSH を使用して SAP HANA のホストに接続します。

  2. Backint 構成ファイルを開きます。

    /usr/sap/SID/SYS/global/hdb/opt/backint/backint-gcs/parameters.json

    SID は、Backint 関連ファイルをインストールしたシステムの SID に置き換えます。

  3. parallel_streams パラメータの値を設定している場合は、1 に下げます。

    それでもエラーが解決しない場合は、カスタマーケアにお問い合わせください。

Cloud Storage との接続に関する問題

問題: Cloud Storage バケットとの接続に問題があります。

原因: 次の原因が考えられます。

  • 接続に関する一時的な問題。
  • Google Cloud の SAP 用エージェントで使用されるサービス アカウントに、Cloud Storage へのアクセスに必要な権限がありません。
  • 構成に問題があります

解決策: Cloud Storage バケットとの接続の問題のトラブルシューティングを行うには、次の点を確認します。

  • 失敗したバックアップまたは復元を再試行して、エラーが単に一時的な接続の問題でないことを確認します。
  • Google Cloud の SAP 用エージェントがコンピューティング インスタンスのサービス アカウントを使用している場合は、コンピューティング インスタンスがすべてのクラウド スコープにアクセスできることを確認します。アクセスを制限している場合は、コンピューティング インスタンスが storage.googleapis.com にアクセスできることを確認します。詳細については、Cloud APIs とメタデータ サーバーへのアクセスを有効にするをご覧ください。
  • Google Cloud の SAP 用エージェントで使用するサービス アカウントを作成した場合は、次のことを確認します。
    • サービス アカウントに Storage オブジェクト管理者のロールが割り当てられている。
    • 顧客管理の暗号鍵を使用して Cloud Storage のバックアップを暗号化する場合は、サービス アカウントに Cloud KMS CryptoKey Encrypter/Decrypter のロールが割り当てられている。詳細については、バックアップの暗号化をご覧ください。
  • Backint 構成ファイル、PARAMETERS.json、SAP HANA の global.ini ファイルでパラメータが正しく指定されていることを確認します。

Google Cloud の SAP 用エージェントに組み込まれている自己診断機能を使用して、Cloud Storage バケットへのアクセスをテストできます。詳細については、自己診断をご覧ください。

ディスク スナップショット ベースのバックアップまたは復元オペレーションに関する問題

問題: エージェントの hanadiskbackup または hanadiskrestore コマンドを使用して SAP HANA に対して実行したバックアップや復元オペレーションが失敗する。

原因: この問題は、次のいずれかの原因により発生する可能性があります。

  • エージェントにエラーが発生し、バックアップや復元のオペレーションが終了する。
  • 基盤となる Google Cloud サービスの問題により、エージェントによるディスク スナップショットの作成や Cloud Storage へのアップロードに想定以上の時間がかかる。
  • 明確なエラー メッセージや正常完了メッセージを表示することなくエージェントがクラッシュする。
  • オペレーティング システム レベルの問題により、バックアップまたは復元オペレーションが失敗する。
  • SAP HANA データベースで想定よりも長くエージェントが待機する。これは、データベースの作業負荷が非常に高くなっていることによる可能性があります。

解決策: この問題を解決するには、以下のようにします。

  • バックアップ オペレーションが正常終了しない場合は、次の手順を行います。

    1. エージェントが実行されていることを確認します。実行されていない場合は、エージェントを再起動してから、バックアップ オペレーションを再試行します。

    2. エージェントが想定どおりに実行されている場合は、スナップショット作成のステータスを確認します。

      gcloud compute snapshots list
        --filter="sourceDisk:projects/PROJECT_ID/zones/ZONE_ID/disks/DISK_NAME"
      

      次のように置き換えます。

      • PROJECT_ID: ソースディスクがデプロイされている Google Cloud プロジェクト
      • ZONE_ID: ソースディスクがデプロイされる Compute Engine ゾーン(例: us-central1-a
      • DISK_NAME: ソースディスクの名前。

      出力ステータスは、CREATINGUPLOADINGREADY のいずれかになります。

    3. スナップショット作成のステータスが CREATING または UPLOADING の場合、特に /hana/data ボリュームをホストしているディスクに対して作成する最初のスナップショットの場合は、このオペレーションが完了するまで待つことをおすすめします。

      このオペレーションが失敗すると、エージェントは自動的に処理を終了し、ログを更新します。バックアップの作成は、hanadiskbackup コマンドを実行して再試行できます。エージェントは、SAP HANA データベースで失敗したバックアップ オペレーションを終了し、新しいスナップショット ベースのバックアップを作成します。

      hanadiskbackup コマンドに -confirm-data-snapshot-after-create 引数を指定してスナップショットのアップロード オペレーションに失敗した場合は、SAP HANA バックアップ カタログのスナップショットのエントリを手動で削除し、スナップショットの作成を再試行する必要があります。SAP HANA バックアップ カタログのエントリを削除するには、BACKUP CATALOG DELETE ステートメントを使用します。-confirm-data-snapshot-after-create 引数については、ディスク スナップショット ベースのバックアップを作成するの説明をご覧ください。

    4. スナップショット作成のステータスが READY であるにもかかわらず、hanadiskbackup コマンドがまだ実行されているように見える場合は、バックアップ手順の一部を実行するためにエージェントが SAP HANA を待っていることを示します。

    5. hanadiskbackup コマンドの実行時間が想定より長い場合は、次の手順で SAP HANA データベースの通常のオペレーションを再開します。

      1. /hana/data ボリュームを含む XFS ファイル システムのフリーズを解除します。

        xfs_freeze -u PATH_TO_HANA_DATA_VOLUME
      2. SAP HANA データベースから、障害が発生したストレージ スナップショットのバックアップ ID を取得します。

        SELECT BACKUP_ID, STATE_NAME, COMMENT FROM M_BACKUP_CATALOG WHERE ENTRY_TYPE_NAME = 'data snapshot' and STATE_NAME = 'prepared'
      3. SAP HANA で、失敗したスナップショットのエントリを失敗として更新します。

        BACKUP DATA FOR FULL SYSTEM CLOSE SNAPSHOT BACKUP_ID UNSUCCESSFUL 'Do not use - manually terminated';
        

      BACKUP_ID は、前の手順で取得した BACKUP_ID に置き換えます。

    6. バックアップ オペレーションが失敗した問題を解決するには、エージェントのサポート バンドルを使用してカスタマーケアにお問い合わせください。

  • 復元オペレーションが正常終了しない場合は、次の手順を行います。

    1. /hana/data ボリュームをホストしている元のディスクがホスト コンピューティング インスタンスにアタッチされていることを確認します。アタッチされていない場合は、gcloud compute instances attach-disk コマンドを使用してアタッチします。

    2. ボリューム グループと論理ボリュームを再スキャンします。

      sudo /sbin/dmsetup remove_all
      sudo /sbin/vgscan -v --mknodes
      sudo /sbin/vgchange -ay
      sudo /sbin/lvscan
      sudo mount -av
      
    3. 再スキャンが失敗した場合は、ホスト コンピューティング インスタンスを再起動します。これにより、オペレーティング システムがボリューム グループを再スキャンします。

    4. SAP HANA で、/hana/data ボリュームが使用可能であることを確認します。

    5. /hana/data ボリュームがまだ使用できない場合は、エージェントのサポート バンドルを使用してカスタマーケアに連絡し、問題を解決してください。

SAP HANA モニタリング ビューに基づく指標がない

問題: SAP HANA データベースのモニタリング ビューに基づく SAP HANA モニタリング指標が表示されず、Google Cloud の SAP 用エージェントのログに次のエラーが表示される。

{sql: Scan error on column index 0, name \"MEM_USED\": converting NULL to int64 is unsupported"}

原因: エージェントの構成ファイルで hana_monitoring_configuration.hana_instances.user パラメータに指定した SAP HANA データベース ユーザーに、SAP HANA データベースのモニタリング ビューを読み取る権限がありません。その結果、エージェントがモニタリング ビューに送信するクエリはデータなしで返されます。

解決策: この問題を解決するには、指定したデータベース ユーザーに SAP HANA データベースの CATALOG READ システム権限または MONITORING ロールを付与します。この権限を付与するには、SYSTEM などの管理者ユーザーを使用して GRANT ステートメントを実行します。例:

  • MONITORING ロールを付与するには、次のコマンドを実行します。

    GRANT MONITORING TO DB_USERNAME
  • CATALOG READ システム権限を付与するには、次のコマンドを実行します。

    GRANT CATALOG READ TO DB_USERNAME

    DB_USERNAME は、エージェント構成ファイルで hana_monitoring_configuration.hana_instances.user パラメータに指定した SAP HANA データベースのユーザー名に置き換えます。この構成パラメータの詳細については、構成パラメータをご覧ください。

Google Cloud の SAP 用エージェントのサポートの利用

Google Cloud の SAP 用エージェントに関する問題を解決するには、必要な診断情報を収集し、Cloud カスタマーケアまでお問い合わせください。詳細については、Google Cloud の SAP 用エージェントの診断情報をご覧ください。