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

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

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

問題を作成する

NRDOTを使用したWindows RDS MSSQL監視

|View as Markdown (English)

プレビュー

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

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

AWS RDS for SQL Serverインスタンスをモニターするために、Windows環境でNRDOT Collectorを使用してMicrosoft SQL Serverの監視をセットアップします。セルフホスト環境でモニターするには、Windowsのセルフホスト計装を参照してください。

代わりにNew Relic UIからこれをインストールするには、one.newrelic.com > Integrations & Agents > MSSQL (OpenTelemetry) にアクセスしてください。画面上の指示に従って、インテグレーションをセットアップします。このページでは、CLIのインストールパスのみを説明します。

RDS SQL Serverのセキュリティ設定に基づいて、NRDOT CollectorをRDSインスタンスに接続するための認証方法を選択してください:

前提条件

NRDOTを使用してMicrosoft SQL Serverを監視する前に、環境がこれらの要件を満たしていることを確認します:

  • 有効なライセンスキーを持つNew Relicアカウント

  • ご使用のリージョンのNew Relic OTLPエンドポイント

  • AWS RDS SQL Serverの要件:

    • RDSインスタンスで有効化されたSQL Server認証
    • RDSマスターユーザーの認証情報、またはrds_superuserロールを持つSQL Serverログインの認証情報
    • ポート1433またはカスタムポートでの接続を許可するように設定されたRDSセキュリティグループ
    • SQL Server Management Studio (SSMS) またはsqlcmdユーティリティ
  • New Relic OTLPエンドポイントへのネットワーク接続

  • RDS SQL ServerのエンドポイントURL。AWS RDSコンソールの「Connectivity & security」で確認できます。詳細については、AWS RDSのドキュメントを参照してください。

プレビューに登録

このインテグレーションは、New Relicパブリックプレビュープログラムの一部として利用可能です。Previews & Trialsページからオプトインするには、組織の管理者に連絡してください。

NRDOT Collectorをインストールする

RDS SQL Serverインスタンスに接続できるEC2 Windowsインスタンス、またはローカルのWindowsマシンにNRDOT Collectorをインストールしてください。

重要

RDS監視の場合、最適なネットワーク接続と低レイテンシを実現するために、RDSインスタンスと同じVPC内のEC2インスタンスにNRDOT Collectorをインストールします。

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

