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

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

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

問題を作成する

NRDOT による Microsoft SQL Server の監視

プレビュー

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

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

New Relicでは、 New Relic Distribution of OpenTelemetry (NRDOT) とNew Relic Relic のデータベース監視機能を使用して、チームが Microsoft SQL Server データベースのパフォーマンスを監視できるようになりました。 この統合により、NRDOT コレクターを使用して、包括的なインサイトをデータベース メトリクス、書き込みパフォーマンス、およびシステムの状態に提供します。

この NRDOT ベースのアプローチは、データベース監視のOpenTelemetry標準を活用することで既存のオンホスト インテグレーション (OHI) を補完し、既存の監視スタックとの統合を容易にします。

前提条件

始める前に、次のものがあることを確認してください。

  • 有効なNew Relicライセンスキー

  • サポートされているデータベースのバージョン: SQL Server 2017 以降

  • SQL Server データベースのセットアップ:

    • SQL Server インスタンスへの管理アクセス (sysadminロールまたは同等のロール)
    • オンプレミスの管理インスタンスをサポートする Microsoft SQL Server
    • NRDOT コレクターと SQL Server 間のネットワーク接続
    • SQL Server Management Studio (SSMS) またはsqlcmdユーティリティ
    • サーバーのホスト名またはIPアドレス
    • ポート番号(通常は1433)またはカスタムポート
    • Windowsドメインまたは SQL Server 認証
    • SSL設定
  • システム要件:

    • NRDOT コレクターを実行するためのWindowsまたは Linux システム
    • New Relicの OTLP エンドポイントへのネットワーク接続

Microsoft SQL Server 監視用の NRDOT Collector を設定する

NRDOT コレクターを使用して、Microsoft SQL Server データベースを監視できます。 NRDOT コレクターは、New Relic 固有のコンポーネントを含む事前構成済みのディストリビューションです。

NRDOT Collector をインストールして構成するには、次の手順に従います。

NRDOT Collectorセットアップ

お使いの OS とアーキテクチャーに基づいてコレクターをインストールします。

重要

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

データベースユーザーを構成する

次のスクリプトをroot user/sysadminとして実行して、 newrelic監視ユーザーを作成し、グローバル読み取り権限を付与します。

NRDOT Collectorを構成する

