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

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

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

問題を作成する

Linux RDSでのMSSQL監視用NRDOTのインストールと設定

|View as Markdown (English)

New Relic Distribution of OpenTelemetry(NRDOT)コレクターを使用し、データベース監視、クエリ分析、およびシステムヘルスメトリクスを通じて、AWS RDS SQL Serverのパフォーマンスに関する包括的なインサイトを取得します。

ガイド付きインストレーション

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

ヒント

Linuxのセルフホスト環境でSQL Serverを使用している場合は、セルフホストSQL ServerのLinux計装をご覧ください。

前提条件

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

  • ご利用のリージョンのNew Relic OTLPエンドポイントへのネットワーク接続。

  • AWS RDS SQL Serverの要件:

    • AWS RDS SQL Server 2017以降。
    • RDSマスターユーザー名とパスワード。
    • ポート1433またはカスタムポートでのインバウンド接続を許可するセキュリティグループ。
  • Linuxのシステム要件:

    • お使いのLinuxシステムにインストールされているsqlcmdユーティリティ。

NRDOT Collectorをインストールする

Linuxディストリビューション用のNRDOTパッケージをダウンロードし、インストールします。<NRDOT_VERSION>をnrdot-collector-releasesページの最新リリースタグに置き換えます。

重要

RDS SQL Serverインスタンスへのネットワーク接続があるEC2インスタンスまたはローカルマシンに、NRDOT Collectorをインストールしてください。セキュリティグループがポート1433(またはカスタムポート)でのインバウンド接続を許可していることを確認してください。

監視ユーザーを作成する

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

  1. nr-grant-permission-rds.sqlという名前のファイルを作成します。

  2. 次のSQLスクリプトを貼り付けてnewrelic監視ユーザーを作成し、<YOUR_PASSWORD>を希望するパスワードに置き換えます:

    USE [master];
    GO
    CREATE LOGIN [newrelic] WITH PASSWORD = '<YOUR_PASSWORD>';
    GO
    -- Instance-level permissions
    GRANT VIEW SERVER STATE TO [newrelic];
    GRANT VIEW ANY DEFINITION TO [newrelic];
    GRANT VIEW ANY DATABASE TO [newrelic];
    GO
    -- Grant read access privileges to all user 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; -- Only online databases
    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
  3. ログインを作成し、サーバーレベルの権限を付与する権限を持つ任意のログイン(たとえば、saログイン、またはsysadminロールを持つ別のアカウント)で、sqlcmdを使用してスクリプトを実行してください。<YOUR-RDS-ENDPOINT>をRDSエンドポイントに、<YOUR_MASTER_PASSWORD>をマスターパスワードに置き換えてください:

bash
$
sqlcmd -S <YOUR-RDS-ENDPOINT> -U <YOUR_MASTER_USER> -P '<YOUR_MASTER_PASSWORD>' -C -i nr-grant-permission-rds.sql
  1. (オプション)ユーザーが正しい権限で正常に作成されたことを確認してください:
bash
$
sqlcmd -S <YOUR-RDS-ENDPOINT> -U <YOUR_MASTER_USER> -P '<YOUR_MASTER_PASSWORD>' -C -Q "SELECT sp.name AS [User], p.permission_name AS [Permission_Granted] FROM sys.server_permissions p JOIN sys.server_principals sp ON p.grantee_principal_id = sp.principal_id WHERE sp.name = 'newrelic';"

ヒント

  • RDSマスターユーザー名とパスワードを使用して、これらのコマンドを実行します。スクリプトは、AWSによって予約されているrdsadminデータベースを自動的に除外します。
  • データベースの認証情報などの機密情報を安全に管理するには、シークレット管理ツールに保存してください。

NRDOT Collectorを構成する

監視要件に基づいて設定オプションを選択します:

  1. mssql-config.yamlという名前の設定ファイルを作成します:

    bash
    $
    sudo nano /etc/nrdot-collector/mssql-config.yaml
  2. 前の手順で作成したmssql-config.yamlファイルに以下の設定を追加します:

完全な設定

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

