SAP HANA のモニター

Instana を使用すると、 SAP HANA データベースを包括的に監視して、そのパフォーマンスをリアルタイムで可視化できます。

開始するには、 Instana エージェントをインストールして構成します。 エージェントは自動的に SAP HANA センサーを配備し、インストールする。 Instana UI で SAP HANA メトリクスを表示するように SAP HANA センサーを設定します。 Instana は、 SAP HANA データベースのローカルとリモートの両方のモニタリングをサポートしています。

サポート情報

SAP HANA センサーは、以下のオペレーティングシステム(OS)とランタイムをサポートしています:

サポートされる OS

必要な監視の種類に応じて、Instana エージェントは、 SAP HANA データベースを監視するための異なる OS にインストールできます。

  • ローカルモニタリング (Instana エージェントは、 SAP HANA データベースと同じホストにインストールされます):

    • Linux ( x86 および IBM PowerPC 64 ビット LE)
  • リモートモニタリング (Instana エージェントを別のホストにインストールし、 SAP HANA データベースにリモート接続します):

    • AIX
    • Linux ( x86 および IBM PowerPC 64 ビット LE)
    • Windows (US)
    • IBM i ( OS/400 PASE)
    • アップル macOS (64 ビット - インテルおよび Apple silicon )

対応ランタイム

SAP HANA データベースを監視できるのは、Instana エージェントが Java 8 ランタイムを使用している場合のみです。

注: Java 11はサポートされていません。

プラットフォーム別サポートJava 8 JDK

SAP HANA、オペレーティング・システムに応じて、以下のJava 8 JDKがサポートされている:

Instana エージェントの設定

SAP HANA を監視するには、使用する静的または動的エージェントを設定する必要がある。

静的エージェントの設定

注意: Instana リリース 282 より前のバージョンの場合は、以下の手順に従ってください:エージェントが Azul Zulu 1.8 を使用している場合、setenv ファイルを更新する必要はありません。 エージェント・ランタイムが Eclipse OpenJ9 11 を使用している場合、Java 8 ランタイムを指すように setenv ファイルを更新する。

静的エージェントを使用する場合、 com.sap.cloud.db.jdbc:ngdbc ドライバを手動で提供する必要があります。

静的エージェントを使用して SAP HANA データベースを監視するには、以下の手順を実行します:

  1. Maven Central Repositoryから ngdbc-2.22.12.jar ドライバをダウンロードする。

  2. ngdbc-2.22.12.jar ドライバを <agent-installation-dir>/system/com/sap/cloud/db/jdbc/ngdbc/2.22.12 ディレクトリに追加する。

  3. Java 8 ランタイムを使用するようにエージェントを設定するには、以下の手順を実行します:

    注: 以下の手順は、Instana リリース 282 以降、または Eclipse OpenJ9 11 を使用してエージェントをセットアップした場合にのみ実行する必要があります。
    1. <agent-installation-dir>/bin ディレクトリに移動し、 setenv ファイルを開く。

    2. 次の例のように、 UNSET JAVA_HOME の後に export JAVA_HOME=<path-to-java-home> という行を追加する:

      unset JAVA_HOME
      export JAVA_HOME=<path-to-java-home>
       
    3. 変更を保存し、ファイルを閉じます。

    4. instana エージェントを再始動します。

ダイナミックエージェントの設定

注意: Instana リリース 282 より前のバージョンの場合は、以下の手順に従ってください:エージェントが Azul Zulu 1.8 を使用している場合、setenv ファイルを更新する必要はありません。 エージェント・ランタイムが Eclipse OpenJ9 11 を使用している場合、Java 8 ランタイムを指すように setenv ファイルを更新する。

Java 8 ランタイムを使用するようにエージェントを設定するには、以下の手順を実行します:

注: 以下の手順は、Instana リリース 282 以降、または Eclipse OpenJ9 11 を使用してエージェントをセットアップした場合にのみ実行する必要があります。
  1. <agent-installation-dir>/bin ディレクトリに移動し、 setenv ファイルを開く。

  2. 次の例のように、 UNSET JAVA_HOME の後に export JAVA_HOME=<path-to-java-home> という行を追加する:

    unset JAVA_HOME
    export JAVA_HOME=<path-to-java-home>
     
  3. 変更を保存し、ファイルを閉じます。

  4. Instana エージェントを再起動して、変更を適用します。

エージェント・インストールの前提条件とサポートされるJDKの詳細については、 ホスト・エージェントのインストールを参照してください。

SAP HANA センサーの設定

SAP HANA センサーを使えば、 SAP HANA データベースをローカルでもリモートでもモニターできる。 SAP HANA のローカルモニタリングでは、 SAP HANA プロセスと同じホスト上に Instana エージェントをセットアップします。一方、リモートモニタリングでは、別のホスト上にエージェントをセットアップします。

重要: 同じエージェント設定で、ローカルモニタリングとリモートモニタリングの両方を同時に設定してはなりません。 両方の設定がある場合、リモートモニタリングが優先され、ローカルモニタリングは無効になります。

