• /
  • EnglishEspañolFrançais日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

NRDOTによるWindowsセルフホスト型MSSQL監視

プレビュー

この機能はまだ開発中ですが、ぜひお試しください。

この機能は現在、弊社のプレリリース ポリシーに従ってプレビューの一部として提供されています。

物理サーバー、仮想マシン、およびスタンドアロンのWindowsインストレーションを含むWindowsセルフホスト環境で、NRDOTコレクターを使用してMicrosoft SQL Serverの監視をセットアップします。

SQL Serverのセキュリティ設定に基づいて、NRDOT CollectorをSQL Serverインスタンスに接続するための3つの認証方法から選択できます:

前提条件

ご使用の環境がNew Relicの互換性および前提条件を満たしていることを確認してください。

NRDOT Collectorセットアップ

WindowsシステムにNRDOT Collectorをインストールします。

  1. PowerShellを使用してNRDOT Collectorをダウンロードし、インストールします:

    [Net.ServicePointManager]::SecurityProtocol = 'tls12, tls'; $NRDOT_VERSION = (Invoke-RestMethod -Uri "https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest").tag_name; $WebClient = New-Object System.Net.WebClient; $WebClient.Headers.Add("User-Agent", "Mozilla/5.0"); $WebClient.DownloadFile("https://github.com/newrelic/nrdot-collector-releases/releases/download/$NRDOT_VERSION/nrdot-collector_${NRDOT_VERSION}_windows_x64.msi", "$env:TEMP\nrdot-collector.msi"); Start-Process msiexec.exe -ArgumentList "/i `"$env:TEMP\nrdot-collector.msi`" /qn /norestart /L*V `"$env:TEMP\nrdot_install.log`"" -Wait; Get-Service nrdot-collector -ErrorAction SilentlyContinue

データベースユーザーを構成する

次のスクリプトをroot user/sysadminとして実行して、 newrelic監視ユーザーを作成し、グローバル読み取り権限を付与します。

newrelic監視ユーザーを作成するには、SQL Server Management Studio (SSMS) を使用して次のスクリプトを実行します。

USE [master];
GO
CREATE LOGIN [newrelic] WITH PASSWORD = '<PASSWORD>';
GO
GRANT VIEW SERVER STATE TO [newrelic];
GRANT VIEW ANY DEFINITION TO [newrelic];
GRANT VIEW ANY DATABASE TO [newrelic];
GO
DECLARE @name SYSNAME;
DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FOR
SELECT [name]
FROM [master].[sys].[databases]
WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution')
AND [state] = 0;
OPEN db_cursor;
FETCH NEXT FROM db_cursor INTO @name;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
EXEC('USE [' + @name + '];
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''newrelic'')
BEGIN
CREATE USER [newrelic] FOR LOGIN [newrelic];
END;
GRANT VIEW DATABASE STATE TO [newrelic];');
END TRY
BEGIN CATCH
PRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE();
END CATCH
FETCH NEXT FROM db_cursor INTO @name;
END
CLOSE db_cursor;
DEALLOCATE db_cursor;
GO

NRDOT Collectorを構成する

監視ニーズに基づいて設定タイプを選択してください:

設定パラメーター

次の表は、 nrsqlserver受信機のキー設定を説明しています。

パラメータ説明
<YOUR_USERNAME>認証用のデータベースユーザー名を入力してください
<YOUR_PASSWORD>認証用のデータベースパスワードを入力してください
<YOUR_SERVER>SQL Serverのホスト名またはIPアドレスを入力してください
<YOUR_PORT>SQL Serverのポート番号を入力します。デフォルト値は1433です。
<YOUR_OTLP_ENDPOINT>New Relic OTLP エンドポイントを入力します。詳細については、 New Relic OTLP エンドポイントのドキュメントを参照してください。
<YOUR_LICENSE_KEY>New Relicのライセンスキーを入力してください。
collection_intervalデータベースメトリクスを収集する間隔(秒単位)。デフォルト:15s

ヒント

注:利用可能なすべてのメトリクスを有効にする場合は、メモリリミッターによるデータのドロップを防ぐために、limit_mibの値を増やしてください(例:1000)。

ヒント

注意:max_concurrent_queriesオプションは、各スクレイプサイクル中にレシーバーがSQL Serverに対して並列に実行するメトリクスクエリの数を制御します。

receivers:
nrsqlserver:
max_concurrent_queries: 4 # default is 4 if omitted or set to 0

Windowsサービスレジストリの更新

