Docs » Splunk Observability Cloud でサポートされているインテグレーション » オーケストレーションのためにアプリケーション・レシーバーを設定する » OpenShiftクラスター

OpenShiftクラスター 🔗

Splunk Distribution of OpenTelemetry Collectorは、Smart Agentレシーバーと openshift-cluster モニタータイプを使用して、Kubernetes APIサーバーからクラスターレベルのメトリクスを収集します。これには、Kubernetes クラスター (非推奨) のすべてのメトリクスと、追加のOpenShift固有のメトリクスが含まれます。openshift-cluster モニターが自動的に組み込まれるため、OpenShiftデプロイでは kubernetes-cluster モニターのみを使用する必要があります。

このモニターはKubernetes、Linux、Windowsで利用できます。

動作 🔗

エージェントは一般的にKubernetesクラスター内の複数の場所で実行されており、一般的にすべてのエージェントインスタンスで同じ設定を共有する方が便利であるため、このモニターはデフォルトで、クラスター内でメトリクスを送信する唯一のエージェントであることを保証するためにリーダー選出プロセスを使用します。

このモニターが構成されている同じ名前空間で動作しているすべてのエージェントは、どのエージェントがこのモニターのメトリクスを送信するかをエージェント間で決定します。このエージェントがリーダー・エージェントになります。残りのエージェントは、リーダー・エージェントが死亡した場合に起動できるように待機しています。alwaysClusterReporter オプションを true に設定することで、リーダー・エージェントの選出をオーバーライドできます。

メリット 🔗

インテグレーションを設定すると、これらの機能にアクセスできるようになります:

インストール 🔗

このインテグレーションを導入するには、以下の手順に従ってください:

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

    デフォルトでは、Collectorはログインしている名前空間にインストールされます。Collectorを別の名前空間にデプロイするには、--namespace フラグを使用してCollectorを配置する場所を指定します。

    • Install on Kubernetes Helmチャートを使用してKubernetesをインストールする場合、標準のKubernetesメトリクスに加えて、特定のOpenShiftメトリクスを生成するには、--set distribution='openshift' オプションを使用します。

      例:

      helm install --set cloudProvider=' ' --set distribution='openshift' --set splunkObservability.accessToken='******' --set clusterName='cluster1' --namespace='namespace1' --set splunkObservability.realm='us0' --set gateway.enabled='false' --generate-name splunk-otel-collector-chart/splunk-otel-collector``
      

      詳細はGitHubレポを参照してください。

    • Linuxにインストールする

    • Windowsへのインストール

  2. 設定のセクションで説明するように、モニターを設定します。

  3. Splunk Distribution of OpenTelemetry Collector を再起動します。

設定 🔗

Smart Agent モニターとCollector のインテグレーションを使用するには、以下の手順に従います:

  1. Smart Agent レシーバーを設定ファイルに含めます。

  2. レシーバーセクションおよびパイプラインセクションの両方で、Collector 構成にモニタータイプを追加します。

設定オプション 🔗

次の表に、このモニターの設定オプションを示します:

オプション

必須

タイプ

説明

alwaysClusterReporter

いいえ

bool

true の場合、リーダー選出はスキップされ、メトリクスが常に

報告されています。デフォルト値は false です。

namespace

いいえ

string

指定された場合、指定された名前空間内のリソースだけが

監視されます。省略 (空白) の場合、すべての名前空間でサポートされているすべてのリソースが監視されます。

kubernetesAPI

いいえ

object

K8s APIクライアントの設定

nodeConditionTypesToReport

いいえ

list of strings

このダイアグラムでは、次のようなダイアグラムが表示されます。メトリックは、0 が 「False」 に、1 が 「True」 に、-1 が 「Unknown」 に対応する、kubernetes.node_<type_snake_cased> 形式のデータ・ポイントとして報告されます。デフォルト値は [Ready] です。

ネストされた kubernetesAPI コンフィギュレーション・オブジェクトは以下のフィールドを持ちます:

オプション

必須

タイプ

説明

authType

いいえ

string

K8s APIサーバーの認証方法。これは以下のいずれかです。

none (認証なしの場合)、tls (手動で指定した TLS クライアント証明書を使用します。非推奨)、 serviceAccount (エージェントポッドに提供された標準サービスアカウントトークンを使用する)、または kubeConfig ( ~/.kube/config からの証明書を使用する)。デフォルト値は serviceAccount です。

skipVerify

いいえ

bool

APIサーバーからのTLS証明書の検証をスキップするかどうか。

ほとんど必要ありません。デフォルト値は false です。

clientCertPath

いいえ

string

以下の場合、ポッドのファイルシステム上のTLSクライアント証明書へのパス

tls 認証を使用する場合。

clientKeyPath

いいえ

string

TLS証明書を使用する場合、ポッドのファイルシステム上のTLSクライアント鍵へのパス。

tls 認証。

caCertPath

いいえ

string

APIサーバーのTLS証明書を検証する際に使用するCA証明書へのパス。

通常、これはKubernetesがサービスアカウント・トークンと一緒に提供し、自動的にピックアップされるので、指定する必要はほとんどないはずです。