bash
$
[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

監視ユーザーを作成する

このスクリプトをアドミンユーザーとして実行して、newrelic監視ユーザーを作成し、SQL Serverのメトリクスを収集するために必要な権限を付与してください。

ヒント

RDSマスターユーザー名、またはrds_superuserロールを持つユーザーを使用して、これらのスクリプトを実行します。スクリプトは、AWSによって予約されているrdsadminデータベースを自動的に除外します。

SQL Server Management Studio(SSMS)で、次のスクリプトを実行してnewrelic監視ユーザーを作成します。<YOUR_PASSWORD>を希望するパスワードに置き換えます:

USE [master];
GO
CREATE LOGIN [newrelic] WITH PASSWORD = '<YOUR_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を構成する

RDS SQL Serverのセットアップ用に、新しいNRDOT Collector設定ファイルを作成します。

  1. アドミニストレーターとしてPowerShellでmssql-config.yamlという名前の設定ファイルを作成します:

    bash
    $
    New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType File
  2. 前の手順で作成したmssql-config.yamlファイルに以下の設定を追加します:

    完全な設定

    この設定は、RDS環境の不可欠なデータベース監視に焦点を当てています。利用可能なすべてのメトリクスを使用した包括的な監視を有効にするには、設定リファレンスを参照してください。

    mssql-config.yaml
    1
    receivers:
    2
    nrsqlserver:
    3
    collection_interval: 15s
    4
    username: newrelic
    5
    password: YOUR_PASSWORD
    6
    server: mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com
    7
    port: 1433
    8
    9
    # Enable comprehensive database metrics
    10
    metrics:
    11
    sqlserver.database.count:
    12
    enabled: true
    13
    sqlserver.database.io:
    14
    enabled: true
    15
    sqlserver.database.latency:
    16
    enabled: true
    17
    sqlserver.database.operations:
    18
    enabled: true
    19
    sqlserver.database.tempdb.space:
    20
    enabled: true
    21
    sqlserver.database.tempdb.version_store.size:
    22
    enabled: true
    23
    sqlserver.deadlock.rate:
    24
    enabled: true
    25
    sqlserver.os.wait.duration:
    26
    enabled: true
    27
    sqlserver.processes.blocked:
    28
    enabled: true
    29
    sqlserver.memory.grants.pending.count:
    30
    enabled: true
    31
    sqlserver.database.file.size:
    32
    enabled: true
    33
    sqlserver.memory.area:
    34
    enabled: true
    35
    36
    # Enable top query and query sample log collection
    37
    events:
    38
    db.server.query_sample:
    39
    enabled: true
    40
    db.server.top_query:
    41
    enabled: true
    42
    43
    # Top query collection configuration
    44
    top_query_collection:
    45
    lookback_time: 60s
    46
    max_query_sample_count: 1000
    47
    top_query_count: 250
    48
    collection_interval: 60s
    49
    50
    collect_full_query_text: true
    51
    allowed_comment_keys:
    52
    - nr_service_guid
    53
    54
    # Query sample collection configuration
    55
    query_sample_collection:
    56
    max_rows_per_query: 100
    57
    58
    processors:
    59
    memory_limiter:
    60
    check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}
    61
    limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}
    62
    spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}
    63
    64
    batch:
    65
    66
    exporters:
    67
    otlp:
    68
    endpoint: https://otlp.nr-data.net:4318
    69
    headers:
    70
    api-key: YOUR_LICENSE_KEY
    71
    tls:
    72
    insecure: false
    73
    compression: gzip
    74
    75
    service:
    76
    telemetry:
    77
    metrics:
    78
    level: none
    79
    80
    pipelines:
    81
    metrics:
    82
    receivers: [nrsqlserver]
    83
    processors: [memory_limiter, batch]
    84
    exporters: [otlp]
    85
    86
    logs:
    87
    receivers: [nrsqlserver]
    88
    processors: [memory_limiter, batch]
    89
    exporters: [otlp]

Windowsサービスレジストリを更新します。

  1. 次のいずれかの方法を使用して、新しいmssql-config.yamlファイルを使用するようにWindowsサービスレジストリを更新します:

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

      bash
      $
      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"'
    • コマンドプロンプトの場合:PowerShellが利用できない場合は、代わりにコマンドプロンプトを使用し、アドミニストレーターとして次のコマンドを実行します:

    bash
    $
    sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""
  2. NRDOT Collectorの設定を検証して、正しくフォーマットされ、適切に機能することを確認します。

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

    ヒント

    アプリケーションパフォーマンスとデータベース操作を関連付けるには、データベースサービス識別をセットアップできます。詳細については、データベースサービスの識別の設定を参照してください。

NRDOT Collectorを再起動します

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

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

ヒント

新しい設定を確実に適用するために、設定を変更した後は常にNRDOT Collectorサービスを再起動してください。

データを探す、使う

データが収集されると、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 データベースを選択します。

    NRDOTを使用してSQL Serverの監視をセットアップした後、次のことができます:

前提条件

