MongoDB レシーバー

MongoDB のレシーバーは、golang の mongo ドライバを使って MongoDB インスタンスから統計情報を取得します。

MongoDB レシーバーは、Atlas が管理していない MongoDB サーバーを含む、スタンドアロンの MongoDB クラスターからメトリクスをフェッチします。サポートされているパイプラインのタイプは metrics です。詳細については「パイプラインでデータを処理する」を参照してください。

レシーバーは MongoDB の dbStatsserverStatus コマンドで統計情報を収集し、golang の mongo ドライバを使います。詳細については「Mongo Go driver documentation」を参照してください。

注: 非推奨のSignalFx Smart Agent mongodb モニタータイプの代わりに MongoDBレシーバーを使用します。

前提条件

MongoDB レシーバーは MongoDB バージョン 4.0+、5.0、6.0、7.0 をサポートしています。

MongoDB では、clusterMonitor ロールを持つ最小権限ユーザー (LPU) を設定してメトリクスを収集することを推奨しています。

  • MongoDB のロールについては「MongoDB built-in roles」を参照してください。

  • これらのアクセス許可の設定方法の例については、「lpu.sh」を参照してください。

注: MongoDB で自動検出を使っている場合は「Automatic discovery for MongoDB」を参照してください。

はじめに

以下の手順に従って、コンポーネントの設定とアクティベーションを行ってください:

  1. Splunk Distribution of the OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします:

  2. 次のセクションで説明するようにレシーバーを設定します。

  3. Collector を再起動します。

サンプル構成

MongoDBレシーバーを有効にするには、次の例のように、設定ファイルの mongodb セクションに receivers を追加します:

receivers:
  mongodb:
    hosts:
      - endpoint: localhost:27017
    username: otel
    password: ${env:MONGODB_PASSWORD}
    collection_interval: 60s
    initial_delay: 1s
    tls:
      insecure: true
      insecure_skip_verify: true

設定を完了するには、構成ファイルの service セクションの metrics パイプラインにレシーバーを含めます。例:

service:
  pipelines:
    metrics:
      receivers: [mongodb]

設定オプション

以下の設定はオプションです:

  • hosts。デフォルトでは [localhost:27017] です。host:port または Unix ドメイン ソケット エンドポイントのリスト。transport オプションが使用できなくなりました。

    • スタンドアロンの MongoDB デプロイの場合は、これは mongod インスタンスのホスト名とポート番号です。

    • レプリカセットの場合は、レプリカセット設定にある mongod インスタンスのホスト名とポートを指定します。replica_set フィールドを指定すると、ノードは自動検出されます。

    • シャーディングされた MongoDB デプロイの場合、mongos ホストのリストを指定します。

  • username:認証が必要な場合は、clusterMonitor のアクセス許可をここに入力します。

  • password:認証が必要な場合は、ここにパスワードを入力してください。

  • collection_interval。デフォルトでは 1m です。このレシーバーは、一定の間隔でメトリクスを収集します。有効な時間単位は nsusµs )、mssmh です。この値は、Golang の time parseDuration で読み取り可能な文字列である必要があります。詳細については「ParseDuration」を参照してください。

  • initial_delay。デフォルトでは 1s です。このレシーバーが開始するまでの待ち時間を定義します。

  • replica_set:MongoDBのデプロイがレプリカセットの場合は、レプリカセット名を指定します。レプリカセット内の他のノードを自動ディスカバリーできるようになります。

  • timeout。デフォルトでは 1m です。mongo に対してコマンドを実行する際のタイムアウト。

  • tls:TLS 制御。デフォルトでは、安全でない設定は拒否され、証明書の検証はオンになっています。詳しくは 「TLS Configuration Settings」を参照してください。

  • direct_connectionします。true の場合、ドライバは他のノードを自動検出しようとせず、代わりにホストへの直接接続を実行します。

設定

次の表にMongoDBレシーバーの設定オプションを示します:

同梱

https://raw.githubusercontent.com/splunk/collector-config-tools/main/cfg-metadata/receiver/mongodb.yaml

メトリクス

以下のメトリクス、リソース属性、および属性が使用できます。

同梱

https://raw.githubusercontent.com/splunk/collector-config-tools/main/metric-metadata/mongodbreceiver.yaml

  • mongodb.extent.count は、mmapv1 ストレージエンジンを搭載した 4.4 未満のバージョンで利用可能です。

特定のメトリクスをアクティブまたは非アクティブにする

各メトリクスの metrics セクションの enabled フィールドを設定することで、特定のメトリクスをアクティブまたは非アクティブにできます。例:

receivers:
  samplereceiver:
    metrics:
      metric-one:
        enabled: true
      metric-two:
        enabled: false

以下は、アクティブ化されたメトリクスを持つホスト・メトリクス・レシーバーの構成例です:

receivers:
  hostmetrics:
    scrapers:
      process:
        metrics:
          process.cpu.utilization:
            enabled: true
注: 非アクティブ化されたメトリックは Splunk Observability Cloud に送信されません。
請求
  • MTS ベースのサブスクリプションの場合、すべてのメトリックがメトリックの使用にカウントされます。

  • ホストベースのプランを使用している場合、このドキュメントでアクティブ(アクティブ:はい)としてリストされているメトリックはデフォルトと見なされ、無料で含まれています。

詳細については、「Infrastructure Monitoringのサブスクリプション使用状況(ホストとメトリクスのプラン)」を参照してください。

トラブルシューティング

__ ___ ___ _ ______ _____________ _____ ________ ___ ___ ___ ____ __ ___ ____ ____ __ ______ _____________ ______ ___ ___ ___ ____ __ ___ _________ _____

_________ __ ______ _____________ _____ _________

_________ __ ___________ _________ ___ ____ _____ _____

  • ___ _ ________ ___ ___ _______ _______ _________ _______ __ ______ ________

  • ____ ___ ______ ______________ ____ _____ _____ _______ __ ___________ ____ __________ _________ ___ ______ _________ __________ __ _____ ___ ____ _______