• /
  • 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 > MSSQL (OpenTelemetry) に移動してください。画面上の指示に従って、インテグレーションをセットアップします。このページでは、手動インストレーションについてのみ説明します。

ヒント

Linuxのセルフホスト環境でSQL Serverを使用している場合は、RDSの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
  4. (オプション)ユーザーが正しい権限で正常に作成されたことを確認してください:

    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.