Windowsドメイン認証を使用してNRDOTでMicrosoft SQL Serverを監視する前に、環境が以下の要件を満たしていることを確認してください:

  • 有効なライセンスキーを持つNew Relicアカウント

  • ご使用のリージョンのNew Relic OTLPエンドポイント

  • SQL Serverの要件として、以下が必要です:

    • Amazon RDS上のSQL Server 2017以降
    • RDSマスターユーザーの認証情報、またはrds_superuserロールを持つSQL Serverログインの認証情報
    • ポート1433またはカスタムポートでの接続を許可するように設定されたRDSセキュリティグループ
    • SQL Server Management Studio (SSMS) またはsqlcmdユーティリティ
    • AWS Active Directoryサービスに関連付けられたRDSインスタンス
  • Windowsドメイン認証の要件:

    • Active Directoryを使用したWindowsドメイン環境
    • ドメイン参加済みWindows EC2インスタンス
    • Windows認証を受け入れるように設定されたRDS SQL Server
    • NRDOT Collectorによって使用されるドメインユーザーアカウント
  • New Relic OTLPエンドポイントへのネットワーク接続

  • RDS SQL ServerのエンドポイントURL。AWS RDSコンソールの「Connectivity & security」で確認できます。詳細については、AWS RDSのドキュメントを参照してください。

プレビューに登録

このインテグレーションは、New Relicパブリックプレビュープログラムの一部として利用可能です。Previews & Trialsページからオプトインするには、組織の管理者に連絡してください。

NRDOT Collectorをインストールする

ドメインに参加しているEC2 Windowsインスタンス、または同じドメインに属し、RDS SQL Serverインスタンスに接続できるローカルのWindowsマシンに、NRDOT Collectorをインストールします。

重要

RDS監視の場合、最適なネットワーク接続と低レイテンシを実現するために、RDSインスタンスと同じVPC内のEC2インスタンスにNRDOT Collectorをインストールします。

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

    bash
    $
    [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 Management Studio(SSMS)またはsqlcmdを使用して、RDS SQL Serverインスタンスに接続します。

SQL Server Management Studio(SSMS)で次のスクリプトを実行し、gMSAアカウントのログインを作成して、必要な権限を付与します。<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>のすべての出現箇所を、実際のドメインとアカウント名に置き換えます。

USE [master];
GO
CREATE LOGIN [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>] FROM WINDOWS;
GO
GRANT VIEW ANY DATABASE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];
GRANT VIEW SERVER STATE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];
GRANT VIEW ANY DEFINITION TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];
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 = ''<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>'')
BEGIN
CREATE USER [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>] FOR LOGIN [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];
END;
GRANT VIEW DATABASE STATE TO [<YOUR_DOMAIN>\<YOUR_DOMAIN_USER>];');
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

ヒント

データベースの認証情報などの機密情報を安全に管理するには、シークレット管理ツールに保存してください。

ドメインユーザーとして実行

  1. PowerShellを使用して、ドメインユーザーとして実行するようにNRDOT Collectorサービスを設定します。YOUR_DOMAIN\YOUR_USER_ACCOUNTをドメインとアカウント名に置き換えます:

    bash
    $
    # Configure service to use domain account
    $
    # The space after obj= and password= is required syntax for sc.exe
    $
    sc.exe config "nrdot-collector" obj= "YOUR_DOMAIN\YOUR_USER_ACCOUNT" password= "<YOUR_PASSWORD>"
    $
    $
    # Restart the service
    $
    Restart-Service nrdot-collector
  2. サービスIDを検証します:

    bash
    $
    Get-WmiObject Win32_Service -Filter "Name='nrdot-collector'" | Select Name, State, StartName
    $
    # Expected: StartName = YOUR_DOMAIN\YOUR_USER_ACCOUNT