新しいmssql-config.yamlファイルを使用するようにWindowsサービスレジストリを更新します。

方法1:PowerShell

PowerShellでアドミニストレーターとして次のコマンドを実行します:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\nrdot-collector" -Name "ImagePath" -Value '"C:\Program Files\nrdot-collector\nrdot-collector.exe" --config "C:\Program Files\nrdot-collector\mssql-config.yaml"'

方法2:コマンドプロンプト(代替)

PowerShellが利用できない場合は、代わりにコマンドプロンプトを使用できます:

  1. スタートメニューを開き、次のように入力します cmd
  2. コマンドプロンプトを右クリックし、Run as administrator [アドミニストレーターとして実行]を選択します。
  3. この正確なコマンドを黒いCMDウィンドウにコピーして貼り付け、Enterキーを押します:
sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""

NRDOT Collector の設定を検証する

NRDOT Collectorの設定を検証して、正しくフォーマットされ、適切に機能することを確認します。

& "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\nrdot-collector\mssql-config.yaml"

NRDOTコレクターを再起動します

設定を更新した後、NRDOT Collectorサービスを再起動します:

bash
$
net stop nrdot-collector
$
net start nrdot-collector

ヒント

新しい設定を確実に有効にするために、構成の変更後は必ず NRDOT コレクター サービスを再起動してください。

(オプション)APMとデータベースの相関関係を設定する

アプリケーションのパフォーマンスをデータベース操作と関連付けるために、データベース サービス ID を設定できます。 この機能を使用すると、特定のデータベース ワークロードを生成しているアプリケーションを正確に確認できます。詳細については、「 New RelicでAPMとデータベースの相関関係を取得するためのデータベース サービス ID のセットアップ」を参照してください。

重要

APM でデータベース パフォーマンス データを表示するには、両方のエンティティが同じ New Relic アカウント内にある必要があります。エンティティが異なる New Relic アカウントにある場合、データを表示するには両方のアカウントにアクセスできる必要があります。

(オプション)シークレット管理を構成する

シークレット管理機能を使用すると、データベース資格情報などの機密情報を安全に管理できます。これにより、構成ファイルに機密データをハードコーディングすることを避け、監視設定のセキュリティを強化できます。詳細については、シークレット管理を参照してください。

データを探す、使う

データが収集されると、New Relic の UI を通じて包括的な SQL Server データベース監視にアクセスできるようになります。

New Relic で SQL Server データベース エンティティを見つけるには:

  1. https://one.newrelic.com > All Capabilities > Databasesに移動します。
  2. Entity typeドロップダウンからMSSQL instanceを選択し、Applyをクリックします。
  3. エンティティのリストから SQL Server データベースを選択します。

前提条件

ご使用の環境がNew Relicの互換性および前提条件を満たしていることを確認してください。

Windows認証の追加要件:

  • Active Directoryを使用したWindowsドメイン環境
  • Windows認証を受け入れるように設定されたSQL Server
  • 適切なSQL Server権限を持つドメインユーザーアカウント
  • ドメインアカウントコンテキストで実行されているNRDOT Collectorサービス

NRDOT Collectorセットアップ

WindowsシステムにNRDOT Collectorをインストールします。

  1. PowerShellを使用してNRDOT Collectorをダウンロードし、インストールします:

    [Net.ServicePointManager]::SecurityProtocol = 'tls12, tls'; $NRDOT_VERSION = (Invoke-RestMethod -Uri "https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest").tag_name; $WebClient = New-Object System.Net.WebClient; $WebClient.Headers.Add("User-Agent", "Mozilla/5.0"); $WebClient.DownloadFile("https://github.com/newrelic/nrdot-collector-releases/releases/download/$NRDOT_VERSION/nrdot-collector_${NRDOT_VERSION}_windows_x64.msi", "$env:TEMP\nrdot-collector.msi"); Start-Process msiexec.exe -ArgumentList "/i `"$env:TEMP\nrdot-collector.msi`" /qn /norestart /L*V `"$env:TEMP\nrdot_install.log`"" -Wait; Get-Service nrdot-collector -ErrorAction SilentlyContinue

Windows認証のセットアップを確認する

