Microsoft SQL Server クラスタのモニタ

既存のユーザアカウントを使用するか、または関連する権限を持つ新しいユーザアカウントを作成することによって、SQL Server をモニタできます。

Microsoft SQL Server クラスタのモニタ

データベースの可視性は、Microsoft SQL データベースの Always On クラスタ検出をサポートしています。MSSQL データベースサーバ 2012 以降の可用性グループ内のすべてのノードをモニタできます。

すべてのノードのモニタリングを有効にするには、次の手順を実行する必要があります。
  • コントローラレベルまたはエージェントレベルで dbagent.mssql.cluster.discovery.enabled プロパティを有効にします。このプロパティは、デフォルトで無効になっています。

  • クラスターノードの自動検出のために、コレクタの設定で可用性グループリスナーのホスト名とポートを指定します。

注: 読み取り専用ルーティングは、Always On 可用性のためにサポートされます。

認証方式

SQL Server は、次のいずれかの認証方式を使用してモニターできます。

  • Windows 認証済みアカウント(データベースエージェントが Windows で実行されている場合)
  • SQL Server 認証済みアカウント(データベースエージェントが Windows または Linux で実行されている場合)
  • Azure Active Directory のパスワード
  • Azure Active Directory のパスワード

    注: Azure SQL Managed Instance のモニタリング時には、以下の操作が必要です。
    • Microsoft オープン データベース コネクティビティ(ODBC)ドライバをインストールし、Azure Active Directory 統合を使用します。

    • SQL Server Management Studio(SSMS)クライアントをインストールします。このクライアントには、MSSQL JDBC ドライバが Azure Active Directory 統合を用いた認証に使用する adal.dll ファイルが含まれています。

はじめる前に

Windows 認証済みアカウントを使用して SQL Server データベースに接続するには、次の手順を実行します。

  • [新規コレクタの作成(Create New Collector)] ダイアログを使用してコレクタを作成する場合は、[Windows Authentication] チェックボックスをオンにします。
    注: データベース接続の詳細を更新するときは、ユーザ名とパスワードを指定しないでください。
  • データベースエージェント認証ライブラリへのパスを次のように指定します。
    バージョンの詳細 パス
    Windows 64 ビット
    CODE
    java -Djava.library.path="C:\dbagent_install_dir\auth\x64" -jar db-agent.jar
    Windows 32 ビット
    CODE
    java -Djava.library.path="C:\dbagent_install_dir\auth\x86" -jar db-agent.jar
  • Windows アカウントのユーザーが、データベースサーバーを認証するための適切な権限を持ち、データベースエージェントを起動できることを確認します。
  • Windows サービスを使用してデータベースエージェントを実行している場合は、サービスのログオンクレデンシャルを SQL Server アクセス権を持つ Windows アカウントに変更します。

Azure Active Directory パスワードを使用して SQL Server データベースに接続するには、Microsoft SQL Server コレクタの構成時に次のプロパティを追加します。

  • プロパティ:authentication
  • 値:ActiveDirectoryPassword

次のいずれかのフィールドを使用してプロパティを追加できます。

  • Connection Details > Custom JDBC Connection String
  • Advanced Options > Connection Properties

SQL Server ログオンのサーバレベルの権限

(モニタに必要な最小限の権限を持つ)新しい SQL Server ユーザを作成するには、次の手順を実行します。

  1. SQL Server Management Studio(SSMS)を使用して、AppD_User など、Splunk AppDynamics SQL Server データベースコレクタの新しいログインを作成します。
    新規ログイン
  2. 新しいユーザーを「master」および「msdb」データベースにマッピングするには、[Users mapped to this login] の下の [master] と [msdb] をクリックします。
    ログインプロパティ
    注: 「master」と「msdb」へのユーザマッピングは、モニタリングに必須です。[Object Browser] 画面でオブジェクト情報を表示するには、他のデータベースへの追加のマッピングが必要です。
  3. ログインを作成したら、AppD_User を [Login - New] ウィンドウで指定した名前に置き換えることによってユーザーに次の権限を付与します。
    CODE
    use master
    GRANT VIEW ANY DATABASE TO AppD_User;
    GRANT VIEW ANY definition to AppD_User;
    GRANT VIEW server state to AppD_User;
    GRANT SELECT ON [sys].[master_files] TO AppD_User;

SQL Server 用のオプションのオブジェクト権限

データベース(DB)可視性ユーザーインターフェイス内のオプション画面には、次のオブジェクト権限が必要です。

画面 オブジェクト権限

[Object Browser] > [Users]

CODE
GRANT execute on sp_helplogins to AppD_User;
注: セキュリティ管理者ロールが必要です。

[Object Browser] > [Storage]

オブジェクト ストレージ メタデータを表示するには、対象の他のデータベースへのユーザマッピングが必要です。

注: public ロールが必要です

[Object Browser] > [Job Status]

CODE
use msdb
GRANT SELECT on dbo.sysjobsteps TO AppD_User;
GRANT SELECT on dbo.sysjobs TO AppD_User;
GRANT SELECT on dbo.sysjobhistory TO AppD_User;
[Object Browser] > [Error Log]

バージョン 2005 以前の場合:

CODE
GRANT execute on sp_readErrorLog to AppD_User;

バージョン 2005 より後の場合:

CODE
GRANT EXECUTE ON xp_readerrorlog
注: セキュリティ管理者ロールが必要です。
[Object Browser] > [Database]

オブジェクト ストレージ メタデータを表示するには、対象の他のデータベースへのユーザマッピングが必要です(例:テーブル/ビューメタデータ)。

注: public ロールが必要です

次の図は、ユーザが AdventureWorks2012 データベースにどのようにマッピングされているかを示しています。