データベース クエリ監視

概要

データベース クエリ監視は、各種データベースへの単一クエリや複数クエリ セットを見守ります。このSQLベースのクエリ監視により、特定クエリごとにステータス監視が可能です。

新規データベース クエリ監視を作成するには

REST APIを使用して、新しいデータベース クエリ監視を追加する場合はこちらをご参照ください。

新規データベース クエリ監視を作成するには、次の手順に従ってください。

  1. 新規監視をクリックします。データベース クエリ監視を選びます。
  2. 監視の表示名を入力してください。
  3. クエリ実行の対象となるデータベースを選択します。現在のサポート対象は、Db2、Informix、Ingres、MS SQL、MySQL、Oracle、Oracle RAC、PostgreSQL、Sybase、Db2 for i、SAP HANAオンプレミス、SAP MaxDBです。Db2 for iは、試用期間中かAS/400(iSeries)オプションを購入した場合のみ、表示されます。
  4. データベースを実行しているリソースのホスト タイプを、新規既存か指定してください、既存ホストはドロップダウンで選択できます。
  5. ホストのホスト名またはIPアドレスを入力します。
  6. データベースが稼働しているポート番号を入力します。
  7. Kerberos認証でMS SQLデータベースを監視する場合は、Enable Kerberos Authenticationチェックボックスにチェックを入れます。
  8. データベース サーバーのユーザー名パスワードを入力してください。
  9. データベース名を入力してください。
  10. Named Instanceを使用して接続する場合は、Connect using Named Instanceチェックボックスにチェックを入れて、MS SQLデータベースのインスタンス名を指定します。
  11. MySQL、MS SQL、Oracle、PostgreSQLデータベースでSSL認証有効の場合は、SSLを有効にするチェックボックスにチェックを入れます。
  12. SQL Server接続用ドライバの欄でjTDS JDBC DriverまたはMicrosoft JDBC Driverオプションを選択し、データ収集のためにMS SQLデータベースへの接続に必要なドライバを選択します。
  13. クエリを入力してください。クエリ数は最大5に制限されています。それぞれのクエリは改行で区切って下さい。
  14. クエリ出力を希望するか、はいいいえをラジオ ボタンで選択します。
  15. テーブル行がポーリングで取得できなかった場合、Manage Table Rowオプションを有効にすることで、適切なテーブル行のアクション(保持、削除、管理解除)を設定することができます。
  16. ポーリング間隔を入力してください。デフォルトでは、5分です。
  17. Enterprise EditionのAdminサーバーから新規監視を追加するには、Managedサーバーを選択します。
  18. データベース クエリ監視を関連付ける監視グループを、コンボボックスから選択してください。

注意:Enterprise EditionのAdminサーバーにおいて、データベースクエリ監視でサポートするデータベースタイプはMySQL、Oracle、DB2、MS SQL、Sybase、PostgreSQL、SAP HANA および SAP MaxDB のみです。

データベース クエリ監視でアラート テンプレート設定を有効にする

アラートの設定のリンクを有効にすると、アラート設定を容易に実行できるよう、リンクが表示されます。データベース クエリ監視ページの各テーブルで、右上コーナーにリンクが現れますのでご利用ください。こちらのリンクから、テーブルに存在するあらゆる属性に、しきい値の事前設定ができます。

アラート テンプレート設定をデータベース クエリ監視で有効にするには、次の手順で作業します。

  1. 設定タブへ移動します。
  2. ディスカバリとデータ収集からパフォーマンス ポーリングをクリックしてください。
  3. パフォーマンス データ収集の下で、データ収集の最適化タブをクリックします。
  4. ドロップダウンからスクリプト/データベース クエリ監視を選択してください。
  5. スクリプト監視とデータベース クエリ監視で、アラート テンプレート設定を有効にするを選択ください。
  6. これによって、アラートの設定のリンクが各テーブル右上に表示されます。

監視対象のパラメーター

データベース クエリ監視は、各種データベースへの単一クエリや複数クエリ セットを見守ります。

  • 可用性タブでは、過去24時間か30日の可用性履歴がわかります。
  • パフォーマンス タブでは、過去24時間か30日のステータスとイベントがわかります。
  • リスト ビューでは、一括管理設定が可能です。

Applications Managerのデータベース クエリ監視を利用すれば、クエリを1つずつでも、複数クエリのセットを1つずつでも確認が可能で、データベースのステータスチェックができます。クエリ実行は、お客さまデータベースが24時間365日稼働しているかを調べるベストの方法です。オンラインストアのようなビジネスでは、e-Commerceのために多数のアプリケーションやデータベースを利用しています。このような環境では、あらゆる障害が、売り上げ損失につながりかねません。

クエリはポーリング間隔を指定して自動実行できます。ポーリング間隔の決定により、クエリ手順は自動化され、結果はポーリング終了時に明らかになります。結果から、実行時間(クエリが結果の提供に要する時間)がわかるとともに、定期ポーリング中に発生したエラーも表示されます。エラーはデータベースで発生した可能性がある問題の特定に有用です。

下記にサンプルを示し検討するものとします。多くの企業では、24時間365日稼働が必要な重要アプリケーションを利用しています。アプリケーションのステータスを「APPLICATION_STATUS」テーブルで管理している場合、データベース クエリ監視があれば、SELECT文をセットでデータベースに送信し稼働状況を確認可能です。

