欠落したメトリクスのトラブルシューティング
Collector for Kubernetes に固有のトラブルシューティングについて説明します。
Splunk Collector for Kubernetes では「k8s.pod.*」および「k8s.node.*」で始まるメトリクスが欠落しています。
OpenTelemetry Collector for Kubernetes Chart バージョン 0.87.0 以上の Splunk Distribution を新規インストールまたはアップグレードでデプロイすると、以下のポッドとノードのメトリクスが収集されません。
-
k8s.(pod/node).cpu.time -
k8s.(pod/node).cpu.utilization -
k8s.(pod/node).filesystem.available -
k8s.(pod/node).filesystem.capacity -
k8s.(pod/node).filesystem.usage -
k8s.(pod/node).memory.available -
k8s.(pod/node).memory.major_page_faults -
k8s.(pod/node).memory.page_faults -
k8s.(pod/node).memory.rss -
k8s.(pod/node).memory.usage -
k8s.(pod/node).memory.working_set -
k8s.(pod/node).network.errors -
k8s.(pod/node).network.io
メトリクスが欠落していることを確認する
これらのメトリクスが欠落していることを確認するには、以下の手順を実行します。
-
次の Splunk Search Processing Language(SPL)コマンドでメトリクスが欠落していることを確認します。
| mstats count(_value) as "Val" where index="otel_metrics_0_93_3" AND metric_name IN (k8s.pod.*, k8s.node.*) by metric_name -
以下のコマンドで、Kubernetes ノードの CLI から、Collector のポッドログを確認します。
kubectl -n {namespace} logs {collector-agent-pod-name}注:namespaceとcollector-agent-pod-nameを利用環境に基づき更新してください。 -
エージェントポッドのログ内に、次の例のような [tls: failed to verify certificate] エラーが表示されていることを確認してください。
2024-02-28T01:11:24.614Z error scraperhelper/scrapercontroller.go:200 Error scraping metrics {"kind": "receiver", "name": "kubeletstats", "data_type": "metrics", "error": "Get \"https://10.202.38.255:10250/stats/summary\": tls: failed to verify certificate: x509: cannot validate certificate for 10.202.38.255 because it doesn't contain any IP SANs", "scraper": "kubeletstats"} go.opentelemetry.io/collector/receiver/scraperhelper.(*controller).scrapeMetricsAndReport go.opentelemetry.io/collector/receiver@v0.93.0/scraperhelper/scrapercontroller.go:200 go.opentelemetry.io/collector/receiver/scraperhelper.(*controller).startScraping.func1 go.opentelemetry.io/collector/receiver@v0.93.0/scraperhelper/scrapercontroller.go:176
解像度
Kubelet stats レシーバは、Kubernetes エンドポイント /stats/summary から k8s.pod または k8s.node メトリクスを収集します。Splunk OTel Collector のバージョン 0.87.0 では、このプロセス中に kubelet 証明書の検証が行われ、有効であることが確認されます。自己署名証明書または無効な証明書を使用している場合、Kubelet 統計受信者はメトリクスを収集できません。
以下の手順に従ってエラーを解決してください。
-
有効な証明書を Kubernetes クラスターに追加します。方法については、「Helmで Collector for Kubernetes を設定する」を参照してください。
values.yamlファイルを更新した後、Helm upgrade コマンドを使用して Collector デプロイをアップグレードします。 -
values.yaml の agent.config セクションで Kubelet stats レシーバの
insecure_skip_verify: trueを設定することで、OTel エージェントの Kubelet Stats レシーバで証明書検証を無効にします。
たとえば、以下の設定を使用して証明書検証を無効にします。
agent:
config:
receivers:
kubeletstats:
insecure_skip_verify: true