メトリクス 🔗

このインテグレーションでは、以下のメトリクスを使用できます:

NameDescriptionCategoryType
kubernetes.container_cpu_limit

Maximum CPU limit set for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available.

Defaultgauge
kubernetes.container_cpu_request

CPU requested for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available.

Customgauge
kubernetes.container_ephemeral_storage_limit

Maximum ephemeral storage set for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available. See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#local-ephemeral-storage for details.

Customgauge
kubernetes.container_ephemeral_storage_request

Ephemeral storage requested for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available. See https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#local-ephemeral-storage for details

Customgauge
kubernetes.container_memory_limit

Maximum memory limit set for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available.

Defaultgauge
kubernetes.container_memory_request

Memory requested for the container. This value is derived from https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.19/#resourcerequirements-v1-core which comes from the pod spec and is reported only if a non null value is available.

Customgauge
kubernetes.container_ready

Whether a container has passed its readiness probe (0 for no, 1 for yes)

Defaultgauge
kubernetes.container_restart_count

How many times the container has restarted in the recent past. This value is pulled directly from the K8s API and the value can go indefinitely high and be reset to 0 at any time depending on how your kubelet is configured to prune dead containers. It is best to not depend too much on the exact value but rather look at it as either == 0, in which case you can conclude there were no restarts in the recent past, or > 0, in which case you can conclude there were restarts in the recent past, and not try and analyze the value beyond that.

Defaultgauge
kubernetes.daemon_set.current_scheduled

The number of nodes that are running at least 1 daemon pod and are supposed to run the daemon pod

Defaultgauge
kubernetes.daemon_set.desired_scheduled

The total number of nodes that should be running the daemon pod (including nodes currently running the daemon pod)

Defaultgauge
kubernetes.daemon_set.misscheduled

The number of nodes that are running the daemon pod, but are not supposed to run the daemon pod

Defaultgauge
kubernetes.daemon_set.ready

The number of nodes that should be running the daemon pod and have one or more of the daemon pod running and ready

Defaultgauge
kubernetes.daemon_set.updated

The total number of nodes that are running updated daemon pod

Customgauge
kubernetes.deployment.available

Total number of available pods (ready for at least minReadySeconds) targeted by this deployment.

Defaultgauge
kubernetes.deployment.desired

Number of desired pods in this deployment

Defaultgauge
kubernetes.deployment.updated

Total number of non-terminated pods targeted by this deployment that have the desired template spec

Customgauge
kubernetes.namespace_phase

The current phase of namespaces (1 for active and 0 for terminating)

Defaultgauge
kubernetes.node_ready

Whether this node is ready (1), not ready (0) or in an unknown state (-1)

Defaultgauge
kubernetes.node_allocatable_cpu

How many CPU cores remaining that the node can allocate to pods

Customgauge
kubernetes.node_allocatable_memory

How many bytes of RAM memory remaining that the node can allocate to pods

Customgauge
kubernetes.node_allocatable_storage

How many bytes of storage remaining that the node can allocate to pods

Customgauge
kubernetes.node_allocatable_ephemeral_storage

How many bytes of ephemeral storage remaining that the node can allocate to pods

Customgauge
kubernetes.pod_phase

Current phase of the pod (1 - Pending, 2 - Running, 3 - Succeeded, 4 - Failed, 5 - Unknown)

Defaultgauge
kubernetes.replica_set.available

Total number of available pods (ready for at least minReadySeconds) targeted by this replica set

Defaultgauge
kubernetes.replica_set.desired

Number of desired pods in this replica set

Defaultgauge
kubernetes.replication_controller.available

Total number of available pods (ready for at least minReadySeconds) targeted by this replication controller.

Defaultgauge
kubernetes.replication_controller.desired

Number of desired pods (the spec.replicas field)

Defaultgauge
kubernetes.resource_quota_hard

The upper limit for a particular resource in a specific namespace. Will only be sent if a quota is specified. CPU requests/limits will be sent as millicores.

Defaultgauge
kubernetes.resource_quota_used

The usage for a particular resource in a specific namespace. Will only be sent if a quota is specified. CPU requests/limits will be sent as millicores.

Defaultgauge
kubernetes.stateful_set.desired

Number of desired pods in the stateful set (the spec.replicas field)

Customgauge
kubernetes.stateful_set.ready

Number of pods created by the stateful set that have the Ready condition

Customgauge
kubernetes.stateful_set.current

The number of pods created by the StatefulSet controller from the StatefulSet version indicated by current_revision property on the kubernetes_uid dimension for this StatefulSet.

Customgauge
kubernetes.stateful_set.updated

The number of pods created by the StatefulSet controller from the StatefulSet version indicated by the update_revision property on the kubernetes_uid dimension for this StatefulSet.

Customgauge
kubernetes.job.completions

The desired number of successfully finished pods the job should be run with.

Customgauge
kubernetes.job.parallelism

The max desired number of pods the job should run at any given time.

Customgauge
kubernetes.job.active

The number of actively running pods for a job.

Customgauge
kubernetes.job.succeeded

The number of pods which reached phase Succeeded for a job.

