Kubernetes でのサードパーティアプリケーションのオートディスカバリー 🔗
オートディスカバリーを使用して、Kubernetes 環境で実行されているサードパーティのアプリケーション (データベースや Web サーバーなど) を見つけることができます。オートディスカバリーは、これらのアプリケーションからテレメトリデータを収集し、Splunk Observability Cloud に送信します。
注釈
Collector をバージョン 0.94.0 以上に更新して、自動サービスディスカバリーを有効にします。
Collectorバージョン0.109.0以降を使用している場合、Splunk Observability Cloudにログインし、Data Management メニューの Discovered services タブに移動すると、Collectorが検出したサービスおよびサードパーティ製アプリケーションと自動的に監視できるものを確認できます。詳細は 自動ディスカバリーによるCollectorのデプロイ を参照してください。
自動ディスカバリーの仕組み 🔗
Collectorを自動検出で実行すると、オブザーバーエクステンションによってプラットフォーム上で検出されたエンドポイントに対して、サポートされているメトリクスレシーバーの組み込み設定をテストします。これは、Collectorサービスを開始する前に行われます。
成功基準に一致するメトリクスを取得する、動的にインスタンス化されたすべてのレシーバーについて、Collector はディスカバリー構成を、必要なオブザーバー拡張と同様に、既知の作業ルールを持つレシーバークリエーターインスタンスに変換します。詳細については、レシーバークリエーターレシーバー を参照してください。同時に、Collector は実行時に構成を metrics
パイプラインに追加します。
サービスとの接続は確立できるが、期待されるメトリクスを受信できないレシーバーに対して、ディスカバリーモードは、どのプロパティを設定すべきか、またはどの拡張機能または設定をサービス上で構成して、正常にテレメトリを取得すべきかを提案します。ディスカバリー・プロセスを調整するために、ディスカバリー・プロパティを使用して、認証情報など、必要なターゲット固有の構成値を定義できます。
Kubernetesで実行する場合、ディスカバリーモードは k8s_observer
オブザーバーによって発見されたエンドポイントに対して、バンドルされたメトリクスレシーバーの設定をテストします。ー発見されたインスタンスはー成功したインスタンスはー既存のー既存サービス構成に組み込まれます。
自動ディスカバリーによるCollectorのデプロイ 🔗
Splunk Distribution of OpenTelemetry Collector for KubernetesからDaemonSetをディスカバリーモードで実行するように設定できます。プロパティを編集して、必要な資格情報またはサービス固有の情報を追加します。
注釈
Collectorのバージョン0.109.0以降を使用している場合は、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チャートでのディスカバリーではオフになっています。