NRDOT Collectorを構成する

  1. アドミニストレーターとしてPowerShellでmssql-config.yamlという名前の設定ファイルを作成します:

    bash
    $
    New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType File
  2. 前の手順で作成したmssql-config.yamlファイルに以下の設定を追加します:

    重要

    Windowsドメイン認証は統合セキュリティを使用しており、gMSA認証と同じ設定アプローチを使用します。datasourceサーバーの値をRDSエンドポイントに更新してください。NRDOTサービスは、ステップ3で設定したドメインアカウントを使用して認証します。

    mssql-config.yaml
    1
    receivers:
    2
    nrsqlserver:
    3
    collection_interval: 15s
    4
    datasource: "server=mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com;port=1433;integrated security=true;encrypt=true;TrustServerCertificate=true;"
    5
    6
    # Enable comprehensive database metrics
    7
    metrics:
    8
    sqlserver.database.count:
    9
    enabled: true
    10
    sqlserver.database.io:
    11
    enabled: true
    12
    sqlserver.database.latency:
    13
    enabled: true
    14
    sqlserver.database.operations:
    15
    enabled: true
    16
    sqlserver.database.tempdb.space:
    17
    enabled: true
    18
    sqlserver.database.tempdb.version_store.size:
    19
    enabled: true
    20
    sqlserver.deadlock.rate:
    21
    enabled: true
    22
    sqlserver.os.wait.duration:
    23
    enabled: true
    24
    sqlserver.processes.blocked:
    25
    enabled: true
    26
    sqlserver.memory.grants.pending.count:
    27
    enabled: true
    28
    sqlserver.database.file.size:
    29
    enabled: true
    30
    sqlserver.memory.area:
    31
    enabled: true
    32
    33
    # Enable top query and query sample log collection
    34
    events:
    35
    db.server.query_sample:
    36
    enabled: true
    37
    db.server.top_query:
    38
    enabled: true
    39
    40
    # Top query collection configuration
    41
    top_query_collection:
    42
    lookback_time: 60s
    43
    max_query_sample_count: 1000
    44
    top_query_count: 250
    45
    collection_interval: 60s
    46
    47
    collect_full_query_text: true
    48
    allowed_comment_keys:
    49
    - nr_service_guid
    50
    51
    # Query sample collection configuration
    52
    query_sample_collection:
    53
    max_rows_per_query: 100
    54
    55
    processors:
    56
    memory_limiter:
    57
    check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}
    58
    limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}
    59
    spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}
    60
    61
    batch:
    62
    63
    exporters:
    64
    otlp:
    65
    endpoint: https://otlp.nr-data.net:4318
    66
    headers:
    67
    api-key: YOUR_LICENSE_KEY
    68
    tls:
    69
    insecure: false
    70
    compression: gzip
    71
    72
    service:
    73
    telemetry:
    74
    metrics:
    75
    level: none
    76
    77
    pipelines:
    78
    metrics:
    79
    receivers: [nrsqlserver]
    80
    processors: [memory_limiter, batch]
    81
    exporters: [otlp]
    82
    83
    logs:
    84
    receivers: [nrsqlserver]
    85
    processors: [memory_limiter, batch]
    86
    exporters: [otlp]

    完全な設定

    この設定は、RDS環境の不可欠なデータベース監視に焦点を当てています。利用可能なすべてのメトリクスによる包括的な監視を有効にするには、設定リファレンスを参照してください。

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

  1. 次のいずれかの方法を使用して、新しいmssql-config.yamlファイルを使用するようにWindowsサービスレジストリを更新します:

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

      bash
      $
      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"'
    • コマンドプロンプトの場合:PowerShellが利用できない場合は、代わりにコマンドプロンプトを使用し、アドミニストレーターとして次のコマンドを実行します:

    bash
    $
    sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""
  2. NRDOT Collectorの設定を検証して、正しくフォーマットされ、適切に機能することを確認します:

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

    ヒント

    アプリケーションパフォーマンスとデータベース操作を関連付けるには、データベースサービス識別をセットアップできます。詳細については、データベースサービス識別セットアップガイドを参照してください。

NRDOT Collectorを再起動します

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

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

Windowsサービス(services.msc)をチェックして、サービスがドメインアカウントで実行されていることを確認してください。Log On As列にドメインアカウントが表示されるはずです。例:CORP\SQLMonitor

データを探す、使う

データが収集されると、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 データベースを選択します。

    NRDOTを使用してSQL Serverの監視をセットアップした後、次のことができます:

前提条件

