Kubernetesイベント

Kubernetes イベントモニターには、この Splunk Observability Cloud インテグレーションを使用してください。メリット、インストール、設定、メトリクスを参照してください

Splunk Distribution of OpenTelemetry Collector は、Smart Agent レシーバを kubernetes-events モニタータイプで使用して、Kubernetes イベントをリッスンします。このインテグレーションはマネージャノード上で実行されている Kubernetes API を呼び出し、Kubernetes イベントを OpenTelemetry パイプラインを通して Infrastructure Monitoring イベントとして Splunk Observability Cloud に送信します。

開始後、Kubernetes イベントモニタータイプは、Kubernetes がまだ永続化されているすべてのイベントと、新しいイベントを送信します。様々なエージェントが、どのインスタンスがイベントをリードし、送信するかを決定します。 alwaysClusterReportertrue に設定されている場合、すべてのノードが同じデータを送信し、マネージャノードへの追加のクエリはありません。

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

メリット

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

  • イベントを表示します。独自のカスタムダッシュボードを作成することができ、ほとんどのモニターは組み込みのダッシュボードも提供しています。ダッシュボードの詳細については、「Splunk Observability Cloudでダッシュボードを表示する」を参照してください。

  • Infrastructure Monitoring に表示される環境内の物理サーバー、仮想マシン、AWS インスタンス、およびその他リソースのデータ駆動型の視覚化を表示します。ナビゲータの詳細については、「Splunk Infrastructure Monitoring でナビゲーターを使用する」を参照してください。

インストール

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

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

  2. [設定] セクションの説明に従ってインテグレーションを設定します。

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

Helmありでデプロイする

Helmチャートでこのモニターを有効にするには、helm installコマンドにこの引数を含めます:

-set splunkObservability.infrastructureMonitoringEventsEnabled='true'

Helmなしでデプロイする

Helmなしでデプロイするには、OTelコンフィギュレーションに以下を含めます:

processors:
  resource/add_event_k8s:
    attributes:
      - action: insert
        key: kubernetes_cluster
        value: CHANGEME

receivers:
  smartagent/kubernetes-events:
   type: kubernetes-events
   alwaysClusterReporter: true

service:
  pipelines:
    logs/events:
      exporters:
        - signalfx
      processors:
        - memory_limiter
        - batch
        - resourcedetection
        - resource/add_event_k8s
      receivers:
        - smartagent/kubernetes-events

設定

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

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

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

このインテグレーションを有効にするには、Collector構成に以下を追加します:

receivers:
   smartagent/kubernetes-events:
   type: kubernetes-events
   ... # Additional config

次に、設定ファイルの service.pipelines.metrics.receivers セクションにモニターを追加します:

services:
  logs/events:
    receivers:
      - smartagent/kubernetes-events

最後に、送信するイベントを設定します。以下のコマンドで、クラスターで発生しているイベントの種類を確認できます。

kubectl get events -o yaml --all-namespaces

すべてのイベントを送信するには、values.yamlで _sendAllEvents オプションを true に設定し、whitelistedEvents オプションを削除します。

出力から、Reason(Started、Created、Scheduled)と Kind(Pod、ReplicaSet、Deployment...)を組み合わせて、送信するイベントを選択します。
  • 許可したい各イベントルールに対して、単一の reason と involveObjectKind を個別に指定します。

  • イベントは、whitelistedEvents 設定オプションに、送信したいイベントのリストとして配置されます。

  • イベント名は理由名と一致します。

コンフィギュレーション設定

オプション

必須

タイプ

説明

kubernetesAPI

いいえ

object (see below)

Kubernetes APIクライアントの設定。

whitelistedEvents

いいえ

list of objects (see below)

イベントを送信するイベントタイプのリスト。これらの項目に一致する

イベントのみ送信されます。

alwaysClusterReporter

いいえ

bool

このエージェントインスタンスから常にイベントを送信するか、あるいは

1 つのエージェントインスタンスからのみ送信するためのリーダー選出をするかどうか。デフォルトは false です。

ネストされた 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 認証を使用する場合)。

caCertPath

いいえ

string

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

TLS 証明書。通常、この証明書は K8s によってサービスアカウントトークンと一緒に提供され、自動的にピックアップされるため、指定する必要はほとんどありません。

ネストされた whitelistedEvents コンフィギュレーション・オブジェクトには以下のフィールドがあります:

オプション

必須

タイプ

reason

いいえ

string

involvedObjectKind

いいえ

string

YAML設定の例:

receivers:
   smartagent/kubernetes-events:
     type: kubernetes-events
     whitelistedEvents:
       - reason: Created
         involvedObjectKind: Pod
       - reason: SuccessfulCreate
         involvedObjectKind: ReplicaSet

トラブルシューティング

__ ___ ___ _ ______ _____________ _____ ________ ___ ___ ___ ____ __ ___ ____ ____ __ ______ _____________ ______ ___ ___ ___ ____ __ ___ _________ _____

_________ __ ______ _____________ _____ _________

_________ __ ___________ _________ ___ ____ _____ _____

  • ___ _ ________ ___ ___ _______ _______ _________ _______ __ ______ ________

  • ____ ___ ______ ______________ ____ _____ _____ _______ __ ___________ ____ __________ _________ ___ ______ _________ __________ __ _____ ___ ____ _______