Istio から Splunk Observability Cloud にトレースを送信する 🔗
Istio 1.8 以降では、オブザーバビリティがネイティブサポートされています。Splunk OpenTelemetry Collector と Istio を設定することで、トレース、メトリクス、ログを Splunk Observability Cloud に送信するように Istio サービスメッシュを設定できます。
要件 🔗
Istio から Splunk Observability Cloud にテレメトリを送信するには、以下が必要です:
Istio 1.8以上
Splunk OpenTelemetry Collector for Kubernetes をホスト監視 (エージェント) モードで使用します。Install the Collector for Kubernetes using Helm を参照してください。
B3 コンテキスト伝搬を使用した Splunk APM インストルメンテーション。B3 をコンテキストプロパゲータとして設定するには、
OTEL_PROPAGATORS
環境変数をb3multi
に設定します。
OpenCensusとW3Cトレースコンテキストは、Istioがサポートしていないため、サポートされていません。
Splunk OpenTelemetry Collector をインストールして設定する 🔗
Splunk OpenTelemetry Collector for Kubernetes をホスト監視 (エージェント) モードでデプロイします。必要な Collector コンポーネントは、製品権限と収集するデータによって異なります。Install the Collector for Kubernetes using Helm を参照してください。
Collector の Helm チャートで、helm install
または helm upgrade
コマンドに --set autodetect.istio=true
を渡して、autodetect.istio
パラメータを true
に設定します。
また、values.yamlファイルに以下のスニペットを追加し、-f myvalues.yaml
引数で渡すこともできます:
autodetect:
istio: true
データ転送がテレメトリを生成しないようにする 🔗
Istio から Collector にテレメトリを転送すると、望ましくないテレメトリが生成されることがあります。これを回避するには、以下のいずれかを実行します:
Istioプロキシがない別の名前空間でCollectorを実行します。
Istioプロキシの注入を防ぐために、Collectorポッドにラベルを追加します。これは、
autodetect.istio
パラメータがtrue
に設定されている場合のデフォルトの設定です。CollectorポッドでIstioプロキシが必要な場合は、Collectorポッドでトレースを無効にします。例:
# ... otelK8sClusterReceiver: podAnnotations: proxy.istio.io/config: '{"tracing":{}}' otelCollector: podAnnotations: proxy.istio.io/config: '{"tracing":{}}'
注釈
インストルメンテーション・ポッドはDaemonSetであり、デフォルトではプロキシは注入されません。Istio がインストルメンテーション・ポッドにプロキシを注入する場合は、podAnnotation
を使用してトレースを無効にしてください。
Istio オペレーターの設定 🔗
以下の手順に従って、Istio Operator を設定します:
environment.deployment
属性を設定します。ホスト上で実行されている Splunk OpenTelemetry Collector にデータを送信するように Zipkin トレーサーを設定します。
例:
# tracing.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio-operator
spec:
meshConfig:
# Requires Splunk Log Observer
accessLogFile: /dev/stdout
# Requires Splunk APM
enableTracing: true
defaultConfig:
tracing:
max_path_tag_length: 99999
sampling: 100
zipkin:
address: $(HOST_IP):9411
custom_tags:
environment.deployment:
literal:
value: dev
新しいコンフィギュレーションを有効にするには、以下を実行します:
istioctl install -f ./tracing.yaml
Istio プロキシを含むポッドを再起動して、新しいトレース設定を有効にします。
サービスメッシュ内のすべてのポッドを更新する 🔗
Istio サービスメッシュにあるすべてのポッドを更新して、app
ラベルを含めます。Istio はこれを使用して Splunk サービスを定義します。
注釈
もし app
ラベルを設定しなければ、プロキシとサービスの関係を特定することはより難しくなります。
推奨事項 🔗
完全忠実なデータ保持を最大限に活用するには、サンプリングと最大タグ長を以下のように設定して、できるだけ多くのトレースデータを送信するようにIstioを設定します:
すべてのトレースが正しいルートスパンを持つように、
100
のsampling
値を設定します。キー・タグが切り捨てられるのを避けるため、
max_path_tag_length
の値を99999
に設定します。
例:
# tracing.yaml
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio-operator
spec:
meshConfig:
# Requires Splunk Log Observer
accessLogFile: /dev/stdout
# Requires Splunk APM
enableTracing: true
defaultConfig:
tracing:
max_path_tag_length: 99999
sampling: 100
zipkin:
address: $(HOST_IP):9411
custom_tags:
environment.deployment:
literal:
value: dev
Istioの設定方法の詳細については、Istio分散トレースのインストールドキュメントを参照してください。
Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。
Splunk Observability Cloudをご利用のお客様
Submit a case in the Splunk Support Portal .
Contact Splunk Support .
見込み客および無料トライアルユーザー様
Splunk Answers のコミュニティサポートで質問し、回答を得る
Splunk #observability ユーザーグループの Slack チャンネルに参加して、世界中の顧客、パートナー、Splunk 社員とのコミュニケーションを図る。参加するには、Get Started with Splunk Community マニュアルの チャットグループ を参照してください。