ローカル・モニター

ローカルモニタリングでは、センサーはホストメトリクスとHANAデータベースメトリクスの両方を収集し、データの包括的なフルスタックビューを提供します。

SAP HANA を実行するモード(複数コンテナまたは単一コンテナ)に応じて、エージェントの設定 yaml ファイル *instanaAgentDir*/etc/instana/configuration.yaml で異なるユーザー名とパスワードの組み合わせを設定して、データベースに接続することができる。

ローカル・モニタリングのコンフィギュレーション・パラメーターを以下の例に示す:

# SAP HANA
com.instana.plugin.saphana:
 local:
   singleContainer:
     user: ''
     password: ''
   multiContainer:
     my-test-db1:
       user: ''
       password: ''
     my-test-db2:
       user: ''
       password: ''

 

デフォルトのユーザーは SYSTEM です。

オプションの構成パラメーター

オプションで instanceNumber パラメータを指定することで、センサーが特定の SAP HANA インスタンスへの接続を確立するのを助けることができる。 このパラメータは、複数の SAP HANA インスタンスがある環境や、センサーが特定のインスタンスに確実に接続したい場合に便利です。

# SAP HANA with instance number
com.instana.plugin.saphana:
 local:
   multiContainer:
     my-test-db1:
       user: ''
       password: ''
       instanceNumber: '00'

リモート監視

注: リモートモニタリング機能は、Instana 277 以降でのみ利用可能です。

リモート監視では、Instana SAP HANA センサーは、Instana エージェントをホストしているホストとは異なるホストに展開されている SAP HANA データベースを監視します。 SAP HANA センサーは複数のデータベースを監視できる。

リモート・モニタリングのコンフィギュレーション・パラメーターを以下の例に示します:

# SAP HANA
com.instana.plugin.saphana:
  remote: # multiple remote configurations are supported
    - host: 'remote.host-1.com'
      port: '' #sql port
      databaseName: ''
      user: ''
      password: ''
    - host: 'remote.host-2.com'
      port: '' #sql port
      databaseName: ''
      user: ''
      password: ''

 
注: 単一コンテナ・モードでは、データベース名は空白である。 マルチ・コンテナ・モードでは、データベース名に値を入力する必要があります。

SYSTEMユーザー以外の使用

ローカルまたはリモートのモニタリングに SYSTEM ユーザーを使用できない場合、必要な権限を持つ専用のモニタリングユーザーを作成することができます。

監視ユーザーの作成

新しい監視ユーザー(例えば、 instana_monitoring )を作成するには、データベースのSYSTEMユーザーとしてログインし、以下のクエリーを実行します:

CREATE USER instana_monitoring PASSWORD Instana123 NO FORCE_FIRST_PASSWORD_CHANGE;

GRANT CATALOG READ TO instana_monitoring;

GRANT SELECT ON SCHEMA _SYS_REPO TO instana_monitoring WITH GRANT OPTION;

GRANT SELECT ON _SYS_STATISTICS.STATISTICS_CURRENT_ALERTS TO instana_monitoring;
重要: NO FORCE_FIRST_PASSWORD_CHANGE オプションでユーザーを作成しない場合、Instana エージェントを使用してデータベースへの接続を試みる前に、新しいユーザーに手動でログインし、パスワード変更のプロンプトを完了する必要があります。

必要な権限

モニター・ユーザーに以下の権限があることを確認してください:

  • CATALOG READ
  • SELECT ON SCHEMA _SYS_REPO (SYS_REPOスキーマの詳細については、 SAP HANA リポジトリを参照)。
  • SELECT ON _SYS_STATISTICS.STATISTICS_CURRENT_ALERTS

SSL サポート

Instana エージェントが SSL (Secure Sockets Layer) プロトコルを使用して HANA データベースに安全に接続するには、次の構成をエージェント構成ファイル <agent_install_dir>/etc/instana/configuration.yaml に追加します:

ローカル・モニター

ローカル・モニタリングでは、以下の設定を追加する:

com.instana.plugin.saphana:
  local:
   multiContainer:
     <DB Name>:
       user: ''
       password: ''
       trustStore: '<path to your truststore file location'
       trustStorePassword: '<Your truststore password>'
 

リモート監視

リモート・モニタリングには、以下の設定を追加する:

com.instana.plugin.saphana:
  remote:
    - host: 'remote.host-1.com'
      port: '' #sql port
      databaseName: ''
      user: ''
      password: ''
      trustStore: '<path to your truststore file location'
      trustStorePassword: '<Your truststore password>'
 
注: hostNameInCertificate プロパティを使用して、証明書に使用するホスト名を指定することができる。 この設定により、Instana エージェントが使用するホスト名が、証明書に指定されているホスト名と一致することを確認します。 この設定は、Instana エージェントがループバックアドレス 127.0.0.1 を使用する一方、証明書が完全修飾ホスト名を使用するローカルモニタリング環境に関連します。

メトリックの表示