SQL ServerがWindows認証用に設定されていることを確認し、接続を検証します。

  1. Windowsユーザー名を確認します:

    SELECT SYSTEM_USER;
  2. 以下のコマンドを実行して、必要な権限が付与されていることを確認します<account_name>をステップ1のユーザー名に更新します):

    DECLARE @TargetUser SYSNAME = '<account_name>'; -- <-- Set your Windows user here
    -- 1. Create the checklist of required permissions from your script
    DECLARE @Checklist TABLE (Scope NVARCHAR(50), [Database] SYSNAME, [Permission] NVARCHAR(128));
    INSERT INTO @Checklist VALUES
    ('Server', 'ALL', 'VIEW SERVER STATE'),
    ('Server', 'ALL', 'VIEW ANY DEFINITION'),
    ('Server', 'ALL', 'VIEW ANY DATABASE');
    INSERT INTO @Checklist
    SELECT 'Database Role', [name], 'db_datareader' FROM sys.databases WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution') AND [state] = 0
    UNION ALL
    SELECT 'Database Explicit', [name], 'VIEW DATABASE STATE' FROM sys.databases WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution') AND [state] = 0
    UNION ALL
    SELECT 'Database Explicit', [name], 'VIEW DEFINITION' FROM sys.databases WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution') AND [state] = 0;
    -- 2. Gather existing explicit permissions
    WITH ExplicitPerms AS (
    SELECT 'Server' AS Scope, CAST('ALL' AS NVARCHAR(128)) COLLATE DATABASE_DEFAULT AS [Database], p.permission_name COLLATE DATABASE_DEFAULT AS [Permission]
    FROM sys.server_permissions p JOIN sys.server_principals l ON p.grantee_principal_id = l.principal_id WHERE l.name = @TargetUser
    UNION ALL
    SELECT 'Database Role', d.name COLLATE DATABASE_DEFAULT, r.name COLLATE DATABASE_DEFAULT
    FROM sys.databases d CROSS APPLY (SELECT dp_role.name FROM sys.database_role_members drm JOIN sys.database_principals dp_role ON drm.role_principal_id = dp_role.principal_id JOIN sys.database_principals dp_user ON drm.member_principal_id = dp_user.principal_id JOIN sys.server_principals sp ON dp_user.sid = sp.sid WHERE sp.name = @TargetUser) r WHERE d.state = 0
    UNION ALL
    SELECT 'Database Explicit', d.name COLLATE DATABASE_DEFAULT, p.permission_name COLLATE DATABASE_DEFAULT
    FROM sys.databases d CROSS APPLY (SELECT db_p.permission_name FROM sys.database_permissions db_p JOIN sys.database_principals dp_user ON db_p.grantee_principal_id = dp_user.principal_id JOIN sys.server_principals sp ON dp_user.sid = sp.sid WHERE sp.name = @TargetUser) p WHERE d.state = 0
    )
    -- 3. Output the exact verification matrix
    SELECT
    chk.Scope,
    chk.[Database],
    chk.[Permission] AS [Required Permission],
    CASE
    WHEN exp.[Permission] IS NOT NULL THEN 'GRANTED'
    WHEN IS_SRVROLEMEMBER('sysadmin', @TargetUser) = 1 THEN 'PASSED (via SysAdmin Role)'
    ELSE 'MISSING'
    END AS [Verification Status]
    FROM @Checklist chk
    LEFT JOIN ExplicitPerms exp ON chk.Scope = exp.Scope AND chk.[Database] = exp.[Database] AND chk.[Permission] = exp.[Permission]
    ORDER BY chk.Scope, chk.[Database], chk.[Permission];
  3. 必要な権限がない場合は、次の権限付与を実行します(<account_name>をWindowsアカウントに置き換えてください):

    USE [master];
    GO
    -- 1. Grant Instance-level permissions to your Windows Account
    GRANT VIEW SERVER STATE TO [<account_name>];
    GRANT VIEW ANY DEFINITION TO [<account_name>];
    GRANT VIEW ANY DATABASE TO [<account_name>];
    GO
    -- 2. Loop through all user databases and grant read/visibility permissions
    DECLARE @name SYSNAME;
    DECLARE @sql NVARCHAR(MAX);
    DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FOR
    SELECT [name]
    FROM [master].[sys].[databases]
    WHERE [name] NOT IN ('master', 'msdb', 'model', 'rdsadmin', 'distribution')
    AND [state] = 0; -- Only online databases
    OPEN db_cursor;
    FETCH NEXT FROM db_cursor INTO @name;
    WHILE @@FETCH_STATUS = 0
    BEGIN
    BEGIN TRY
    PRINT 'Granting permissions on database: ' + @name;
    -- Create the database user mapping if it doesn't exist, then grant roles
    SET @sql = '
    USE [' + @name + '];
    IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''<account_name>'')
    BEGIN
    CREATE USER [<account_name>] FOR LOGIN [<account_name>];
    END;
    GRANT VIEW DATABASE STATE TO [<account_name>];
    GRANT VIEW DEFINITION TO [<account_name>];
    ALTER ROLE db_datareader ADD MEMBER [<account_name>];';
    EXEC sp_executesql @sql;
    PRINT 'Success: ' + @name;
    END TRY
    BEGIN CATCH
    PRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE();
    END CATCH
    FETCH NEXT FROM db_cursor INTO @name;
    END
    CLOSE db_cursor;
    DEALLOCATE db_cursor;
    GO

    重要

    重要な注意事項: <account_name>のすべてのインスタンスを実際のWindowsアカウント名(例:ComputerName\Username)に置き換えます。SQL Server Management Studio(SSMS)またはsqlcmdユーティリティを使用して、これらのスクリプトを実行します。確認スクリプトは、不足している権限を正確に示します。