config.yamlを以下の内容に置き換えます。

  • ウィンドウズ: C:\Program Files (x86)\NRDOT Collector Host\config.yaml

  • Linux: /etc/nrdot-collector-host/config.yaml

    重要

    既存の NRDOT Collectorユーザーの場合は、上記の設定を既存のconfig.yamlファイルにマージしてください。 これには、現在の設定を保持したまま、MSSQL データベース監視用の新しいレシーバー、プロセッサ、エクスポーターを追加することが含まれます。

    # NRDOT Collector Configuration for New Relic SQL Server Integration
    # SQL Server On-Premises/VM Configuration
    extensions:
    health_check:
    receivers:
    otlp:
    protocols:
    grpc:
    http:
    hostmetrics:
    # Default collection interval is 60s. Lower if you need finer granularity.
    collection_interval: 60s
    scrapers:
    cpu:
    metrics:
    system.cpu.time:
    enabled: false
    system.cpu.utilization:
    enabled: true
    load:
    memory:
    metrics:
    system.memory.utilization:
    enabled: true
    paging:
    metrics:
    system.paging.utilization:
    enabled: false
    system.paging.faults:
    enabled: false
    filesystem:
    metrics:
    system.filesystem.utilization:
    enabled: true
    disk:
    metrics:
    system.disk.merged:
    enabled: false
    system.disk.pending_operations:
    enabled: false
    system.disk.weighted_io_time:
    enabled: false
    network:
    metrics:
    system.network.connections:
    enabled: false
    # Uncomment to enable process metrics, which can be noisy but valuable.
    # processes:
    # process:
    # metrics:
    # process.cpu.utilization:
    # enabled: true
    # process.cpu.time:
    # enabled: false
    filelog:
    include:
    - /var/log/alternatives.log
    - /var/log/cloud-init.log
    - /var/log/auth.log
    - /var/log/dpkg.log
    - /var/log/syslog
    - /var/log/messages
    - /var/log/secure
    - /var/log/yum.log
    newrelicsqlserver:
    hostname: "<YOUR_DB_HOST>"
    port: "<YOUR_DB_PORT>"
    username: "<USERNAME>"
    password: "<PASSWORD>"
    monitored_databases: []
    # timeout: 30s
    # collection_interval: 15s
    # query_monitoring_fetch_interval: 15
    # query_monitoring_response_time_threshold: 100
    # query_monitoring_count_threshold: 30
    # interval_calculator_cache_ttl_minutes: 10
    # Metric Category Toggles - Enable/disable entire categories of metrics
    # enable_instance_metrics: true
    # enable_database_metrics: true
    # enable_user_connection_metrics: true
    # enable_wait_time_metrics: true
    # enable_failover_cluster_metrics: true
    # enable_database_principals_metrics: true
    # enable_database_role_membership_metrics: true
    # enable_security_metrics: true
    # enable_lock_metrics: true
    # enable_thread_pool_metrics: true
    # enable_tempdb_metrics: true
    processors:
    # group system.cpu metrics by cpu
    metricstransform:
    transforms:
    - include: system.cpu.utilization
    action: update
    operations:
    - action: aggregate_labels
    label_set: [ state ]
    aggregation_type: mean
    - include: system.paging.operations
    action: update
    operations:
    - action: aggregate_labels
    label_set: [ direction ]
    aggregation_type: sum
    # remove system.cpu metrics for states
    filter/exclude_cpu_utilization:
    metrics:
    datapoint:
    - 'metric.name == "system.cpu.utilization" and attributes["state"] == "interrupt"'
    - 'metric.name == "system.cpu.utilization" and attributes["state"] == "nice"'
    - 'metric.name == "system.cpu.utilization" and attributes["state"] == "softirq"'
    filter/exclude_memory_utilization:
    metrics:
    datapoint:
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "slab_unreclaimable"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "inactive"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "cached"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "buffered"'
    - 'metric.name == "system.memory.utilization" and attributes["state"] == "slab_reclaimable"'
    filter/exclude_memory_usage:
    metrics:
    datapoint:
    - 'metric.name == "system.memory.usage" and attributes["state"] == "slab_unreclaimable"'
    - 'metric.name == "system.memory.usage" and attributes["state"] == "inactive"'
    filter/exclude_filesystem_utilization:
    metrics:
    datapoint:
    - 'metric.name == "system.filesystem.utilization" and attributes["type"] == "squashfs"'
    filter/exclude_filesystem_usage:
    metrics:
    datapoint:
    - 'metric.name == "system.filesystem.usage" and attributes["type"] == "squashfs"'
    - 'metric.name == "system.filesystem.usage" and attributes["state"] == "reserved"'
    filter/exclude_filesystem_inodes_usage:
    metrics:
    datapoint:
    - 'metric.name == "system.filesystem.inodes.usage" and attributes["type"] == "squashfs"'
    - 'metric.name == "system.filesystem.inodes.usage" and attributes["state"] == "reserved"'
    filter/exclude_system_disk:
    metrics:
    datapoint:
    - 'metric.name == "system.disk.operations" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.merged" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.io" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.io_time" and IsMatch(attributes["device"], "^loop.*") == true'
    - 'metric.name == "system.disk.operation_time" and IsMatch(attributes["device"], "^loop.*") == true'
    filter/exclude_system_paging:
    metrics:
    datapoint:
    - 'metric.name == "system.paging.usage" and attributes["state"] == "cached"'
    - 'metric.name == "system.paging.operations" and attributes["type"] == "cached"'
    filter/exclude_network:
    metrics:
    datapoint:
    - 'IsMatch(metric.name, "^system.network.*") == true and attributes["device"] == "lo"'
    attributes/exclude_system_paging:
    include:
    match_type: strict
    metric_names:
    - system.paging.operations
    actions:
    - key: type
    action: delete
    # Transform to clear description and unit fields
    transform/clear_metadata:
    metric_statements:
    - context: metric
    statements:
    - set(metric.description, "")
    - set(metric.unit, "")
    # Filter to only include execution plan and event metrics (for logs conversion)
    filter/exec_plan_include:
    metrics:
    include:
    match_type: strict
    metric_names:
    - sqlserver.slowquery.query_details
    - sqlserver.execution.plan
    - sqlserver.blocking_query.details
    - sqlserver.activequery.query_details
    # Filter to exclude execution plan and event metrics (from main metrics pipeline)
    filter/exec_plan_exclude:
    metrics:
    exclude:
    match_type: strict
    metric_names:
    - sqlserver.slowquery.query_details
    - sqlserver.execution.plan
    - sqlserver.blocking_query.details
    - sqlserver.activequery.query_details
    cumulativetodelta:
    max_staleness: 5m
    include:
    match_type: strict
    metrics:
    # Wait stats (sys.dm_os_wait_stats)
    - sqlserver.wait_stats.latch.wait_time_ms
    - sqlserver.wait_stats.latch.waiting_tasks_count
    - sqlserver.wait_stats.wait_time_ms
    - sqlserver.wait_stats.waiting_tasks_count
    # Instance stats (sys.dm_os_performance_counters)
    - sqlserver.stats.sql_compilations_per_sec
    - sqlserver.stats.sql_recompilations_per_sec
    - sqlserver.stats.lock_waits_per_sec
    - sqlserver.stats.deadlocks_per_sec
    - sqlserver.stats.user_errors_per_sec
    - sqlserver.stats.kill_connection_errors_per_sec
    - sqlserver.access.page_splits_per_sec
    - sqlserver.buffer.checkpoint_pages_per_sec
    - sqlserver.bufferpool.batch_requests_per_sec
    - sqlserver.instance.transactions_per_sec
    - sqlserver.instance.forced_parameterizations_per_sec
    - sqlserver.instance.full_scans_rate
    - sqlserver.instance.lock_timeouts_rate
    # Database log (sys.dm_os_performance_counters)
    - sqlserver.database.log.flushes_per_sec
    - sqlserver.database.log.bytes_flushed_per_sec
    - sqlserver.database.log.flush_waits_per_sec
    # Failover cluster
    - sqlserver.failover_cluster.log_bytes_received_per_sec
    # User connections
    - sqlserver.user_connections.authentication.logins_per_sec
    deltatorate:
    metrics:
    - sqlserver.wait_stats.latch.wait_time_ms
    - sqlserver.wait_stats.latch.waiting_tasks_count
    - sqlserver.wait_stats.wait_time_ms
    - sqlserver.wait_stats.waiting_tasks_count
    - sqlserver.stats.sql_compilations_per_sec
    - sqlserver.stats.sql_recompilations_per_sec
    - sqlserver.stats.lock_waits_per_sec
    - sqlserver.stats.deadlocks_per_sec
    - sqlserver.stats.user_errors_per_sec
    - sqlserver.stats.kill_connection_errors_per_sec
    - sqlserver.access.page_splits_per_sec
    - sqlserver.buffer.checkpoint_pages_per_sec
    - sqlserver.bufferpool.batch_requests_per_sec
    - sqlserver.instance.transactions_per_sec
    - sqlserver.instance.forced_parameterizations_per_sec
    - sqlserver.instance.full_scans_rate
    - sqlserver.instance.lock_timeouts_rate
    - sqlserver.database.log.flushes_per_sec
    - sqlserver.database.log.bytes_flushed_per_sec
    - sqlserver.database.log.flush_waits_per_sec
    - sqlserver.failover_cluster.log_bytes_received_per_sec
    - sqlserver.user_connections.authentication.logins_per_sec
    transform/host:
    metric_statements:
    - context: metric
    statements:
    - set(metric.description, "")
    - set(metric.unit, "")
    transform:
    trace_statements:
    - context: span
    statements:
    - truncate_all(span.attributes, 4095)
    - truncate_all(resource.attributes, 4095)
    log_statements:
    - context: log
    statements:
    - truncate_all(log.attributes, 4095)
    - truncate_all(resource.attributes, 4095)
    # used to prevent out of memory situations on the collector
    memory_limiter:
    check_interval: 1s
    limit_mib: ${env:NEW_RELIC_MEMORY_LIMIT_MIB:-100}
    batch:
    resourcedetection:
    detectors: ["system"]
    system:
    hostname_sources: ["os"]
    resource_attributes:
    host.id:
    enabled: true
    resourcedetection/db_safe:
    detectors: ["system"]
    override: false
    system:
    hostname_sources: ["os"]
    resource_attributes:
    host.id:
    enabled: true
    resourcedetection/cloud:
    detectors: ["gcp", "ec2", "azure"]
    timeout: 2s
    override: true
    resourcedetection/env:
    detectors: ["env"]
    timeout: 2s
    override: true
    connectors:
    metricsaslogs:
    include_resource_attributes: true
    include_scope_info: true
    exporters:
    otlphttp:
    endpoint: "<YOUR_NEWRELIC_OTLP_ENDPOINT>"
    headers:
    api-key: "<YOUR_NEWRELIC_API_KEY>"
    compression: gzip
    service:
    pipelines:
    metrics/host:
    receivers: [hostmetrics]
    processors:
    - memory_limiter
    - metricstransform
    - filter/exclude_cpu_utilization
    - filter/exclude_memory_utilization
    - filter/exclude_memory_usage
    - filter/exclude_filesystem_utilization
    - filter/exclude_filesystem_usage
    - filter/exclude_filesystem_inodes_usage
    - filter/exclude_system_disk
    - filter/exclude_network
    - attributes/exclude_system_paging
    - transform/host
    - resourcedetection
    - resourcedetection/cloud
    - resourcedetection/db_safe
    - resourcedetection/env
    - cumulativetodelta
    - deltatorate
    - batch
    exporters: [otlphttp]
    traces:
    receivers: [otlp]
    processors: [memory_limiter, transform, resourcedetection, resourcedetection/cloud, resourcedetection/env, batch]
    exporters: [otlphttp]
    metrics:
    receivers: [newrelicsqlserver, otlp]
    processors: [memory_limiter, transform, resourcedetection, resourcedetection/cloud, resourcedetection/env, filter/exec_plan_exclude, batch]
    exporters: [otlphttp]
    logs:
    receivers: [metricsaslogs, otlp]
    processors: [memory_limiter, transform, resourcedetection, resourcedetection/cloud, resourcedetection/env, batch]
    exporters: [otlphttp]
    metrics/exec_plan_to_logs:
    receivers: [newrelicsqlserver, otlp]
    processors: [memory_limiter, transform, resourcedetection, resourcedetection/cloud, resourcedetection/env, filter/exec_plan_include, batch]
    exporters: [metricsaslogs]
    extensions: [health_check]

    設定パラメーター

    次の表は、 newrelicsqlserver受信機のキー設定を説明しています。

    パラメータ

    説明

    <YOUR_DB_HOST>

    SQL Serverのホスト名またはIPアドレスを入力してください

    <YOUR_DB_PORT>

    SQL Server ポート番号を入力します。デフォルト値は 1433 に設定されています。

    <USERNAME>

    認証用のデータベースユーザー名を入力してください

    <PASSWORD>

    認証用のデータベースパスワードを入力してください

    <YOUR_NEWRELIC_OTLP_ENDPOINT>

    New Relic OTLP エンドポイントを入力します。詳細については、 New Relic OTLP エンドポイントのドキュメントを参照してください。

    <YOUR_NEWRELIC_API_KEY>

    New Relic APIキーを入力します。

    query_monitoring_response_time_threshold

    書き込みが遅いとみなすための最小応答時間 (ミリ秒)。 デフォルト値は

    100

    ミリ秒に設定されています。

    query_monitoring_count_threshold

    クエリを監視に含めるための最小実行回数。デフォルト値は

    30

    に設定されています。

    query_monitoring_fetch_interval

    クエリ監視データを取得する間隔(秒)。デフォルト値は

    15

    秒に設定されています。

    collection_interval

    メトリクスを収集する間隔 (秒単位)。 デフォルト値は

    15s

    に設定されています。

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

