Kubelet統計レシーバー 🔗
Kubelet statsレシーバーは、kubelet上のKubernetes APIサーバーからポッドメトリクスをプルし、さらなる処理のためにメトリクス・パイプラインを介してそれらを送信します。サポートされているパイプラインタイプは metrics
です。詳細は パイプラインでデータを処理する を参照してください。
注釈
このレシーバーは、kubelet-stats
、kubelet-metrics
、kubernetes-volumes
Smart Agent モニターに代わるものです。
はじめに 🔗
以下の手順に従って、コンポーネントの設定とアクティベーションを行ってください:
Splunk Distribution of OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします:
次のセクションで説明するように、Kubelet 統計レシーバーを設定します。
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 theca_file
,key_file
, andcert_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
レシーバーを設定する方法を示しています。
ポッド仕様でノード名が設定されていることを確認します:
env: - name: K8S_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName
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 fromawsElasticBlockStore
andgcp.pd.name
is synced fromgcePersistentDisk
.
メトリクススに 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
を設定すると、リストされたグループからのメトリクスのみが収集されます。有効なグループは、container
、pod
、node
、volume
です。
例えば、レシーバーからノードとポッドのメトリクスだけを収集します:
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をご利用のお客様
Submit a case in the Splunk Support Portal .
Contact Splunk Support .
見込み客および無料トライアルユーザー様
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.