NRDOT Collectorを構成する

ニーズに基づいて監視設定を選択します:

設定パラメーター

次の表は、 nrsqlserver受信機のキー設定を説明しています。

パラメータ説明
<YOUR_HOSTNAME>SQL Serverのホスト名またはIPアドレスを入力してください
<YOUR_PORT>SQL Serverのポート番号を入力します。デフォルト値は1433です。
<YOUR_OTLP_ENDPOINT>New Relic OTLP エンドポイントを入力します。詳細については、 New Relic OTLP エンドポイントのドキュメントを参照してください。
<YOUR_LICENSE_KEY>New Relicのライセンスキーを入力してください。
collection_intervalデータベースメトリクスを収集する間隔(秒単位)。デフォルト:15s

ヒント

注:利用可能なすべてのメトリクスを有効にする場合は、メモリリミッターによるデータのドロップを防ぐために、limit_mibの値を増やしてください(例:1000)。

ヒント

注意:max_concurrent_queriesオプションは、各スクレイプサイクル中にレシーバーがSQL Serverに対して並列に実行するメトリクスクエリの数を制御します。

receivers:
nrsqlserver:
max_concurrent_queries: 4 # default is 4 if omitted or set to 0

Windowsサービスレジストリの更新

新しいmssql-config.yamlファイルを使用するようにWindowsサービスレジストリを更新します。

方法1:PowerShell

PowerShellでアドミニストレーターとして次のコマンドを実行します:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\nrdot-collector" -Name "ImagePath" -Value '"C:\Program Files\nrdot-collector\nrdot-collector.exe" --config "C:\Program Files\nrdot-collector\mssql-config.yaml"'

方法2:コマンドプロンプト(代替)

PowerShellが利用できない場合は、代わりにコマンドプロンプトを使用できます:

  1. スタートメニューを開き、次のように入力します cmd
  2. コマンドプロンプトを右クリックし、Run as administrator [アドミニストレーターとして実行]を選択します。
  3. この正確なコマンドを黒いCMDウィンドウにコピーして貼り付け、Enterキーを押します:
sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""

NRDOT Collector の設定を検証する

NRDOT Collectorの設定を検証して、正しくフォーマットされ、適切に機能することを確認します。

& "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\nrdot-collector\mssql-config.yaml"

NRDOTコレクターを再起動します

設定を更新した後、NRDOT Collectorサービスを再起動します:

bash
$
net stop nrdot-collector
$
net start nrdot-collector

ヒント

新しい設定を確実に有効にするために、構成の変更後は必ず NRDOT コレクター サービスを再起動してください。

(オプション)APMとデータベースの相関関係を設定する

アプリケーションのパフォーマンスをデータベース操作と関連付けるために、データベース サービス ID を設定できます。 この機能を使用すると、特定のデータベース ワークロードを生成しているアプリケーションを正確に確認できます。詳細については、「 New RelicでAPMとデータベースの相関関係を取得するためのデータベース サービス ID のセットアップ」を参照してください。

重要

APM でデータベース パフォーマンス データを表示するには、両方のエンティティが同じ New Relic アカウント内にある必要があります。エンティティが異なる New Relic アカウントにある場合、データを表示するには両方のアカウントにアクセスできる必要があります。

(オプション)シークレット管理を構成する

シークレット管理機能を使用すると、データベース資格情報などの機密情報を安全に管理できます。これにより、構成ファイルに機密データをハードコーディングすることを避け、監視設定のセキュリティを強化できます。詳細については、シークレット管理を参照してください。