設定を更新したら、NRDOT コレクター サービスを再起動します。

  • Windows の場合、NRDOT Collector サービスを再起動するには、次のコマンドを実行します。

    bash
    $
    net stop nrdot-collector-host
    $
    net start nrdot-collector-host
  • Linux の場合、NRDOT Collector サービスを再起動するには、次のコマンドを実行します。

    bash
    $
    sudo systemctl restart nrdot-collector-host

    ヒント

    新しい設定を確実に有効にするために、構成の変更後は必ず NRDOT コレクター サービスを再起動してください。

(オプション)APMとデータベースの相関関係を設定する

アプリケーションのパフォーマンスをデータベース操作と関連付けるために、データベース サービス ID を設定できます。 この機能を使用すると、特定のデータベース ワークロードを生成しているアプリケーションを正確に確認できます。詳細については、「 New RelicでAPMとデータベースの相関関係を取得するためのデータベース サービス ID のセットアップ」を参照してください。

重要

APM でデータベース パフォーマンス データを表示するには、両方のエンティティが同じ New Relic アカウント内にある必要があります。エンティティが異なる New Relic アカウントにある場合、データを表示するには両方のアカウントにアクセスできる必要があります。

(オプション)シークレット管理を構成する

シークレット管理機能を使用すると、データベース資格情報などの機密情報を安全に管理できます。これにより、構成ファイルに機密データをハードコーディングすることを避け、監視設定のセキュリティを強化できます。詳細については、シークレット管理を参照してください。