gMSA認証を使用してNRDOTでMicrosoft SQL Serverを監視する前に、次のことを確認してください:

  • 有効なライセンスキーを持つNew Relicアカウント

  • ご使用のリージョンのNew Relic OTLPエンドポイント

  • SQL Serverの要件として、以下が必要です:

    • Amazon RDS上のSQL Server 2017以降
    • RDSマスターユーザーの認証情報、またはrds_superuserロールを持つSQL Serverログインの認証情報
    • ポート1433またはカスタムポートでの接続を許可するように設定されたRDSセキュリティグループ
    • SQL Server Management Studio (SSMS) またはsqlcmdユーティリティ
    • AWS Active Directoryサービスに関連付けられたRDSインスタンス
  • RDS SQL ServerのエンドポイントURL。AWS RDSコンソールの「Connectivity & security」で確認できます。詳細については、AWS RDSのドキュメントを参照してください。

  • gMSAをサポートするActive Directory環境

  • gMSAアカウントの使用を許可された、ドメインに参加しているWindows EC2インスタンス

  • New Relic OTLPエンドポイントへのネットワーク接続

プレビューに登録

このインテグレーションは、New Relicパブリックプレビュープログラムの一部として利用可能です。Previews & Trialsページからオプトインするには、組織の管理者に連絡してください。

NRDOT Collectorをインストールする

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

bash
$
[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

監視ユーザーを作成する

管理者権限を持つSQL Server Management Studio(SSMS)またはsqlcmdを使用して、RDS SQL Serverインスタンスに接続します。

SQL Server Management Studio(SSMS)で次のスクリプトを実行し、gMSAアカウントのログインを作成して、必要な権限を付与します。<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>のすべての出現箇所を、実際のドメインとアカウント名に置き換えます。

USE [master];
GO
CREATE LOGIN [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$] FROM WINDOWS;
GO
GRANT VIEW ANY DATABASE TO [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$];
GRANT VIEW SERVER STATE TO [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$];
GRANT VIEW ANY DEFINITION TO [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$];
GO
-- Grant access to all databases
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 = ''<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$'')
BEGIN
CREATE USER [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$] FOR LOGIN [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$];
END;
GRANT VIEW DATABASE STATE TO [<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$];');
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

ヒント

データベースの認証情報などの機密情報を安全に管理するには、シークレット管理ツールに保存してください。

gMSAアカウントとして実行する

PowerShellを使用して、gMSAアカウントとして実行するようにNRDOT Collectorサービスを設定します。<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$をドメインとgMSAアカウント名に置き換えます。gMSAアカウントには必須であるため、最後に$を含める必要があります:

bash
$
# 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= "<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$" password= ""'
$
$
# Verify the configuration
$
Get-WmiObject Win32_Service -Filter "Name='nrdot-collector'" | Select Name, StartName
$
$
# Start the NRDOT Collector service
$
Start-Service nrdot-collector

重要

gMSAアカウントはパスワードを必要としません。サービスを設定する際は、空のままにしてください。

