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]
注意
endpoint
値がないか空の場合、Collector が実行されているホスト名がエンドポイントとして使用されます。hostNetwork
フラグが設定されていて、CollectorがPodで実行されている場合、ホスト名はノードのネットワーク名前空間に解決されます。
高度なユースケース 🔗
デフォルトで除外されているメトリクスを追加する 🔗
除外されたメトリクスをインポートするには、次の例のように 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
:/pods
を使用して公開されているPod仕様からボリュームタイプを収集し、ボリュームメトリクスの属性として追加します。ボリューム・タイプよりも多くのメタデータが利用可能な場合、レシーバーは利用可能なフィールドとボリュームのタイプに応じて同期します。たとえば、aws.volume.id
はawsElasticBlockStore
から同期され、gcp.pd.name
は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
k8s_api_config
が設定されている場合、レシーバーは永続ボリューム請求の基礎となるストレージリソースからメタデータの収集を試みます。たとえば、Pod が AWS 上の Elastic Block Store(EBS)インスタンスに裏付けされた永続ボリュームクレームを使用している場合、レシーバーは persistentVolumeClaim
ではなく awsElasticBlockStore
に k8s.volume.type
ラベルを設定します。
メトリクス・グループの設定 🔗
メトリクス・グループは、コンポーネント・タイプ別のメトリクスの集まりです。デフォルトでは、コンテナ、ポッド、およびノードからのメトリクスが収集されます。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 のコミュニティサポートで質問し、回答を得る
Splunk #observability ユーザーグループの Slack チャンネルに参加して、世界中の顧客、パートナー、Splunk 社員とのコミュニケーションを図る。参加するには、Get Started with Splunk Community マニュアルの チャットグループ を参照してください。