mssql-config.yaml
1
receivers:
2
nrsqlserver:
3
collection_interval: 15s
4
# Connection details - Use your RDS endpoint
5
username: newrelic
6
password: YOUR_PASSWORD
7
server: mydb-instance.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com
8
port: 1433
9
10
# Enable comprehensive database metrics
11
metrics:
12
sqlserver.database.count:
13
enabled: true
14
sqlserver.database.io:
15
enabled: true
16
sqlserver.database.latency:
17
enabled: true
18
sqlserver.database.operations:
19
enabled: true
20
sqlserver.database.tempdb.space:
21
enabled: true
22
sqlserver.database.tempdb.version_store.size:
23
enabled: true
24
sqlserver.deadlock.rate:
25
enabled: true
26
sqlserver.os.wait.duration:
27
enabled: true
28
sqlserver.processes.blocked:
29
enabled: true
30
sqlserver.memory.grants.pending.count:
31
enabled: true
32
sqlserver.database.file.size:
33
enabled: true
34
sqlserver.memory.area:
35
enabled: true
36
37
# Enable query sample, top query, query plan, and top procedure log collection
38
events:
39
db.server.query_sample:
40
enabled: true
41
db.server.top_query:
42
enabled: true
43
db.server.query_plan:
44
enabled: true
45
db.server.top_procedure:
46
enabled: true
47
48
# Top query collection configuration
49
top_query_collection:
50
lookback_time: 60s
51
max_query_sample_count: 1000
52
top_query_count: 250
53
collection_interval: 60s
54
collect_full_query_text: true
55
allowed_comment_keys:
56
- nr_service_guid
57
58
# Query sample collection configuration
59
query_sample_collection:
60
max_rows_per_query: 100
61
collect_full_query_text: true
62
allowed_comment_keys:
63
- nr_service_guid
64
65
# Top stored procedure collection configuration
66
top_procedure_collection:
67
max_procedure_sample_count: 1000
68
top_procedure_count: 250
69
collection_interval: 60s
70
71
resource_attributes:
72
db.system.version:
73
enabled: true
74
sqlserver.db.edition:
75
enabled: true
76
77
processors:
78
memory_limiter:
79
check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}
80
limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}
81
spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}
82
83
exporters:
84
otlp:
85
endpoint: https://otlp.nr-data.net:4318
86
headers:
87
api-key: YOUR_LICENSE_KEY
88
tls:
89
insecure: false
90
compression: gzip
91
92
sending_queue:
93
enabled: true
94
sizer: bytes
95
queue_size: 100_000_000
96
num_consumers: 10
97
batch:
98
sizer: bytes
99
max_size: 1_000_000
100
min_size: 0
101
flush_timeout: 5s
102
103
service:
104
telemetry:
105
metrics:
106
level: none
107
108
pipelines:
109
metrics:
110
receivers: [nrsqlserver]
111
processors: [memory_limiter]
112
exporters: [otlp]
113
114
logs:
115
receivers: [nrsqlserver]
116
processors: [memory_limiter]
117
exporters: [otlp]

ヒント

  • logsパイプラインは、コレクターのデバッグログや内部エージェントのログを転送しません。クエリテキスト、実行プラン、およびサンプルデータを含む、SQL Serverのクエリテレメトリーを送信します。nrsqlserverレシーバーは、OpenTelemetryのログレコードとして出力されるdb.server.query_sample、db.server.top_query、db.server.query_plan、およびdb.server.top_procedureイベントを通じて、このテレメトリーをキャプチャします。

  • db.server.top_procedure イベントには、sys.dm_exec_procedure_stats.total_spills のサポートが導入された SQL Server 2017 CU3 以降が必要です。以前のバージョンでは、このイベントはデータを出力せず、エラーをログに記録します。他のイベントは影響を受けません。sys.dm_exec_procedure_stats にアクセスするには、VIEW SERVER STATE(または SQL Server のバージョンによっては VIEW SERVER PERFORMANCE STATE)が必要です。さらに、すべてのユーザーデータベースで OBJECT_NAME と OBJECT_SCHEMA_NAME を正しく解決するには VIEW ANY DEFINITION が必要であり、初期セッションを設定するには CONNECT SQL が必要です。監視ユーザーの作成で作成された監視ユーザーには、3つの権限すべてが含まれています。

NRDOT Collectorの設定を更新

上記の対話型入力を使用してYAMLファイルを設定した後、NRDOT Collectorのセットアップを完了します:

  1. 次のコマンドを使用して、サービス設定ファイルを編集します:

    bash
    $
    sudo nano /etc/nrdot-collector/nrdot-collector.conf
  2. 新しいmssql-config.yamlファイルを指すように設定パスを更新します:

    bash
    $
    OTELCOL_CONFIG="/etc/nrdot-collector/mssql-config.yaml"
  3. (オプション)NRDOT Collectorの設定を検証します:

    bash
    $
    sudo /usr/bin/nrdot-collector validate --config=/etc/nrdot-collector/mssql-config.yaml

    ヒント

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

NRDOT Collectorを再起動します

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

bash
$
sudo systemctl restart nrdot-collector

ヒント

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

データを探す、使う

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

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

  1. one.newrelic.com > All capabilities > Databasesに移動します。

  2. Entity typeドロップダウンからMSSQL instanceを選択し、Applyをクリックします。

  3. エンティティのリストから SQL Server データベースを選択します。

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

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

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

トラブルシューティング

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

メトリクスリファレンス

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

Copyright © 2026 New Relic株式会社。

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