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

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

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

問題を作成する

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

|View as Markdown (English)

プレビュー

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

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

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

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

ヒント

Linux RDS環境でSQL Serverを使用している場合は、RDSのLinux計装を参照してください。

前提条件

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

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

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

    • SQL Server 2017以降
    • SQL Serverへの管理アクセス(sysadminロールまたは同等のロール)
    • ポート1433またはカスタムポートでのコレクターとSQL Server間のネットワーク接続
    • sqlcmd Linuxシステムにインストールされているユーティリティ
  • New Relic OTLPエンドポイントへのネットワーク接続

プレビューに登録

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

NRDOT Collectorをインストールする

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

ヒント

クエリパフォーマンス監視のためのインフラストラクチャレベルのメトリクスを表示するには、SQL Serverインスタンスと同じホストにNRDOT Collectorをインストールすることをお勧めします。

監視ユーザーを作成する

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

  1. nr-grant-permission.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. sqlcmdを使用してスクリプトを実行します。<YOUR_SA_PASSWORD>をSQL Serverアドミニストレーターパスワードに置き換えます:

    bash
    $
    sqlcmd -S <YOUR_DB_ENDPOINT> -U sa -P '<YOUR_SA_PASSWORD>' -C -i nr-grant-permission.sql
  4. (オプション)ユーザーが正しい権限で正常に作成されたことを確認します:

    bash
    $
    sqlcmd -S <YOUR_DB_ENDPOINT> -U sa -P '<YOUR_SA_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';"

    期待される出力:

    bash
    $
    User Permission_Granted
    $
    -------------------------------------------------------------------------------------
    $
    newrelic CONNECT SQL
    $
    newrelic VIEW ANY DEFINITION
    $
    newrelic VIEW ANY DATABASE
    $
    newrelic VIEW SERVER STATE

    この出力は、必要なサーバー レベルの権限を持つユーザーが正常に作成されたことを確認します。

    ヒント

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

NRDOT Collectorを構成する

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

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

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

    完全な設定

    この最小限の設定は、ホストインフラストラクチャのメトリクスなしでデータベース監視のみに焦点を当てています。フル機能の監視を有効にするには、設定リファレンスを参照してください。

    mssql-config.yaml
    1
    receivers:
    2
    nrsqlserver:
    3
    collection_interval: 15s
    4
    # Direct connection to SQL Server
    5
    username: newrelic
    6
    password: YOUR_PASSWORD
    7
    server: sqlserver.example.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 top query and query sample log collection
    38
    events:
    39
    db.server.query_sample:
    40
    enabled: true
    41
    db.server.top_query:
    42
    enabled: true
    43
    44
    # Top query collection configuration
    45
    top_query_collection:
    46
    lookback_time: 60s
    47
    max_query_sample_count: 1000
    48
    top_query_count: 250
    49
    collection_interval: 60s
    50
    51
    collect_full_query_text: true
    52
    allowed_comment_keys:
    53
    - nr_service_guid
    54
    55
    # Query sample collection configuration
    56
    query_sample_collection:
    57
    max_rows_per_query: 100
    58
    59
    processors:
    60
    memory_limiter:
    61
    check_interval: ${env:NR_MEM_LIMITER_CHECK_INTERVAL:-1s}
    62
    limit_mib: ${env:NR_MEM_LIMITER_LIMIT_MIB:-200}
    63
    spike_limit_mib: ${env:NR_MEM_LIMITER_SPIKE_MIB:-50}
    64
    65
    batch:
    66
    67
    exporters:
    68
    otlp:
    69
    endpoint: https://otlp.nr-data.net:4318
    70
    headers:
    71
    api-key: YOUR_LICENSE_KEY
    72
    tls:
    73
    insecure: false
    74
    compression: gzip
    75
    76
    service:
    77
    telemetry:
    78
    metrics:
    79
    level: none
    80
    81
    pipelines:
    82
    metrics:
    83
    receivers: [nrsqlserver]
    84
    processors: [memory_limiter, batch]
    85
    exporters: [otlp]
    86
    87
    logs:
    88
    receivers: [nrsqlserver]
    89
    processors: [memory_limiter, batch]
    90
    exporters: [otlp]

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 Windows監視設定のトラブルシューティング方法を学びます。

メトリクスリファレンス

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

Copyright © 2026 New Relic株式会社。

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