メトリクスを表示するには、Instana UIのナビゲーションメニューからインフラストラクチャを選択し、特定の監視ホストをクリックすると、収集されたすべてのメトリクスと監視プロセスが表示されたホストダッシュボードが表示されます。

追跡対象の構成

SAP HANA センサーは以下の設定データを収集する:

  • ホスト
  • ホスト状況
  • 稼働時間
  • システム ID
  • データベース名
  • インスタンス番号
  • バージョン
  • インストールされているデータベース
  • ポート
  • 使用法
  • サービス状況
  • セッションの最大数

メトリック

以下の表は、 SAP HANA センサーによる測定値収集の頻度の概要である:

メトリック 回収頻度
合計 CPU 使用率 5 秒
CPU 時間 5 秒
ワークロード 5 秒
作業負荷率 (1 分あたり) 5 秒
要求 5 秒
HANAメモリー使用量 5 秒
ホスト・メモリー使用量 5 秒
ヒープ・メモリー使用量 5 秒
仮想メモリー 5 秒
スワップ・メモリー使用量 5 秒
ディスク使用の要約 5 秒
ディスク使用率 5 秒
タイプ別のディスク使用量 5 秒
セッション数 5 秒
ネットワークの使用状況 5 秒
接続数 5 秒
接続済みのユーザーおよびアプリケーション 5 秒
スレッド数 5 秒
ジョブ・ワーカー・スレッド 5 秒
SQL Executor スレッド数 5 秒
カラム・ストア 5 秒
SQLプラン・キャッシュ統計 20 秒
サービスの詳細 1 分
ガーベッジ・コレクション統計 1 分
負荷が大きなステートメント 1 分
アラート 1 分
サービス・ネットワーク入出力統計 1 分
システム・イベント 1 分
アクティブ・ステートメント 2 分間
取引統計 2 分間
集約キャッシュ情報 2 分間
ブロックされたトランザクション 2 分間
行ストア・メモリー 2 分間
共有メモリー 2 分間
スケジュールされたジョブ 15 分間
ロック待機統計 15 分間
仕事の進捗状況 15 分間
デバイスタイプ別ディスク使用量 15 分間
最新のバックアップ 30 分
すべてのバックアップ 1 時間
TABLE SIZE 24 時間
入出力統計 1 時間
TABLE SIZE 24 時間

SAP HANA センサーは、さまざまなシナリオに対応する内蔵イベントを生成する。 詳細については、「 組み込みイベント・リファレンス 」を参照してください。

カスタマイズ可能なプロパティー

すべてのバックアップ

デフォルトでは、 SAP HANA ダッシュボードの All Backups テーブルには過去 1 時間のバックアップが表示されます。 この時間ウィンドウをカスタマイズするには、 backupWindow プロパティを必要な時間ウィンドウに設定します。 たとえば、デフォルトの1時間ではなく、過去24時間に発生したすべてのバックアップを取得するには、 configuration.yaml ファイルで次のプロパティを使用します:

backupWindow: '24'
 

SQLプラン・キャッシュ統計

SQL プラン・キャッシュ統計メトリクスは既定では収集されないため、明示的に有効にする必要があります。 これらのメトリクスを有効にするには、 configuration.yaml ファイルに以下のプロパティを追加します:

plan_cache_statistics_enabled: true
 

高価なステートメント・トレース

SAP HANA コックピットまたは SAP HANA データベースエクスプローラーで、高価なステートメントトレースを有効にしてアクティブにできます。 あるいは、 global.ini コンフィギュレーション・ファイルの expensive_statement セクションのパラメーターを変更することもできる。

SQLコマンドを使用して高価なステートメント・トレースを設定するには、以下のセクションを参照してください。 これらのコマンドを実行する前に、データベースのSYSTEMユーザーとしてログインしてください。

ユーザーに対して高価なステートメント・トレースを有効にする

特定のユーザーに対して高価なステートメント・トレースを有効にするには、データベースの SYSTEM ユーザーとしてログインし、以下の SQL コマンドを実行します:

ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM')
SET ('expensive_statement', 'enable') = 'true',
    ('expensive_statement', 'user') = '<username>'
WITH RECONFIGURE;
ユーザの高価なステートメント・トレースを無効にする

特定のユーザーの高価なステートメント・トレースを無効にするには、データベースの SYSTEM ユーザーとしてログインし、以下の SQL コマンドを実行します:

ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM')
SET ('expensive_statement', 'enable') = 'false',
    ('expensive_statement', 'user') = '<username>'
WITH RECONFIGURE;
閾値の持続時間の変更

高価なステートメントをキャプチャするしきい値の継続時間(マイクロ秒)を変更するには、データベースの SYSTEM ・ユーザーとしてログインし、以下のSQLコマンドを実行します:

ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM')
SET ('expensive_statement', 'threshold_duration') = '<microseconds>'
WITH RECONFIGURE;

例えば、しきい値を5秒(5,000,000マイクロ秒)に設定する:

ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM')
SET ('expensive_statement', 'threshold_duration') = '5000000'
WITH RECONFIGURE;