データを探す、使う

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

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

  1. https://one.newrelic.com > All Capabilities > Databasesに移動します。
  2. 検索条件をinstrumentation.provider = opentelemetryに設定します。
  3. エンティティのリストから SQL Server データベースを選択します。

NRDOT コレクターがサポートするコマンド

NRDOT Collectorサービスを管理したり、ログを表示したり、サービスのステータスを確認したりするには、OS に基づいて次のコマンドを使用します。

トラブルシューティング

NRDOT Collector でネットワーク接続の問題が発生した場合は、次のコマンドを実行して、ポート 1433 上の SQL Server インスタンスへの接続をテストします。

  • Windows の場合は、次を実行します。

    bash
    $
    Test-NetConnection -ComputerName <YOUR_IP_ADDRESS> -Port <YOUR_PORT_NUMBER>
  • Linux の場合は、次を実行します。

    bash
    $
    nc -zv <YOUR_IP_ADDRESS> <YOUR_PORT_NUMBER>

利用可能なメトリクス

設定フラグごとに整理されたメトリクスを使用して、SQL Server データベースのパフォーマンスを監視します。 デフォルトのメトリクスは、 New Relic UI機能のために自動的に収集されます。 特定のスクレイパーを有効にすると、提供される追加のメトリクスを使用して、高度でより深いインサイトを取得することもできます。

デフォルトのメトリクス

これらのメトリクスはNew Relicの SQL Server 監視機能に不可欠であり、設定に関係なく自動的に収集されます。

追加のメトリクス

インサイトを SQL Server データベースのパフォーマンスと健全性にさらに深くするために、必要に応じてこれらの追加のメトリクスを有効にします。

次のステップ

NRDOT を使用して SQL Server データベース監視を設定した後:

Copyright © 2026 New Relic株式会社。

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