データを探す、使う

データが収集されると、New Relic の UI を通じて包括的な SQL Server データベース監視にアクセスできるようになります。

New Relic で SQL Server データベース エンティティを見つけるには:

  1. https://one.newrelic.com > All Capabilities > Databasesに移動します。
  2. Entity typeドロップダウンからMSSQL instanceを選択し、Applyをクリックします。
  3. エンティティのリストから SQL Server データベースを選択します。

前提条件

ご使用の環境がNew Relicの互換性および前提条件を満たしていることを確認してください。

gMSA(グループ管理サービスアカウント)の追加要件:

  • gMSAをサポートするActive Directory環境
  • SQL Serverアクセス用に作成および設定されたgMSAアカウント
  • Windowsホストはドメインに参加しており、gMSAアカウントを使用する権限が付与されている必要があります。

NRDOT Collectorセットアップ

WindowsシステムにNRDOT Collectorをインストールします。

  1. PowerShellを使用してNRDOT Collectorをダウンロードし、インストールします:

    [Net.ServicePointManager]::SecurityProtocol = 'tls12, tls'; $NRDOT_VERSION = (Invoke-RestMethod -Uri "https://api.github.com/repos/newrelic/nrdot-collector-releases/releases/latest").tag_name; $WebClient = New-Object System.Net.WebClient; $WebClient.Headers.Add("User-Agent", "Mozilla/5.0"); $WebClient.DownloadFile("https://github.com/newrelic/nrdot-collector-releases/releases/download/$NRDOT_VERSION/nrdot-collector_${NRDOT_VERSION}_windows_x64.msi", "$env:TEMP\nrdot-collector.msi"); Start-Process msiexec.exe -ArgumentList "/i `"$env:TEMP\nrdot-collector.msi`" /qn /norestart /L*V `"$env:TEMP\nrdot_install.log`"" -Wait; Get-Service nrdot-collector -ErrorAction SilentlyContinue

MicrosoftSQLServerを有効にする

SSMSを開き、Windows認証でログインし、新しいクエリを開いて、次のデータベース管理スクリプトを実行します:

USE master;
GO
-- Provision an engine login identity for the gMSA
CREATE LOGIN [<DOMAIN>\<gMSA_NAME>$] FROM WINDOWS;
GO
-- Grant monitoring permissions
GRANT VIEW SERVER STATE TO [<DOMAIN>\<gMSA_NAME>$];
GRANT VIEW ANY DEFINITION TO [<DOMAIN>\<gMSA_NAME>$];
GRANT VIEW ANY DATABASE TO [<DOMAIN>\<gMSA_NAME>$];
GO
-- Grant access to all databases (required for query monitoring and tempdb metrics)
DECLARE @name SYSNAME;
DECLARE db_cursor CURSOR READ_ONLY FORWARD_ONLY FOR
SELECT [name] FROM [master].[sys].[databases]
WHERE [name] NOT IN ('master','msdb','model','rdsadmin','distribution')
AND [state] = 0;
OPEN db_cursor;
FETCH NEXT FROM db_cursor INTO @name;
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY
EXEC('USE [' + @name + '];
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = ''<DOMAIN>\<gMSA_NAME>$'')
BEGIN
CREATE USER [<DOMAIN>\<gMSA_NAME>$] FOR LOGIN [<DOMAIN>\<gMSA_NAME>$];
END;
GRANT VIEW DATABASE STATE TO [<DOMAIN>\<gMSA_NAME>$];');
END TRY
BEGIN CATCH
PRINT 'Error on ' + @name + ': ' + ERROR_MESSAGE();
END CATCH
FETCH NEXT FROM db_cursor INTO @name;
END
CLOSE db_cursor;
DEALLOCATE db_cursor;
GO

重要

[<DOMAIN>\<gMSA_NAME>$]を実際のgMSAアカウント名に置き換えます。末尾の$は、gMSAアカウントに必要です。

NRDOT CollectorサービスをgMSAとして実行するように設定する

NRDOT Collectorをインストールした後、PowerShellを使用してgMSAアカウントとして実行するようにサービスを設定します:

# Stop the NRDOT Collector service
Stop-Service nrdot-collector
# Configure service to use gMSA account
# Use cmd /c to avoid PowerShell treating $ as a variable
cmd /c 'sc config nrdot-collector obj= "DOMAIN\gMSA-Account$" password= ""'
# Verify the configuration
Get-WmiObject Win32_Service -Filter "Name='nrdot-collector'" | Select Name, StartName
# start the NRDOT Collector service
Start-Service nrdot-collector

