Kubernetes でのサードパーティアプリケーションのオートディスカバリー
Kubernetesのサードパーティ製アプリケーションからSplunk Observability Cloudにデータを送信するための、オートディスカバリーの使用方法について学習します。
オートディスカバリを使用して、Kubernetes 環境で実行されているサードパーティのアプリケーション(データベースや Web サーバーなど)を見つけることができます。オートディスカバリは、これらのアプリケーションからテレメトリデータを収集し、Splunk Observability Cloud に送信します。
自動ディスカバリーの仕組み
Collector をオートディスカバリーで実行すると、オブザーバーエクステンションによってプラットフォーム上で検出されたエンドポイントに対して、サポートされているメトリクスレシーバの組み込み設定をテストします。これは、Collector サービスを開始する前に行われます。
成功基準に一致するメトリクスを取得する、動的にインスタンス化されたレシーバの場合、Collector はディスカバリー設定を、既知の作業ルールと必要なオブザーバー拡張を備えたレシーバクリエータインスタンスに変換します。詳しくは「Receiver creator receiver」を参照してください。同時に、Collector はランタイム時に metrics パイプラインに設定を追加します。
サービスとの接続は確立できるが、期待されるメトリクスを受信できないレシーバに対して、ディスカバリーモードは、どのプロパティを設定すべきか、またはどの拡張機能または設定をサービス上で構成して、正常にテレメトリを取得すべきかを提案します。検出プロセスを調整するために検出プロパティを使用して、必要なターゲット固有の構成値(認証情報など)を定義できます。
Kubernetes で実行する場合、ディスカバリーモードは k8s_observer オブザーバーによって発見されたエンドポイントに対して、バンドルされたメトリクスレシーバの設定をテストします。正常に検出されたインスタンスは、既存のサービス構成に組み込まれます。
自動ディスカバリーによるCollectorのデプロイ
Splunk Distribution of OpenTelemetry Collector for Kubernetes から DaemonSet をディスカバリモードで実行するように設定できます。プロパティを編集して、必要な資格情報またはサービス固有の情報を追加します。
featureGates: splunk.continuousDiscoveryを使用して UI でオートディスカバリをアクティブ化します。次の例では、Helmチャートでディスカバリーモードを有効にし、PostgreSQLサービスディスカバリー用の認証プロパティを追加する方法を示します:
agent:
#...
discovery:
enabled: true # Turned off by default
properties:
extensions:
k8s_observer:
config:
auth_type: serviceAccount # Default auth_type value
receivers:
postgres:
config:
# Environment variables populated by secret data
username: '${env:POSTGRES_USER}'
password: '${env:POSTGRES_PASSWORD}'
tls:
insecure: true
# Activates auto discovery in UI. Only available for the Collector version 0.109.0 or higher
featureGates: splunk.continuousDiscovery
# ...
extraEnvs:
# Environment variables using a manually created secret
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: postgres-monitoring
key: username
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgres-monitoring
key: password
ディスカバリの進行状況とステートメントの評価を確認するには、エージェントの起動ログを参照するか、kubectl を使用します。例:
$ kubectl -n monitoring logs splunk-otel-collector-agent | grep -i disco
Discovering for next 10s...
Successfully discovered "postgresql" using "k8s_observer" endpoint "k8s_observer/e8a10f52-4f2a-468c-be7b-7f3c673b1c8e/(5432)".
Discovery complete.
docker_observer と host_observer の拡張子は、Helmチャートでのディスカバリーではオフになっています。