Customcumulative
kubernetes.job.failed

The number of pods which reased phase Failed for a job.

Customcumulative
kubernetes.cronjob.active

The number of actively running jobs for a cronjob.

Customgauge
kubernetes.hpa.spec.max_replicas

The upper limit for the number of replicas to which the autoscaler can scale up. It cannot be less that minReplicas.

Customgauge
kubernetes.hpa.spec.min_replicas

The lower limit for the number of replicas to which the autoscaler can scale down. It defaults to 1 pod.

Customgauge
kubernetes.hpa.status.current_replicas

The current number of pod replicas managed by this autoscaler.

Customgauge
kubernetes.hpa.status.desired_replicas

The desired number of pod replicas managed by this autoscaler.

Customgauge
kubernetes.hpa.status.condition.scaling_active

A status value that indicates the autoscaler status in reference to the ScalingActive condition. A value of 1 means that the autoscaler is in the ScalingActive condition, a 0 value means that it is not, and -1 means that the status of the ScalingActive condition is unknown. ScalingActive indicates that the HPA controller is able to scale if necessary.

Customgauge
kubernetes.hpa.status.condition.able_to_scale

A status value that indicates the autoscaler status in reference to the AbleToScale condition. A value of 1 means that the autoscaler is in the AbleToScale condition, a 0 value means that it is not, and -1 means that the status of the AbleToScale condition is unknown. AbleToScale indicates a lack of transient issues which prevent scaling from occurring, such as being in a backoff window, or being unable to access/update the target scale.

Customgauge
kubernetes.hpa.status.condition.scaling_limited

A status value that indicates the autoscaler status in reference to the ScalingLimited condition. A value of 1 means that the autoscaler is in the ScalingLimited condition, a 0 value means that it is not, and -1 means that the status of the ScalingLimited condition is unknown. ScalingLimited indicates that the calculated scale based on metrics would be above or below the range for the HPA, and has thus been capped.

Customgauge

dimensions

NameDescription
kubernetes_nameThe name of the resource that the metric describes
kubernetes_namespaceThe namespace of the resource that the metric describes
kubernetes_node_uidThe UID of the node, as defined by the `uid` field of the node resource.
kubernetes_pod_uidThe UID of the pod that the metric describes
machine_idThe machine ID from /etc/machine-id. This should be unique across all nodes in your cluster, but some cluster deployment tools don't guarantee this. This will not be sent if the `useNodeName` config option is set to true.
quota_nameThe name of the k8s ResourceQuota object that the quota is part of
resourceThe k8s resource that the quota applies to

properties

NameDescription
All non-blank labels on a given node will be synced as properties to the `kubernetes_node_uid` dimension value for that node. Any blank values will be synced as tags on that same dimension.
Any labels with non-blank values on the pod will be synced as properties to the `kubernetes_pod_uid` dimension. Any blank labels will be synced as tags on that same dimension.
container_statusStatus of the container such as `running`, `waiting` or `terminated` are synced to the `container_id` dimension.
container_status_reasonReason why a container is in a particular state. This property is synced to `container_id` only if the value of `cotnainer_status` is either `waiting` or `terminated`.
cronjob_creation_timestampTimestamp (in RFC3339 format) representing the server time when the cron job was created and is in UTC. This property is synced onto `kubernetes_uid`.
daemonset_creation_timestampTimestamp (in RFC3339 format) representing the server time when the daemon set was created and is in UTC. This property is synced onto `kubernetes_uid`.
deployment_creation_timestampTimestamp (in RFC3339 format) representing the server time when the deployment was created and is in UTC. This property is synced onto `kubernetes_uid`.
job_creation_timestampTimestamp (in RFC3339 format) representing the server time when the job was created and is in UTC. This property is synced onto `kubernetes_uid`.
pod_creation_timestampTimestamp (in RFC3339 format) representing the server time when the pod was created and is in UTC. This property is synced onto `kubernetes_pod_uid`.
replicaset_creation_timestampTimestamp (in RFC3339 format) representing the server time when the replica set was created and is in UTC. This property is synced onto `kubernetes_uid`.
statefulset_creation_timestampTimestamp (in RFC3339 format) representing the server time when the stateful set was created and is in UTC. This property is synced onto `kubernetes_uid`.
node_creation_timestampCreationTimestamp is a timestamp representing the server time when the node was created and is in UTC. This property is synced onto `kubernetes_node_uid`.

備考 🔗

  • Splunk Observability Cloudで利用可能なメトリクスタイプの詳細は、メトリクスタイプ を参照してください。

  • ホストベースのサブスクリプションプランでは、デフォルトのメトリクスは、ホスト、コンテナ、バンドルメトリクスなど、Splunk Observability Cloudのホストベースのサブスクリプションに含まれるメトリクスです。カスタムメトリクスはデフォルトでは提供されず、料金が発生する場合があります。詳細については、メトリクスカテゴリ を参照してください。

  • MTSベースのサブスクリプションプランでは、すべてのメトリクスがカスタムです。

  • メトリクスを追加するには、その他のメトリクスの追加extraMetrics の設定方法を参照してください。

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

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日 に最終更新されました。