|-----------------------------------------------------------|

| APPLICATIONS_STATUS                      |

|-----------------------------------------------------------|

| APPLICATIONS_NAME   | Status         |

|-----------------------------------------------------------|

| PURCHASE                    | OK             |

| CRM                                | CRITICAL    |

| PAYROLL                        | OK             |

| LEADS                            | OK             |

|-----------------------------------------------------------|

SELECT * APPLICATIONS_STATUS

上記コマンドを実行すると、実行中のアプリケーションとそのステータスをリストアップできます。ステータスが「重大(CRITICAL)」のアプリケーションがあれば特定でき、Applications Managerに設定したアラートで必要なアクションを起こすことが可能です。問題解決のアクションには、チケットの作成やスクリプトの実行が選択できます。

データベース クエリ監視は複数データベースがつながるネットワークでのボトルネック特定にも利用でき、問題のあるDBをピンポイントしてトラブルシュートが可能になります。このようなボトルネックは、アプリケーションやデータベースに問題のあるものが混ざっていると発生の可能性があります。データベース クエリ監視を利用すれば、所定のクエリをセットで実行して結果の分析が可能となり、事象を引き起こしたエラーの明確な情報を把握できます。結果では、実行時間も把握可能です(クエリから結果の生成にかかる時間)。クエリの実行時間が設定したしきい値を超えればデータベースの問題とわかり、しきい値未満であれば問題は別の場所にあると切り分け可能です。

情報マークデータベース クエリ監視では現在、以下のデータベースをサポートしています。

  • Db2
  • Informix
  • Ingres
  • MS SQL
  • MySQL
  • Oracle
  • Oracle RAC
  • PostgreSQL
  • Sybase
  • Db2 for i
  • SAP MaxDB
  • SAP HANA
制限事項

Enterprise Editionでは、データベース監視はAdminサーバーに追加できますが、データベース クエリ監視はManagedサーバーにしか追加できません。NoSQLのクエリは、現在、監視できません。

Applications Managerには、出力にあるカラム値を属性タイプごとに比較する機能もあります。レポートは有効・無効の切り替えが可能です。

メモ:クエリ数は最多で5に制限してあります。出力行数は50までです。

以下、データベース クエリ監視でOracle Databaseに使うJDBC URLを示します。

jdbc:oracle:thin:@HOSTNAME:PORTNUMBER:INSTANCE

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=PORTNUMBER)))(CONNECT_DATA=(SID=INSTANCE)(SERVER=DEDICATED)))

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=HOSTNAME)(PORT=PORTNUMBER))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=INSTANCE)))

jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=yes)(ADDRESS=(PROTOCOL=TCP)(HOST=NODE1-VIP)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=NODE2-VIP)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MYRAC)))


よくある質問とトラブルシュート

1:SQLクエリはどのように記載すればよいでしょうか?

クエリは行ごとに1つ記載し、最多で2,000文字にしてください。クエリの数は監視ごとに5つに制限されています。クエリは改行で区切って下さい。出力行数は50までに制限がかかっています。

結果にカラムが複数ある場合、主キーとなる文字列値のカラムの設定を推奨します。

クエリには識別子が必要です。COUNTがかかわるクエリでは、ダミー カラムを用意して主キーにすることを推奨します。

次の例で考えてみることとします。

SELECT COUNT(*) FROM app_pending_tasks;

上記のクエリでは、識別子はalert_countで、ダミーの主カラムから値を取得します。ポーリング時にクエリが実行されるたびに、主キーの選択に従って実際のCOUNT値を保存します。この場合の主キーは、alert_countです。

COUNT属性にアラートを設定したり、しきい値を定義したりすることもできます。

参考情報:MS SQLでの識別子解説

2:COUNT、MIN、MAXなど集計関数を使う場合、SQLクエリはどのように記載すればよいでしょうか?

クエリは行ごとに1つ記載し、最多で2,000文字にしてください。クエリの数は監視ごとに5つに制限されています。クエリは改行で区切って下さい。出力行数は50までに制限がかかっています。

結果にカラムが複数ある場合、主キーとなる文字列値のカラムの設定を推奨します。

COUNTがかかわるクエリでは、ダミー カラムを用意して主キーにすることを推奨します。

アプリケーションで保留中のタスクがapp_pending_tasksテーブルに保存されており、このタスク数を監視するシナリオを考えてみます。

この場合、典型的には、クエリを次のように組むことが可能です。

SELECT COUNT(*) FROM app_pending_tasks;

上記のクエリには、識別子がないという問題があります。代替策としては、クエリを次のようにすることもできます。

MySQL、Oracle、Sybaseの場合
---------------------------------
SELECT 'Number of Pending Tasks', COUNT(*) AS totalcount FROR app_pending_tasks;

Number of Pending Tasksが主カラムになります。

MS SQL、PostgreSQL、Db2の場合
---------------------------------
SELECT 'Number of Pending Tasks' AS NumberOfPendingTasks, COUNT(*) AS totalcount FROM app_pending_tasks;

Number of Pending Tasksが主カラムになります。

これにより「totalcount」について、しきい値にもとづくアラートとレポート作成が可能になります。

メモ:データベース クエリ監視を追加したのち、テーブルごとに主キーを選択・更新してください。