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をダウンロードし、インストールします:
$[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];GOCREATE 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 FORSELECT [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 = 0BEGIN 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;ENDCLOSE db_cursor;DEALLOCATE db_cursor;GOヒント
データベースの認証情報などの機密情報を安全に管理するには、シークレット管理ツールに保存してください。
NRDOT Collectorを構成する
RDS SQL Serverのセットアップ用に、新しいNRDOT Collector設定ファイルを作成します。
アドミニストレーターとしてPowerShellで
mssql-config.yamlという名前の設定ファイルを作成します:bash$New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType File前の手順で作成した
mssql-config.yamlファイルに以下の設定を追加します:完全な設定
この設定は、RDS環境の不可欠なデータベース監視に焦点を当てています。利用可能なすべてのメトリクスを使用した包括的な監視を有効にするには、設定リファレンスを参照してください。
mssql-config.yaml1receivers:2nrsqlserver:3collection_interval: 15s4username: newrelic5password: YOUR_PASSWORD6server: mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com7port: 143389# Enable comprehensive database metrics10metrics:11sqlserver.database.count:12enabled: true13sqlserver.database.io:14enabled: true15sqlserver.database.latency:16enabled: true17sqlserver.database.operations:18enabled: true19sqlserver.database.tempdb.space:20enabled: true21sqlserver.database.tempdb.version_store.size:22enabled: true23sqlserver.deadlock.rate:24enabled: true25sqlserver.os.wait.duration:26enabled: true27sqlserver.processes.blocked:28enabled: true29sqlserver.memory.grants.pending.count:30enabled: true31sqlserver.database.file.size:32enabled: true33sqlserver.memory.area:34enabled: true3536# Enable top query and query sample log collection37events:38db.server.query_sample:39enabled: true40db.server.top_query:41enabled: true4243# Top query collection configuration44top_query_collection:45lookback_time: 60s46max_query_sample_count: 100047top_query_count: 25048collection_interval: 60s4950collect_full_query_text: true51allowed_comment_keys:52- nr_service_guid5354# Query sample collection configuration55query_sample_collection:56max_rows_per_query: 1005758processors:59memory_limiter:60check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}61limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}62spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}6364batch:6566exporters:67otlp:68endpoint: https://otlp.nr-data.net:431869headers:70api-key: YOUR_LICENSE_KEY71tls:72insecure: false73compression: gzip7475service:76telemetry:77metrics:78level: none7980pipelines:81metrics:82receivers: [nrsqlserver]83processors: [memory_limiter, batch]84exporters: [otlp]8586logs:87receivers: [nrsqlserver]88processors: [memory_limiter, batch]89exporters: [otlp]
Windowsサービスレジストリを更新します。
次のいずれかの方法を使用して、新しい
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\""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サービスを再起動します:
$net stop nrdot-collector$net start nrdot-collectorヒント
新しい設定を確実に適用するために、設定を変更した後は常にNRDOT Collectorサービスを再起動してください。
データを探す、使う
データが収集されると、New Relic の UI を通じて包括的な SQL Server データベース監視にアクセスできるようになります。
New Relic で SQL Server データベース エンティティを見つけるには:
https://one.newrelic.com > All Capabilities > Databasesに移動します。
Entity typeドロップダウンからMSSQL instanceを選択し、Applyをクリックします。
エンティティのリストから SQL Server データベースを選択します。
NRDOTを使用してSQL Serverの監視をセットアップした後、次のことができます:
- データベースのメトリクスを視覚化するカスタムダッシュボードを作成する
- クリティカルデータベースパフォーマンス閾値のアラートを設定する
- New Relicのクエリ機能を使用して、データを探索します
前提条件
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をインストールします。
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 = 0BEGIN 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;ENDCLOSE db_cursor;DEALLOCATE db_cursor;GOヒント
データベースの認証情報などの機密情報を安全に管理するには、シークレット管理ツールに保存してください。
ドメインユーザーとして実行
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サービスIDを検証します:
bash$Get-WmiObject Win32_Service -Filter "Name='nrdot-collector'" | Select Name, State, StartName$# Expected: StartName = YOUR_DOMAIN\YOUR_USER_ACCOUNT
NRDOT Collectorを構成する
アドミニストレーターとしてPowerShellで
mssql-config.yamlという名前の設定ファイルを作成します:bash$New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType File前の手順で作成した
mssql-config.yamlファイルに以下の設定を追加します:重要
Windowsドメイン認証は統合セキュリティを使用しており、gMSA認証と同じ設定アプローチを使用します。
datasourceサーバーの値をRDSエンドポイントに更新してください。NRDOTサービスは、ステップ3で設定したドメインアカウントを使用して認証します。mssql-config.yaml1receivers:2nrsqlserver:3collection_interval: 15s4datasource: "server=mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com;port=1433;integrated security=true;encrypt=true;TrustServerCertificate=true;"56# Enable comprehensive database metrics7metrics:8sqlserver.database.count:9enabled: true10sqlserver.database.io:11enabled: true12sqlserver.database.latency:13enabled: true14sqlserver.database.operations:15enabled: true16sqlserver.database.tempdb.space:17enabled: true18sqlserver.database.tempdb.version_store.size:19enabled: true20sqlserver.deadlock.rate:21enabled: true22sqlserver.os.wait.duration:23enabled: true24sqlserver.processes.blocked:25enabled: true26sqlserver.memory.grants.pending.count:27enabled: true28sqlserver.database.file.size:29enabled: true30sqlserver.memory.area:31enabled: true3233# Enable top query and query sample log collection34events:35db.server.query_sample:36enabled: true37db.server.top_query:38enabled: true3940# Top query collection configuration41top_query_collection:42lookback_time: 60s43max_query_sample_count: 100044top_query_count: 25045collection_interval: 60s4647collect_full_query_text: true48allowed_comment_keys:49- nr_service_guid5051# Query sample collection configuration52query_sample_collection:53max_rows_per_query: 1005455processors:56memory_limiter:57check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}58limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}59spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}6061batch:6263exporters:64otlp:65endpoint: https://otlp.nr-data.net:431866headers:67api-key: YOUR_LICENSE_KEY68tls:69insecure: false70compression: gzip7172service:73telemetry:74metrics:75level: none7677pipelines:78metrics:79receivers: [nrsqlserver]80processors: [memory_limiter, batch]81exporters: [otlp]8283logs:84receivers: [nrsqlserver]85processors: [memory_limiter, batch]86exporters: [otlp]完全な設定
この設定は、RDS環境の不可欠なデータベース監視に焦点を当てています。利用可能なすべてのメトリクスによる包括的な監視を有効にするには、設定リファレンスを参照してください。
Windowsサービスレジストリの更新
次のいずれかの方法を使用して、新しい
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\""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サービスを再起動します:
$net stop nrdot-collector$net start nrdot-collectorWindowsサービス(services.msc)をチェックして、サービスがドメインアカウントで実行されていることを確認してください。Log On As列にドメインアカウントが表示されるはずです。例:CORP\SQLMonitor。
データを探す、使う
データが収集されると、New Relic の UI を通じて包括的な SQL Server データベース監視にアクセスできるようになります。
New Relic で SQL Server データベース エンティティを見つけるには:
https://one.newrelic.com > All Capabilities > Databasesに移動します。
Entity typeドロップダウンからMSSQL instanceを選択し、Applyをクリックします。
エンティティのリストから SQL Server データベースを選択します。
NRDOTを使用してSQL Serverの監視をセットアップした後、次のことができます:
- データベースのメトリクスを視覚化するカスタムダッシュボードを作成する
- クリティカルデータベースパフォーマンス閾値のアラートを設定する
- New Relicのクエリ機能を使用して、データを探索します
前提条件
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をダウンロードし、インストールします:
$[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 = 0BEGIN 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;ENDCLOSE db_cursor;DEALLOCATE db_cursor;GOヒント
データベースの認証情報などの機密情報を安全に管理するには、シークレット管理ツールに保存してください。
gMSAアカウントとして実行する
PowerShellを使用して、gMSAアカウントとして実行するようにNRDOT Collectorサービスを設定します。<YOUR_DOMAIN>\<YOUR_GMSA_USERNAME>$をドメインとgMSAアカウント名に置き換えます。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= "<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を構成する
アドミニストレーターとしてPowerShellで
mssql-config.yamlという名前の設定ファイルを作成します:bash$New-Item -Path "C:\Program Files\nrdot-collector\mssql-config.yaml" -ItemType File前の手順で作成した
mssql-config.yamlファイルに以下の設定を追加します:完全な設定
この設定は、RDS環境の不可欠なデータベース監視に焦点を当てています。利用可能なすべてのメトリクスを使用した包括的な監視を有効にするには、設定リファレンスを参照してください。
mssql-config.yaml1receivers:2nrsqlserver:3collection_interval: 15s4datasource: "server=mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com;port=1433;integrated security=true;encrypt=true;TrustServerCertificate=true;"56# Enable comprehensive database metrics7metrics:8sqlserver.database.count:9enabled: true10sqlserver.database.io:11enabled: true12sqlserver.database.latency:13enabled: true14sqlserver.database.operations:15enabled: true16sqlserver.database.tempdb.space:17enabled: true18sqlserver.database.tempdb.version_store.size:19enabled: true20sqlserver.deadlock.rate:21enabled: true22sqlserver.os.wait.duration:23enabled: true24sqlserver.processes.blocked:25enabled: true26sqlserver.memory.grants.pending.count:27enabled: true28sqlserver.database.file.size:29enabled: true30sqlserver.memory.area:31enabled: true3233# Enable top query and query sample log collection34events:35db.server.query_sample:36enabled: true37db.server.top_query:38enabled: true3940# Top query collection configuration41top_query_collection:42lookback_time: 60s43max_query_sample_count: 100044top_query_count: 25045collection_interval: 60s4647collect_full_query_text: true48allowed_comment_keys:49- nr_service_guid5051# Query sample collection configuration52query_sample_collection:53max_rows_per_query: 1005455processors:56memory_limiter:57check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}58limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}59spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}6061batch:6263exporters:64otlp:65endpoint: https://otlp.nr-data.net:431866headers:67api-key: YOUR_LICENSE_KEY68tls:69insecure: false70compression: gzip7172service:73telemetry:74metrics:75level: none7677pipelines:78metrics:79receivers: [nrsqlserver]80processors: [memory_limiter, batch]81exporters: [otlp]8283logs:84receivers: [nrsqlserver]85processors: [memory_limiter, batch]86exporters: [otlp]
Windowsサービスレジストリの更新
次のいずれかの方法を使用して、新しい
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\""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サービスを再起動します:
$net stop nrdot-collector$net start nrdot-collectorWindowsサービス(services.msc)を確認して、サービスがgMSAアカウントで実行されていることを検証します。Log On As列には、gMSAアカウント(たとえばCORP\SQL-gMSA$)が表示されます。
データを探す、使う
データが収集されると、New Relic の UI を通じて包括的な SQL Server データベース監視にアクセスできるようになります。
New Relic で SQL Server データベース エンティティを見つけるには:
https://one.newrelic.com > All Capabilities > Databasesに移動します。
Entity typeドロップダウンからMSSQL instanceを選択し、Applyをクリックします。
エンティティのリストから SQL Server データベースを選択します。
NRDOTを使用してSQL Serverの監視をセットアップした後、次のことができます:
- データベースのメトリクスを視覚化するカスタムダッシュボードを作成する
- クリティカルデータベースパフォーマンス閾値のアラートを設定する
- New Relicのクエリ機能を使用して、データを探索します