Microsoft SQL Server統合 は、MS SQL Server環境からプラットフォームにインベントリとメトリックを収集して送信します。プラットフォームでは、MSSQLServer環境の状態を確認できます。問題の原因を特定できるように、データベースとインスタンスレベルの両方のメトリックを収集します。
Microsoft SQL Server統合をインストールするには、次の手順を実行する必要があります。
インテグレーションのインストールとアクティブ化 。MicrosoftSQLServerを有効にします 。インテグレーションの設定 。データの検索と使用 。オプション: MicrosoftSQLServerの構成設定を使用します 。 互換性と要件 MicrosoftSQLServerのバージョン この統合は、2014 年から 2022 年までの Microsoft SQL Server バージョンと互換性があります。
TLS サポート TLS 認証は TLS 1.2 の最小バージョンである必要があります。
対応するオペレーティング・システム ウィンドウズ
Linux
特定のWindowsバージョンの包括的なリストについては、 互換性のあるオペレーティングシステム の表を確認してください。
システム要求 インテグレーションのインストールとアクティブ化 Microsoft SQL Server 統合をインストールするには、ご使用の環境に応じた手順に従ってください。
Windowsのインストール ご使用の環境に対応する最新の.MSIインストーラーイメージをダウンロードします。 管理者アカウントで、絶対パスを使用してインストールスクリプトを実行します。ご使用の環境に対応する例を使用してください。
32ビットWindows $ msiexec.exe /qn /i PATH_TO \ nri-mssql-amd386.msi
64ビットWindows $ msiexec.exe /qn /i PATH_TO \ nri-mssql-amd64.msi
C:\Program Files\New Relic\newrelic-infra\integrations.d\
に移動し、 mssql-config.yml.sample
ファイルの名前をmssql-config.yml
に変更します。
お気に入りのエディタで mssql-config.yml
構成ファイルを編集します。いくつかの 構成ファイルの例を確認してください。 。
Linuxのインストール インフラストラクチャ エージェントをインストールし 、 INTEGRATION_FILE_NAME
変数をnri-mssql
に置き換えます。
以下を実行して、ディレクトリをインテグレーションの設定フォルダーに変更します。
$ cd /etc/newrelic-infra/integrations.d
以下を実行して、サンプルの設定ファイルをコピーします。
$ sudo cp mssql-config.yml.sample mssql-config.yml
お気に入りのエディタで mssql-config.yml
構成ファイルを編集します。いくつかの 構成ファイルの例を確認してください。 。
MicrosoftSQLServerを有効にする Microsoft SQL Serverを監視するには、 CONNECT
、 VIEW SERVER STATE
、および読み取りアクセス許可を持つユーザーが必要です。
ヒント Microsoft SQL Serverでのログイン とユーザー の作成の詳細については、Microsoftのドキュメントを確認してください。
新しいログインを作成し、必要な権限を付与します。
SQLユーザーの場合 新しいログインを作成し、 CONNECT
とVIEW
の権限を付与します。
CREATE LOGIN newrelic WITH PASSWORD = MY_TEMPORAL_PASSWORD ;
GRANT CONNECT SQL TO newrelic ;
GRANT VIEW SERVER STATE TO newrelic ;
GRANT VIEW ANY DEFINITION TO newrelic ;
次のステートメントを使用して、ユーザーにREAD
アクセス権限を付与します。
FROM master . sys . databases
WHERE NAME NOT IN ( 'master' , 'msdb' , 'tempdb' , 'model' , 'rdsadmin' , 'distribution' )
FETCH NEXT FROM db_cursor INTO @name WHILE @ @FETCH_STATUS = 0
EXECUTE ( 'USE "' + @name + '"; CREATE USER newrelic FOR LOGIN newrelic;' ) ;
FETCH next FROM db_cursor INTO @name
次のコマンドを実行して、ユーザーが正常に作成されたことを確認します。
sqlcmd -U USERNAME -S HOST_NAME
Windowsドメインユーザーの場合 新しいログインを作成し、 CONNECT
とVIEW
の権限を付与します。
CREATE LOGIN [ DomainName\DomainUser ] FROM windows ;
GRANT CONNECT SQL TO [ Domain\ User ] ;
GRANT VIEW SERVER STATE TO [ Domain\ User ] ;
GRANT VIEW ANY DEFINITION TO [ Domain\ User ] ;
次のステートメントを使用して、ユーザーにREAD
アクセス権限を付与します。
FROM master . sys . databases
WHERE NAME NOT IN ( 'master' , 'msdb' , 'tempdb' , 'model' , 'rdsadmin' , 'distribution' )
FETCH NEXT FROM db_cursor INTO @name WHILE @ @FETCH_STATUS = 0
EXECUTE ( 'USE "' + @name + '"; CREATE USER [Domain\User] FOR LOGIN [Domain\User];' ) ;
FETCH next FROM db_cursor INTO @name
統合を構成する 統合のYAML構成ファイルmssql-config.yml
の構成を編集します。統合のYAML形式の構成では、必要なログイン資格情報を配置し、データの収集方法を構成できます。どのオプションを変更するかは、セットアップと設定によって異なります。設定ファイルの例 を確認できます。
構成ファイルには、 interval
、 timeout
、 inventory_source
などのすべての統合に適用できる共通の設定があります。これらの一般的な設定についてすべて読むには、 構成フォーマット のドキュメントを参照してください。
重要 レガシー構成および定義ファイルをまだ使用している場合は、この ドキュメント を参照してください。
mssql-config.ymlサンプルファイル 基本構成 これは、ローカルホストからメトリックとインベントリを収集するために使用される基本構成です。ポート1433でデフォルトの接続を使用します。
inventory_source : config/mssql
Windowsドメイン認証を使用した基本構成 これは、ローカルホストからメトリックとインベントリを収集するために使用される基本構成です。この場合、認証にドメインユーザーを使用します。
USERNAME : domain_name\domain_user
PASSWORD : domain_user_password
inventory_source : config/mssql
メトリック/在庫間隔が異なる基本構成 この構成では、15秒ごとにメトリックを収集し、60秒ごとにインベントリを収集します。
inventory_source : config/mssql
マルチインスタンス接続 この構成は、同じSQLServer上のmssql_instance1
}インスタンスとmssql_instance2
インスタンスを監視します。インスタンスに直接接続する場合は、 PORT
設定を削除する必要があります。 SQLブラウザサービスもサーバー上で実行されている必要があります。
INSTANCE : mssql_instance1
inventory_source : config/mssql
INSTANCE : mssql_instance2
inventory_source : config/mssql
メトリック-SSL経由でのみ接続 証明書の検証なしでSSLを使用してMSSQLに接続するために使用します。
TRUST_SERVER_CERTIFICATE : true
バッファプールとパーティションリザーブメトリックの最適化 統合によってSQLサーバーにオーバーヘッドが発生する場合は、バッファープールとデータベースパーティションリザーブのメトリックを無効にすると、統合のパフォーマンスを最適化するのに役立ちます。この例では、サンプリング間隔を30秒に増やして、サンプリング頻度を減らしました。
ENABLE_BUFFER_METRICS : false
ENABLE_DATABASE_RESERVE_METRICS : false
inventory_source : config/mssql
次の点に注意してください。
ENABLE_BUFFER_METRICS
を有効にすると、 sys.sysdatabases
およびsys.dm_os_buffer_descriptors
内部テーブルを含むクエリの実行が開始され、各データベースのバッファのプール サイズが取得されます。このクエリは、一部の SQL Server でオーバーヘッドを引き起こす可能性があります。ENABLE_BUFFER_METRICS
を無効にすると、メトリックbufferpool.sizePerDatabaseInBytes
MssqlDatabaseSample で報告されず、 buferpool.sizeInBytes
MssqlInstanceSample で報告されません。ENABLE_DATABASE_RESERVE_METRICS
を有効にすると、データベースごとに予約サイズが照会され、サイズと使用状況によってはサーバーに負荷がかかる場合があります。無効にすると、 pageFileTotal
とpageFileAvailable
両方のメトリックが MssqlDatabaseSample で報告されなくなります。カスタムクエリ カスタムカスタムクエリを使用して、追加のメトリックを収集できます。カスタムメトリックがMssqlCustomQuerySample
イベントサンプルに追加されます。
PASSWORD : mssql1_password
'instance_buffer_pool_size' AS metric_name ,
Count_big( *) * (8 *1024) AS metric_value ,
FROM sys.dm_os_buffer_descriptors WITH (nolock)
複数のカスタムクエリ 複数のカスタムSQLクエリが必要な場合は、それらをmssql-custom-query.yml
に追加し、構成でそのファイルを参照します。カスタムクエリのその他の例については、githubのサンプルファイルを 確認してください。
ヒント CUSTOM_METRICS_CONFIG
CUSTOM_METRICS_QUERY
が存在しない場合にのみ有効になります。
PASSWORD : mssql1_password
CUSTOM_METRICS_CONFIG : 'C:\path\to\mssql-custom-query.yml'
これがmssql-custom-query.yml
の例です。 - query : SELECT count( *) AS 'metric_value' FROM sys.databases
- query : SELECT CONCAT('category_' , category_id) AS metric_name , name AS metric_value , category_type FROM syscategories
- query : dbo.sp_server_info @attribute_id = 2
統合のための構成オプション データを検索して使用する方法の詳細については、 MicrosoftSQLServerの構成設定 を参照してください。
データを見つけて使用する 統合データを見つけるには、 one.newrelic.com > All capabilities > Infrastructure > Third-party services に移動し、Microsoft SQL Server 統合リンクの 1 つを選択します。
Microsoft SQL Serverのデータは、次のイベントタイプ に関連付けられています。
データを検索して使用する方法の詳細については、統合データ についてを参照してください。
統合によって収集されたメトリック Microsoft SQL Server統合は、次のメトリックデータ属性を収集します。一部のメトリック名には、 asserts.
やflush.
などのカテゴリインジケーターとピリオドが接頭辞として付けられます。
データベースメトリック これらの属性は、 MssqlDatabaseSample
イベントをクエリすることで見つけることができます。
メトリック
説明
bufferpool.sizePerDatabaseInBytes
データベースごとのバッファー プールのサイズ。ENABLE_BUFFER_METRICS
true に設定されている場合に報告されます。
io.stallInMilliseconds
最後の再起動からのストールの待機時間(ミリ秒単位)。
log.transactionGrowth
前回の再起動以降にデータベースのトランザクションログが拡張された合計回数。
pageFileAvailable
使用可能なページ ファイルのサイズ (バイト単位)。ENABLE_DATABASE_RESERVE_METRICS
true に設定されている場合に報告されます。
pageFileTotal
合計ページ ファイル サイズ (バイト単位)。ENABLE_DATABASE_RESERVE_METRICS
true に設定されている場合に報告されます。
インスタンスメトリック Microsoft SQL Server統合は、次のインスタンスメトリックを収集します。これらの属性は、 MssqlInstanceSample
イベントをクエリすることで見つけることができます。
メトリック
説明
access.pageSplitsPerSecond
1秒あたりのページ分割数。
activeConnections
アクティブな接続の数。
buffer.checkpointPagesPerSecond
すべてのダーティページをフラッシュする必要があるチェックポイントまたはその他の操作によって1秒あたりにディスクにフラッシュされたページ数。
bufferpool.batchRequestsPerSecond
バッファー・プールでの1秒あたりのバッチ要求の数。
bufferpool.pageLifeExptancyInMilliseconds
バッファプール内のページの平均余命(ミリ秒単位)。
bufferpool.sizeInBytes
バッファー プールのサイズ (バイト単位)。ENABLE_BUFFER_METRICS
true に設定されている場合に報告されます。
instance.backgroundProcessesCount
インスタンス上のバックグラウンドプロセスの数。
instance.blockedProcessesCount
インスタンスでブロックされたプロセスの数。
instance.diskInBytes
インスタンスのディスク容量(バイト単位)。
instance.dormantProcessesCount
インスタンス上の休止中のプロセスの数。
instance.forcedParameterizationsPerSecond
インスタンスでの1秒あたりの強制パラメーター化の数。
instance.preconnectProcessesCount
インスタンス上の事前接続プロセスの数。
instance.runnableProcessesCount
インスタンスで実行可能なプロセスの数。
instance.runnableTasks
インスタンスで実行可能なタスクの数。
instance.runningProcessesCount
インスタンスで実行中のプロセスの数。
instance.sleepingProcessesCount
インスタンスでスリープしているプロセスの数。
instance.suspendedProcessesCount
インスタンスで中断されているプロセスの数。
instance.transactionsPerSecond
インスタンスでの1秒あたりのトランザクション数。
memoryAvailable
使用可能な物理メモリ(バイト単位)。
memoryTotal
総物理メモリ(バイト単位)。
memoryUtilization
メモリ使用率のパーセンテージ。
stats.connections
ユーザー接続の数。
stats.deadlocksPerSecond
最後の再起動以降にデッドロックが発生した1秒あたりのロック要求の数。
stats.killConnectionErrorsPerSecond
最後の再起動以降の1秒あたりのキル接続エラーの数。
stats.lockWaitsPerSecond
MSSQLServerがリソースのロックをすぐに保持できない1秒あたりの回数。
stats.sqlCompilations
1秒あたりのMSSQLコンパイルの数。
stats.sqlRecompilationsPerSecond
1秒あたりのMSSQL再コンパイルの数。
stats.userErrorsPerSecond
最後の再起動以降の1秒あたりのユーザーエラーの数。
system.bufferPoolHitPercent
インスタンスでヒットしたバッファプールの割合。
system.waitTimeInMillisecondsPerSecond
インスタンス全体で待機に費やされた1秒あたりのミリ秒数。
待機メトリック これらの属性は、 MssqlWaitSample
イベントをクエリすることで見つけることができます。
メトリック
説明
system.waitTimeCount
この待機タイプの合計待機時間(ミリ秒単位)。今回はsignal_wait_time_ms
を含みます。
system.waitTimeInMillisecondsPerSecond
この待機タイプでの待機数(ミリ秒単位)。このカウンターは、各待機の開始時に増分されます。