O11y Cloud で問題を解決する

OpenTelemetry Collector のデプロイと設定のカスタマイズ

15 minutes

「データを取り込む」ための最初のステップは、OpenTelemetry Collector をデプロイすることです。Collector は環境内のテレメトリデータを受信・処理し、Splunk Observability Cloud にエクスポートします。

このワークショップでは Kubernetes を使用し、Helm を使って K8s クラスターに Collector をデプロイします。

Helm とは

Helm は Kubernetes 用のパッケージマネージャーで、以下のメリットがあります

Helm を使用した Collector のインストール

正しいディレクトリに移動し、スクリプトを実行して Collector をインストールします。

bash
cd /home/splunk/workshop/tagging
./1-deploy-otel-collector.sh

スクリプトの実行には1分ほどかかる場合があります。

このスクリプトはどのように Collector をインストールしたのでしょうか?まず、~./profile ファイルに設定された環境変数が読み込まれていることを確認します。

重要:以下のコマンドは 1-deploy-otel-collector.sh スクリプトによってすでに実行されているため、 手動で実行する必要はありません。

bash
source ~/.profile

次に、splunk-otel-collector-chart Helm チャートをインストールし、最新の状態に更新します。

bash
  helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
  helm repo update

最後に、helm install を使用して Collector をインストールします。

bash
  helm install splunk-otel-collector --version 0.149.0 \
  --set="splunkObservability.realm=$REALM" \
  --set="splunkObservability.accessToken=$ACCESS_TOKEN" \
  --set="clusterName=$INSTANCE-k3s-cluster" \
  --set="environment=tagging-workshop-$INSTANCE" \
  splunk-otel-collector-chart/splunk-otel-collector \
  -f otel/values.yaml

helm install コマンドは values.yaml ファイルを参照しており、このファイルは Collector の設定を カスタマイズするために使用されます。詳細については以下で説明します。

Collector が実行中であることを確認する

以下のコマンドで Collector が実行中かどうかを確認できます。

bash
kubectl get pods

K8s クラスターが O11y Cloud に表示されていることを確認する

Splunk Observability Cloud で、InfrastructureKubernetesKubernetes Clusters に移動し、クラスター名($INSTANCE-k3s-cluster)を検索します。

Kubernetes node

Collector の設定を取得する

Collector の設定をカスタマイズする前に、現在の設定がどのようになっているかを確認しましょう。

Kubernetes 環境では、Collector の設定は Config Map を使用して保存されています。

以下のコマンドで、クラスター内に存在する Config Map を確認できます。

bash
kubectl get cm -l app=splunk-otel-collector

次に、Collector エージェントの Config Map を以下のように表示できます。

bash
kubectl describe cm splunk-otel-collector-otel-agent

K8s で Collector の設定を更新する方法

values.yaml ファイルを使用して、K8s の Collector 設定をカスタマイズできます。

values.yaml ファイルで利用可能なカスタマイズオプションの包括的なリストについては、 このファイル を参照してください。

例を見てみましょう。

Debug Exporter の追加

Collector に送信されるトレースを確認したい場合、debug exporter を使用できます。これは OpenTelemetry 関連の問題のトラブルシューティングに役立ちます。

vi または nano を使用して values.yaml ファイルを編集できます。ここでは vi を使用した例を示します。

bash
vi /home/splunk/workshop/tagging/otel/values.yaml

以下のテキストをコピーして values.yaml ファイルの末尾に貼り付け、debug exporter を追加します。

以下のテキストを追加する前に、vi で ‘i’ を押してインサートモードに入ってください。

yaml
    # NEW CONTENT
    exporters:
      debug:
        verbosity: detailed
    service:
      pipelines:
        traces:
          exporters:
            - otlp_http
            - signalfx
            - debug

これらの変更後、values.yaml ファイルの内容は以下のようになります。

yaml
splunkObservability:
  profilingEnabled: true
  infrastructureMonitoringEventsEnabled: true
certmanager:
  enabled: true
operator:
  enabled: true
operatorcrds:
  install: true

agent:
  config:
    receivers:
      kubeletstats:
        insecure_skip_verify: true
        auth_type: serviceAccount
        endpoint: ${K8S_NODE_IP}:10250
        metric_groups:
          - container
          - pod
          - node
          - volume
        k8s_api_config:
          auth_type: serviceAccount
        extra_metadata_labels:
          - container.id
          - k8s.volume.type
    extensions:
      zpages:
        endpoint: 0.0.0.0:55679
    # NEW CONTENT
    exporters:
      debug:
        verbosity: detailed
    service:
      pipelines:
        traces:
          exporters:
            - otlp_http
            - signalfx
            - debug

vi で変更を保存するには、esc キーを押してコマンドモードに入り、:wq! と入力してから enter/return キーを押します。

ファイルを保存したら、以下のコマンドで変更を適用できます。

bash
cd /home/splunk/workshop/tagging

helm upgrade splunk-otel-collector  \
--set="splunkObservability.realm=$REALM" \
--set="splunkObservability.accessToken=$ACCESS_TOKEN" \
--set="clusterName=$INSTANCE-k3s-cluster" \
--set="environment=tagging-workshop-$INSTANCE" \
splunk-otel-collector-chart/splunk-otel-collector \
-f otel/values.yaml

values.yaml ファイルを通じて Collector の設定を変更した場合は、Config Map を確認して、Collector に適用された実際の設定をレビューすることをお勧めします。

bash
kubectl describe cm splunk-otel-collector-otel-agent

期待どおり、debug exporter がトレースパイプラインに追加されていることが確認できます。

yaml
  traces:
    exporters:
    - otlp_http
    - signalfx
    - debug

アプリケーションをクラスターにデプロイしてトレースのキャプチャを開始したら、debug exporter の出力を確認します。

Last Modified ·