重要

DOMAIN\gMSA-Account$を実際のgMSAアカウント名に置き換えます。gMSAアカウントには末尾の$が必要であることに注意してください。gMSAが自動的に認証を処理するため、パスワードは必要ありません。

NRDOT Collectorを構成する

ニーズに基づいて監視設定を選択します:

設定パラメーター

次の表は、 nrsqlserver受信機のキー設定を説明しています。

パラメータ説明
<YOUR_HOSTNAME>SQL Serverのホスト名またはIPアドレスを入力してください
<YOUR_PORT>SQL Serverのポート番号を入力します。デフォルト値は1433です。
<YOUR_OTLP_ENDPOINT>New Relic OTLP エンドポイントを入力します。詳細については、 New Relic OTLP エンドポイントのドキュメントを参照してください。
<YOUR_LICENSE_KEY>New Relicのライセンスキーを入力してください。
collection_intervalデータベースメトリクスを収集する間隔(秒単位)。デフォルト:15s

ヒント

注:利用可能なすべてのメトリクスを有効にする場合は、メモリリミッターによるデータのドロップを防ぐために、limit_mibの値を増やしてください(例:1000)。

ヒント

注意:max_concurrent_queriesオプションは、各スクレイプサイクル中にレシーバーがSQL Serverに対して並列に実行するメトリクスクエリの数を制御します。

receivers:
nrsqlserver:
max_concurrent_queries: 4 # default is 4 if omitted or set to 0

Windowsサービスレジストリの更新

新しいmssql-config.yamlファイルを使用するようにWindowsサービスレジストリを更新します。

方法1:PowerShell

PowerShellでアドミニストレーターとして次のコマンドを実行します:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\nrdot-collector" -Name "ImagePath" -Value '"C:\Program Files\nrdot-collector\nrdot-collector.exe" --config "C:\Program Files\nrdot-collector\mssql-config.yaml"'

方法2:コマンドプロンプト(代替)

PowerShellが利用できない場合は、代わりにコマンドプロンプトを使用できます:

  1. スタートメニューを開き、次のように入力します cmd
  2. コマンドプロンプトを右クリックし、Run as administrator [アドミニストレーターとして実行]を選択します。
  3. この正確なコマンドを黒いCMDウィンドウにコピーして貼り付け、Enterキーを押します:
sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""

NRDOT Collector の設定を検証する

NRDOT Collectorの設定を検証して、正しくフォーマットされ、適切に機能することを確認します。

& "C:\Program Files\nrdot-collector\nrdot-collector.exe" validate --config="C:\Program Files\nrdot-collector\mssql-config.yaml"

NRDOTコレクターを再起動します

設定を更新した後、NRDOT Collectorサービスを再起動します:

bash
$
net stop nrdot-collector
$
net start nrdot-collector

ヒント

新しい設定を確実に有効にするために、構成の変更後は必ず NRDOT コレクター サービスを再起動してください。

(オプション)APMとデータベースの相関関係を設定する

アプリケーションのパフォーマンスをデータベース操作と関連付けるために、データベース サービス ID を設定できます。 この機能を使用すると、特定のデータベース ワークロードを生成しているアプリケーションを正確に確認できます。詳細については、「 New RelicでAPMとデータベースの相関関係を取得するためのデータベース サービス ID のセットアップ」を参照してください。

重要

APM でデータベース パフォーマンス データを表示するには、両方のエンティティが同じ New Relic アカウント内にある必要があります。エンティティが異なる New Relic アカウントにある場合、データを表示するには両方のアカウントにアクセスできる必要があります。

(オプション)シークレット管理を構成する

シークレット管理機能を使用すると、データベース資格情報などの機密情報を安全に管理できます。これにより、構成ファイルに機密データをハードコーディングすることを避け、監視設定のセキュリティを強化できます。詳細については、シークレット管理を参照してください。

データを探す、使う

データが収集されると、New Relic の UI を通じて包括的な SQL Server データベース監視にアクセスできるようになります。

New Relic で SQL Server データベース エンティティを見つけるには:

  1. https://one.newrelic.com > All Capabilities > Databasesに移動します。
  2. Entity typeドロップダウンからMSSQL instanceを選択し、Applyをクリックします。
  3. エンティティのリストから SQL Server データベースを選択します。

次のステップ

Windowsセルフホスト型監視を設定した後:

Copyright © 2026 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.