NRDOT Collectorを構成する

  1. アドミニストレーターとしてPowerShellでmssql-config.yamlという名前の設定ファイルを作成します:

    bash
    $
    New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType File
  2. 前の手順で作成したmssql-config.yamlファイルに以下の設定を追加します:

    完全な設定

    この設定は、RDS環境の不可欠なデータベース監視に焦点を当てています。利用可能なすべてのメトリクスを使用した包括的な監視を有効にするには、設定リファレンスを参照してください。

    mssql-config.yaml
    1
    receivers:
    2
    nrsqlserver:
    3
    collection_interval: 15s
    4
    datasource: "server=mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com;port=1433;integrated security=true;encrypt=true;TrustServerCertificate=true;"
    5
    6
    # Enable comprehensive database metrics
    7
    metrics:
    8
    sqlserver.database.count:
    9
    enabled: true
    10
    sqlserver.database.io:
    11
    enabled: true
    12
    sqlserver.database.latency:
    13
    enabled: true
    14
    sqlserver.database.operations:
    15
    enabled: true
    16
    sqlserver.database.tempdb.space:
    17
    enabled: true
    18
    sqlserver.database.tempdb.version_store.size:
    19
    enabled: true
    20
    sqlserver.deadlock.rate:
    21
    enabled: true
    22
    sqlserver.os.wait.duration:
    23
    enabled: true
    24
    sqlserver.processes.blocked:
    25
    enabled: true
    26
    sqlserver.memory.grants.pending.count:
    27
    enabled: true
    28
    sqlserver.database.file.size:
    29
    enabled: true
    30
    sqlserver.memory.area:
    31
    enabled: true
    32
    33
    # Enable top query and query sample log collection
    34
    events:
    35
    db.server.query_sample:
    36
    enabled: true
    37
    db.server.top_query:
    38
    enabled: true
    39
    40
    # Top query collection configuration
    41
    top_query_collection:
    42
    lookback_time: 60s
    43
    max_query_sample_count: 1000
    44
    top_query_count: 250
    45
    collection_interval: 60s
    46
    47
    collect_full_query_text: true
    48
    allowed_comment_keys:
    49
    - nr_service_guid
    50
    51
    # Query sample collection configuration
    52
    query_sample_collection:
    53
    max_rows_per_query: 100
    54
    55
    processors:
    56
    memory_limiter:
    57
    check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}
    58
    limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}
    59
    spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}
    60
    61
    batch:
    62
    63
    exporters:
    64
    otlp:
    65
    endpoint: https://otlp.nr-data.net:4318
    66
    headers:
    67
    api-key: YOUR_LICENSE_KEY
    68
    tls:
    69
    insecure: false
    70
    compression: gzip
    71
    72
    service:
    73
    telemetry:
    74
    metrics:
    75
    level: none
    76
    77
    pipelines:
    78
    metrics:
    79
    receivers: [nrsqlserver]
    80
    processors: [memory_limiter, batch]
    81
    exporters: [otlp]
    82
    83
    logs:
    84
    receivers: [nrsqlserver]
    85
    processors: [memory_limiter, batch]
    86
    exporters: [otlp]

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

  1. 次のいずれかの方法を使用して、新しいmssql-config.yamlファイルを使用するようにWindowsサービスレジストリを更新します:

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

      bash
      $
      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"'
    • コマンドプロンプトの場合:PowerShellが利用できない場合は、代わりにコマンドプロンプトを使用し、アドミニストレーターとして次のコマンドを実行します:

    bash
    $
    sc config "nrdot-collector" binPath= "\"C:\Program Files\nrdot-collector\nrdot-collector.exe\" --config \"C:\Program Files\nrdot-collector\mssql-config.yaml\""
  2. NRDOTコレクターの設定を検証して、正しくフォーマットされ、適切に機能することを確認してください:

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

    ヒント

    アプリケーションパフォーマンスとデータベース操作を関連付けるには、データベースサービス識別をセットアップできます。詳細については、データベースサービスの識別の設定を参照してください。

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

設定を更新した後、ドメインに参加しているEC2 WindowsインスタンスでNRDOT Collectorサービスを再起動します:

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

Windowsサービス(services.msc)を確認して、サービスがgMSAアカウントで実行されていることを検証します。Log On As列には、gMSAアカウント(たとえばCORP\SQL-gMSA$)が表示されます。

データを探す、使う

データが収集されると、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 データベースを選択します。

    NRDOTを使用してSQL Serverの監視をセットアップした後、次のことができます:

APMとデータベースの相関を設定する

New Relicでアプリケーションパフォーマンスとデータベース操作を関連付ける方法について説明します。

トラブルシューティング

New RelicでのMSSQL Windows監視設定のトラブルシューティング方法を学びます。

メトリクスリファレンス

NRDOT Collectorによって収集される利用可能なメトリクスについて説明します。

Copyright © 2026 New Relic株式会社。

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