Docs » Splunk Observability Cloud でサポートされているインテグレーション » Collectorコンポーネント: レシーバー » Kubelet統計レシーバー

Kubelet統計レシーバー 🔗

Kubelet statsレシーバーは、kubelet上のKubernetes APIサーバーからポッドメトリクスをプルし、さらなる処理のためにメトリクス・パイプラインを介してそれらを送信します。サポートされているパイプラインタイプは metrics です。詳細は パイプラインでデータを処理する を参照してください。

注釈

このレシーバーは、kubelet-statskubelet-metricskubernetes-volumes Smart Agent モニターに代わるものです。

はじめに 🔗

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

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

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

  3. Collector を再起動します。

サンプル構成 🔗

Kubelet 統計レシーバーを有効にするには、設定ファイルの receivers セクションに kubeletstats を追加します:

receivers:
  kubeletstats:

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

service:
  pipelines:
    metrics:
      receivers: [kubeletstats]

Kubelet 統計レシーバー接続を認証する 🔗

KubeletはKubernetesノード上で実行され、Kubelet statsレシーバーが接続するAPIサーバーを持ちます。レシーバーを設定するには、接続と認証の詳細、データを収集して送信する頻度を設定します。

認証には、auth_type フィールドで示されるように、2つの方法があります:

  • tls tells the receiver to use TLS for authentication and requires that the ca_file, key_file, and cert_file fields. See more at Configure TLS.

  • ServiceAccount は、kubelet API の認証にデフォルトのサービス アカウント トークンを使用するよう、このレシーバーに指示します。

TLS認証を設定する 🔗

次の例は、TLS 認証を使用して kubelet stats レシーバーを構成する方法を示しています:

receivers:
  kubeletstats:
    collection_interval: 20s
    auth_type: "tls"
    ca_file: "/path/to/ca.crt"
    key_file: "/path/to/apiserver.key"
    cert_file: "/path/to/apiserver.crt"
    endpoint: "192.168.64.1:10250"
    insecure_skip_verify: true

exporters:
  file:
    path: "fileexporter.txt"

service:
  pipelines:
    metrics:
      receivers: [kubeletstats]
      exporters: [file]

サービスアカウント認証の設定 🔗

次の例は、サービスアカウント認証で kubeletstats レシーバーを設定する方法を示しています。

  1. ポッド仕様でノード名が設定されていることを確認します:

    env:
      - name: K8S_NODE_NAME
        valueFrom:
          fieldRef:
            fieldPath: spec.nodeName
    
  2. Collector をアクティブにして、K8S_NODE_NAME 環境変数を参照します:

receivers:
  kubeletstats:
    collection_interval: 20s
    auth_type: "serviceAccount"
    endpoint: "${K8S_NODE_NAME}:10250"
    insecure_skip_verify: true
exporters:
  file:
    path: "fileexporter.txt"
service:
  pipelines:
    metrics:
      receivers: [kubeletstats]
      exporters: [file]

注意

A missing or empty endpoint value causes the host name on which the Collector is running to be used as the endpoint. If the hostNetwork flag is set, and the Collector is running in a pod, the host name resolves to the node’s network namespace.

高度なユースケース 🔗

デフォルトで除外されているメトリクスを追加する 🔗

除外されたメトリクスをインポートするには、次の例のように include_metrics オプションを使用します:

exporters:
  signalfx:
    include_metrics:
      - metric_names:
          - container.memory.rss.bytes
          - container.memory.available.bytes

メタデータ属性の追加 🔗

デフォルトでは、生成されたすべてのメトリクスは、/stats/summary エンドポイントが提供する kubelet に基づくリソース属性を取得します。他のエンドポイントを使用して追加のメタデータ・エンティティを取得し、メトリクス・リソースの追加属性として設定します。

Kubelet統計レシーバーは、以下のメタデータをサポートします:

  • container.id: /pods を使って公開されたコンテナのステータスから得られるコンテナIDラベルで、メトリクスメタデータを豊かにします。

  • k8s.volume.type: Collects the volume type from the pod spec exposed using /pods and add it as an attribute to volume metrics. If more metadata than the volume type is available, the receiver syncs it depending on the available fields and the type of volume. For example, aws.volume.id is synced from awsElasticBlockStore and gcp.pd.name is synced from gcePersistentDisk.

メトリクススに container.id ラベルを追加するには、extra_metadata_labels フィールドを設定します。例:

receivers:
  kubeletstats:
    collection_interval: 10s
    auth_type: "serviceAccount"
    endpoint: "${K8S_NODE_NAME}:10250"
    insecure_skip_verify: true
    extra_metadata_labels:
      - container.id

extra_metadata_labels が設定されていない場合、メタデータを受け取るための追加のAPIコールは行われません。

追加のボリューム・メタデータを収集する 🔗

永続ボリューム・クレームを扱う場合、基礎となるストレージ・リソースからメタデータを同期できます。例:

receivers:
  kubeletstats:
    collection_interval: 10s
    auth_type: "serviceAccount"
    endpoint: "${K8S_NODE_NAME}:10250"
    insecure_skip_verify: true
    extra_metadata_labels:
      - k8s.volume.type
    k8s_api_config:
      auth_type: serviceAccount

If k8s_api_config is set, the receiver attempts to collect metadata from underlying storage resources for persistent volume claims. For example, if a pod is using a persistent volume claim backed by an Elastic Block Store (EBS) instance on AWS, the receiver sets the k8s.volume.type label to awsElasticBlockStore rather than persistentVolumeClaim.

メトリクス・グループの設定 🔗

メトリクス・グループは、コンポーネント・タイプ別のメトリクスの集まりです。デフォルトでは、コンテナ、ポッド、およびノードからのメトリクスが収集されます。metric_groups を設定すると、リストされたグループからのメトリクスのみが収集されます。有効なグループは、containerpodnodevolume です。

例えば、レシーバーからノードとポッドのメトリクスだけを収集します:

receivers:
  kubeletstats:
    collection_interval: 10s
    auth_type: "serviceAccount"
    endpoint: "${K8S_NODE_NAME}:10250"
    insecure_skip_verify: true
    metric_groups:
      - node
      - pod

オプションパラメーターの設定 🔗

また、以下のオプション・パラメーターも設定できます:

  • collection_interval これはデータを収集する間隔です。デフォルト値は 10s です。

  • insecure_skip_verify これは、サーバー証明書チェーンとホスト名の検証を省略するかどうかを指定します。デフォルト値は false です。

設定 🔗

次の表に、Kubelet 統計レシーバーの構成オプションを示します:

メトリクス 🔗

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

注釈

SignalFxエクスポーターは、デフォルトでいくつかの利用可能なメトリクスを除外します。デフォルトのメトリクス・フィルターについては、デフォルトで除外されるメトリクスのリスト を参照してください。

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

各メトリクスの 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 に送信されません。

Billing 🔗

  • If you’re in a MTS-based subscription, all metrics count towards metrics usage.

  • ホストベースのプランに加入している場合、このドキュメントでアクティブ(Active: Yes)と記載されているメトリクスはデフォルトとみなされ、無料で含まれます。

Learn more at Infrastructure Monitoringのサブスクリプション使用状況(ホストとメトリクスのプラン).

トラブルシューティング 🔗

Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。

Splunk Observability Cloudをご利用のお客様

見込み客および無料トライアルユーザー様

  • Splunk Answers のコミュニティサポートで質問し、回答を得る

  • Join the Splunk #observability user group Slack channel to communicate with customers, partners, and Splunk employees worldwide. To join, see Chat groups in the Get Started with Splunk Community manual.

このページは 2025年02月11日 に最終更新されました。