Docs » Splunk Infrastructure Monitoring の Network Explorer » KubernetesでNetwork Explorerを設定する

KubernetesでNetwork Explorerを設定する 🔗

注釈

Splunk Observability CloudはNetwork Explorerナビゲーターを完全にサポートしていますが、アップストリームのOpenTelemetry eBPF HelmチャートはSplunk公式サポートの対象外です。このチャートの機能アップデート、セキュリティ、バグフィックスは、いかなるSLAにも拘束されません。

Network Explorerを引き続き使用してSplunk Observability Cloudでデータを確認したい場合は、アップストリームのeBPF Helmチャートをゲートウェイとして実行されているOpenTelemetry Collectorに向けます。

Splunk Distribution of OpenTelemetry Collector Helmチャートの一部としてNetwork Explorerをインストールして設定できます。また、OpenTelemetry Collector eBPF Helmチャートも必要です。

前提条件 🔗

KubernetesでNetwork Explorerを使用するには、以下の要件を満たす必要があります。

前提条件

説明

環境

Linuxホスト上のKubernetesベースの環境では、Network Explorerがサポートされています。Helmベースの管理を使用します。

オペレーティングシステム

  • Linuxカーネルバージョン3.10~3.19、4.0~4.20、および5.0~5.19(明示的に許可されていない場合を除く)。バージョン4.15.0、4.19.57、および5.1.16はサポートされていません。

  • Red Hat Linux バージョン 7.6 以上

  • Ubuntuバージョン16.04以上

  • Debian Stretch+

  • Amazon Linux 2

  • Google COS

Kubernetesバージョン

Network ExplorerにはKubernetes 1.24以上が必要です。詳細については、Kubernetesドキュメントの Releases を参照してください。

Helm バージョン

Network ExplorerにはHelmバージョン3.9以上が必要です。

注釈

Network ExplorerはGKE Autopilotクラスタと互換性がありません。

OpenShiftでNetwork Explorerを使用するには、以下の要件を満たす必要があります。

前提条件

説明

OpenShiftバージョン

オンプレミスのOpenShiftクラスタ、またはOpenShift Rosaクラスタのバージョン4.12.18または4.12.13

管理者のロール

OpenShift に Network Explorer をインストールするには、Splunk Observability Cloud の管理者である必要があります。

Network Explorer のコンポーネント 🔗

ネットワークエクスプローラーのHelmチャートは、以下のコンポーネントで構成されています:

コンポーネント

説明

必須ですか?

デフォルトでオン?

レデューサー

レデューサーは、コレクターによって収集されたデータポイントを受け取り、実際のメトリック時系列(MTS)に削減します。レデューサーはまた、OTLP gRPC ポートで Splunk Distribution of OpenTelemetry Collector に接続します。

レデューサーのインスタンスを少なくとも1つインストールして設定します。

あり

カーネルコレクター

Extended Berkeley Packet Filter(eBPF)エージェントは、カーネルからデータポイントを収集する役割を担います。

はい。各ホストにカーネルコレクターをインストールして設定します。

あり

Kubernetesコレクター

Kubernetesコレクターは、収集したデータポイントをさらにメタデータでエンリッチします。

いいえ。追加のメタデータを取得したい場合は、各Kubernetesクラスタに少なくとも1つのKubernetesコレクターのインスタンスをインストールして設定します。

Kubernetesコレクターをオフにしたい場合は、k8sCollector.enabledfalse に設定してください。

クラウドコレクター

クラウドコレクターはさらに、収集したデータポイントを追加のメタデータでエンリッチします。

いいえ。KubernetesがAWSによってホストされているか、AWS内にインストールされていて、追加のメタデータを取得したい場合は、クラウドコレクターのインスタンスを少なくとも1つインストールして設定します。

いいえ。クラウドコレクターをオンにしたい場合は、cloudCollector.enabledtrue に設定してください。

Network Explorer をインストールする 🔗

ネットワークデータを収集して Network Explorer に送信するには、2つの別々の Helm チャート、Splunk OpenTelemetry Collector Helm チャートと OpenTelemetry Collector eBPF Helm チャートをインストールする必要があります。

Collector Helm チャートをインストールする 🔗

Splunk Distribution of OpenTelemetry Collector を Network Explorer で動作させるには、データ転送 (ゲートウェイ) モードと以下の設定でインストールする必要があります:

  • ーOTLP gRPCメトリクスレシーバーをーゲートウェイにーでーOTLP gRPCレシーバー設定することによりーOTLP gRPCレシーバーをーオンします。

  • 有効なレルムとアクセストークンを使用してゲートウェイ上のSignalFxエクスポーターを設定し、SignalFxエクスポートをオンにします。

OTLP gRPC メトリクスレシーバーと SignalFx エクスポーターは、Splunk Distribution of OpenTelemetry Collector の Helm チャートですでに設定されているため、Helm チャートメソッドを使用して Splunk Distribution of OpenTelemetry Collector をインストールする場合、これらの要件を個別に設定する必要はありません。詳細な手順については Helmを使用してCollector for Kubernetesをインストールする を参照してください。

次の表に、このインストールに必要なパラメータを示します:

パラメータ

説明

gateway

Network Explorerが必要とするデータ転送(ゲートウェイ)モードを有効にします。

namespace

インストールするKubernetes 名前空間。この値は、Network Explorerの名前空間の値と一致する必要があります。

splunkObservability.realm

テレメトリデータを送信する Splunk レルム。例えば、us0.

splunkObservability.accessToken

組織のアクセストークン。インジェストスコープを持つアクセストークンで十分です。詳細については、Splunk Observability Cloudを使用した組織のアクセストークンの作成および管理 を参照してください。

clusterName

Kubernetesクラスタを識別する任意の値。

agent.enabled

  • 既存の Splunk Distribution of OpenTelemetry Collector 設定に Network Explorer を追加する場合は、agent.enabled のままにしてください。

  • Splunk Distribution of OpenTelemetry Collector の新しいインスタンスをインストールしていて、Network Explorer からのテレメトリのみを収集したい場合は、これを false に設定して、各 Kubernetes ノードで Splunk Distribution of OpenTelemetry Collector をホストモニタリング (エージェント) モードでインストールすることをオフにします。

  • Splunk Distribution of OpenTelemetry Collector の新しいインスタンスをインストールしていて、Network Explorer と個々の OpenTelemetry Collector エージェントの両方からテレメトリを収集したい場合は、これを true に設定します。

clusterReceiver.enabled

  • 既存の Splunk Distribution of OpenTelemetry Collector 設定に Network Explorer を追加する場合は、clusterReceiver.enabled のままにしてください。

  • Splunk Distribution of OpenTelemetry Collector の新しいインスタンスをインストールしていて、Network Explorer からのテレメトリのみを収集したい場合は、Network Explorer は splunk-otel-collector-k8s-cluster-receiver を使用しないので、これを false に設定します。

  • Splunk Distribution of OpenTelemetry Collector の新しいインスタンスをインストールしていて、Network Explorer テレメトリに加えて Kubernetes API サーバーからクラスタレベルのメトリクスを収集したい場合は、これを true に設定します。

gateway.replicaCount

Network Explorerは複数のゲートウェイレプリカへの通信をサポートしていないため、これを 1 に設定します。

注釈

Helm チャートのバージョン 0.88 以降、Splunk OpenTelemetry Collector Helm チャートの networkExplorer 設定は非推奨です。 networkExplorer 設定から eBPF Helm チャートへの移行方法については、networkExplorerからeBPF Helmチャートへの移行 を参照してください。

eBPF Helmチャートをインストールする 🔗

Helmチャートを使用してSplunk Distribution of OpenTelemetry Collectorをデプロイした後、以下のコマンドを実行してOpenTelemetry eBPF Helmチャートを追加します:

helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm repo update open-telemetry
helm install my-opentelemetry-ebpf -f ./otel-ebpf-values.yaml open-telemetry/opentelemetry-ebpf

otel-ebpf-values.yaml ファイルの endpoint.address オプションに Splunk OpenTelemetry Collector ゲートウェイのサービス名が設定されていることを確認してください。サービス名は以下のコマンドを実行することで取得できます:

kubectl get svc | grep splunk-otel-collector

詳細については、OpenTelemetry Collector eBPF values file を参照してください。

OpenTelemetry Collector eBPF Helm チャートは、各Kubernetesノードでカーネルを実行するためにカーネルヘッダを必要とします。カーネルコレクターは、ノードがインターネットにアクセスできない場合を除き、自動的にヘッダーをインストールします。

必要なパッケージを手動でインストールする必要がある場合は、以下のコマンドを実行します:

sudo apt-get install --yes linux-headers-$(uname -r)

例:Kubernetes用Network Explorerをインストールする 🔗

この例では、Reducer、カーネルコレクター、KubernetesコレクターがOpenTelemetry Collector eBPF Helmチャートと一緒に設定されています。クラウドコレクターはオンになっていません。

  1. Splunk OpenTelemetry Collector Helm チャートをデプロイして更新します:

    helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
    helm repo update
    
  2. Splunk Distribution of OpenTelemetry Collector をインストールします。パラメータを適切な値に置き換えます:

    helm --namespace=<NAMESPACE> install my-splunk-otel-collector \
    --set="splunkObservability.realm=<REALM>" \
    --set="splunkObservability.accessToken=<ACCESS_TOKEN>" \
    --set="clusterName=<CLUSTER_NAME>" \
    --set="agent.enabled=false" \
    --set="clusterReceiver.enabled=false" \
    --set="gateway.replicaCount=1" \
    splunk-otel-collector-chart/splunk-otel-collector
    
  3. OpenTelemetry Collector eBPF Helm チャートをデプロイして更新する:

    helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
    helm repo update
    
  4. Splunk Distribution of OpenTelemetry Collector をインストールします。パラメータを適切な値に置き換えます:

    helm --namespace=<NAMESPACE> install my-opentelemetry-ebpf \
        --set="endpoint.address=<Gateway Service Name>.<Gateway Service Namespace>.svc.cluster.local" \
        open-telemetry/opentelemetry-ebpf
    

その他の Splunk Distribution of OpenTelemetry Collector 設定については、Helmを使用してCollector for Kubernetesをインストールする を参照してください。

例:OpenShift用Network Explorer をインストールする 🔗

この例では、OpenShift クラスタの各ノードは、デフォルトで SELinux が有効になっている Red Hat Enterprise Linux CoreOS で実行されます。Network Explorer カーネルコレクターをインストールするには、Super-Privileged Container (SPC) を SELinux 用に設定する必要があります。以下の手順に従って Network Explorer をインストールしてください:

  1. 以下のスクリプトを実行してSELinux SPCポリシーを変更し、spc_t ドメインプロセスへの追加アクセスを許可します:

    tmp_dir=$(mktemp -d -t EBPF_NET-XXXXX)
    
    cat > "${tmp_dir}/spc_bpf_allow.te" <<END
    module spc_bpf_allow 1.0;
    require {
        type spc_t;
        class bpf {map_create map_read map_write prog_load prog_run};
    }
    #============= spc_t ==============
    
    allow spc_t self:bpf { map_create map_read map_write prog_load prog_run };
    END
    checkmodule -M -m -o "${tmp_dir}/spc_bpf_allow.mod" "${tmp_dir}/spc_bpf_allow.te"
    semodule_package -o "${tmp_dir}/spc_bpf_allow.pp" -m "${tmp_dir}/spc_bpf_allow.mod"
    semodule -i "${tmp_dir}/spc_bpf_allow.pp"
    
  2. 以下のコマンドを実行して、Helmチャートをデプロイします。

    helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
    
  3. 以下のコマンドを実行し、Helmチャートを更新します。

    helm repo update
    
  4. 以下のコマンドを実行して、Splunk Distribution of OpenTelemetry Collector をインストールします。パラメータを適切な値に置き換えてください。

    helm --namespace=<NAMESPACE> install my-splunk-otel-collector \
    --set="splunkObservability.realm=<REALM>" \
    --set="splunkObservability.accessToken=<ACCESS_TOKEN>" \
    --set="distribution=openshift" \
    --set="clusterName=<CLUSTER_NAME>" \
    --set="agent.enabled=true" \
    --set="clusterReceiver.enabled=true" \
    --set="gateway.replicaCount=1" \
    splunk-otel-collector-chart/splunk-otel-collector
    
  5. OpenTelemetry Collector eBPF Helm チャートをデプロイして更新する:

    helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
    helm repo update
    
  6. Splunk Distribution of OpenTelemetry Collector をインストールします。パラメータを適切な値に置き換えます:

    helm --namespace=<NAMESPACE> install my-opentelemetry-ebpf \
        --set="endpoint.address=<address_of_gateway>" \
        --set="podSecurityPolicy.enabled=false" \
        --set="rbac.create=true" \
        --set="k8sCollector.serviceAccount.create=true" \
        --set="kernelCollector.serviceAccount.create=true" \
        --set="kernelCollector.image.tag=4.18.0-372.51.1.el8_6.x86_64" \
        --set="kernelCollector.image.name=kernel-collector-openshift" \
        open-telemetry/opentelemetry-ebpf
    
  7. カーネルコレクターポッドが機能するには、特権アクセスが必要です。以下のコマンドを実行して、カーネルコレクターポッドの特権アクセスを設定します。

    oc adm policy add-scc-to-user privileged -z my-opentelemetry-ebpf -n <NAMESPACE>
    
  8. 以下のコマンドを実行して、OpenShift クラスタのデフォルトのセキュリティコンテキスト制約 (SCC) を更新し、特権的な SCC へのアクセスを全員に許可することなく、イメージが事前に割り当てられたユーザー識別子として強制的に実行されないようにします。

    oc adm policy add-scc-to-user anyuid -z my-opentelemetry-ebpf -n <NAMESPACE>
    

Splunk Distribution of OpenTelemetry Collectorのリソースフットプリントを変更する 🔗

各KubernetesノードにはSplunk Distribution of OpenTelemetry Collectorがあるので、Kubernetesノードの数に応じてリソースを調整するとよいでしょう。

Splunk Distribution of OpenTelemetry Collectorの値ファイル を更新するか、インストール時に異なる値を指定することができます。

これらはデフォルトのリソース設定です:

resources:
   limits:
      cpu: 4
      memory: 8Gi

以下の概算を参考に、必要なリソースを決定してください。

近似値

リソースニーズ

最大500ノード/5,000データポイント/秒

CPU:500m、メモリ:1Gi

最大1,000ノード/10,000データポイント/秒

CPU:1、メモリ:2Gi1

最大2,000ノード/20,000データポイント/秒

CPU:2、メモリ4Gi

🔗

以下の例では、CPUは 500m に設定され、メモリは 1 Gi に設定されています。

resources:
  limits:
    cpu: 500m
    memory: 1Gi

Network Explorer のインストールサイズを変更する 🔗

Kubernetesノードの数によって、必要なリソースが異なる場合があります。インストールに以下の調整を行うことができます。

レデューサーのリソースフットプリントを変更する 🔗

レデューサーは、Kubernetesクラスタごとに単一のポッドです。クラスタに多数のポッド、ノード、サービスが含まれている場合は、割り当てられるリソースを増やすことができます。

レデューサーはテレメトリを複数のステージで処理し、各ステージは1つ以上のシャードに分割されます。各ステージのシャードの数を増やすと、リデューサーの容量が拡大します。

OpenTelemetry Collector eBPF の値ファイル の以下のパラメータを変更して、レデューサーステージあたりのシャードの数を増減します。1~32 シャードの間で設定できます。

デフォルト設定は、1つのレデューサーステージにつき1つのシャードです。

reducer:
  ingestShards: 1
  matchingShards: 1
  aggregationShards: 1

次の例では、レデューサーステージごとに4つのシャードを使用しています:

reducer:
  ingestShards: 4
  matchingShards: 4
  aggregationShards: 4

レデューサーがノードに要求するCPUとメモリの使用量を見積もるには、以下の簡単な計算式を使用できます:

Memory in Mebibytes (Mi) = 4 * Number of nodes in your cluster + 60
Fractional CPU in milliCPU (m) = Number of nodes in your cluster + 30

これでおおよその予想使用量がわかります。最終的な数字に1.5または2をかけて、使用量の増加や急増に対する余裕を持たせます。

Network Explorerが生成するネットワークテレメトリのカスタマイズ 🔗

ネットワークテレメトリメトリクスの収集数を減らしたい、または増やしたい場合は、OpenTelemetry Collector eBPF の値ファイル を更新してください。

以下のセクションでは、さまざまなメトリクスのオンとオフを切り替える方法を説明します。

デフォルトでオフになっているメトリクスを含む、すべてのメトリクスをオンにする 🔗

reducer:
  disableMetrics:
    - none

メトリクスカテゴリ全体をオフにする 🔗

reducer:
  disableMetrics:
    - tcp.all
    - udp.all
    - dns.all
    - http.all

個々のTCPメトリクスをオフにする 🔗

reducer:
  disableMetrics:
    - tcp.bytes
    - tcp.rtt.num_measurements
    - tcp.active
    - tcp.rtt.average
    - tcp.packets
    - tcp.retrans
    - tcp.syn_timeouts
    - tcp.new_sockets
    - tcp.resets

個々のUDPメトリクスをオフにする 🔗

reducer:
  disableMetrics:
    - udp.bytes
    - udp.packets
    - udp.active
    - udp.drops

個々のDNSメトリクスをオフにする 🔗

reducer:
  disableMetrics:
    - dns.client.duration.average
    - dns.server.duration.average
    - dns.active_sockets
    - dns.responses
    - dns.timeouts

個々のHTTPメトリクスをオフにする 🔗

reducer:
  disableMetrics:
    - http.client.duration.average
    - http.server.duration.average
    - http.active_sockets
    - http.status_code

内部メトリクスをオフにする 🔗

reducer:
  disableMetrics:
    - ebpf_net.bpf_log
    - ebpf_net.otlp_grpc.bytes_sent
    - ebpf_net.otlp_grpc.failed_requests
    - ebpf_net.otlp_grpc.metrics_sent
    - ebpf_net.otlp_grpc.requests_sent
    - ebpf_net.otlp_grpc.successful_requests
    - ebpf_net.otlp_grpc.unknown_response_tags

注釈

このリストは、デフォルトで有効になっている内部メトリクスのセットを表します。

全メトリクスカテゴリをオンにする 🔗

reducer:
  enableMetrics:
    - tcp.all
    - udp.all
    - dns.all
    - http.all
    - ebpf_net.all

個々のTCPメトリクスをオンにする 🔗

reducer:
  enableMetrics:
    - tcp.bytes
    - tcp.rtt.num_measurements
    - tcp.active
    - tcp.rtt.average
    - tcp.packets
    - tcp.retrans
    - tcp.syn_timeouts
    - tcp.new_sockets
    - tcp.resets

個々のUDPメトリクスをオンにする 🔗

reducer:
  enableMetrics:
    - udp.bytes
    - udp.packets
    - udp.active
    - udp.drops

個別のDNSメトリクスをオンにする 🔗

reducer:
  enableMetrics:
    - dns.client.duration.average
    - dns.server.duration.average
    - dns.active_sockets
    - dns.responses
    - dns.timeouts

個々のHTTPメトリクスをオンにする 🔗

reducer:
  enableMetrics:
    - http.client.duration.average
    - http.server.duration.average
    - http.active_sockets
    - http.status_code

内部メトリクスをオンにする 🔗

reducer:
  enableMetrics:
    - ebpf_net.span_utilization_fraction
    - ebpf_net.pipeline_metric_bytes_discarded
    - ebpf_net.codetiming_min_ns
    - ebpf_net.entrypoint_info
    - ebpf_net.otlp_grpc.requests_sent

注釈

このリストには、内部メトリクスのすべてが含まれているわけではありません。

🔗

以下の例では、特定の TCP および UDP メトリクスとともに、すべての HTTP メトリクスが非アクティブになります。すべての DNS メトリクスが収集されます。

reducer:
  disableMetrics:
    - http.all
    - tcp.syn_timeouts
    - tcp.new_sockets
    - tcp.resets
    - udp.bytes
    - udp.packets

次の例では、すべての HTTP メトリクスと特定の内部メトリクスがオンになっています。

注釈

disableMetrics フラグは enableMetrics フラグより先に評価されます。

reducer:
  enableMetrics:
    - http.all
    - ebpf_net.codetiming_min_ns
    - ebpf_net.entrypoint_info

networkExplorerからeBPF Helmチャートへの移行 🔗

Helm チャートのバージョン 0.88 以降、Splunk OpenTelemetry Collector Helm チャートの networkExplorer 設定は非推奨です。 networkExplorer 設定は、Network Explorer でサポートされている OpenTelemetry Collector eBPF Helm チャートと完全に互換性があります。

OpenTelemetry Collector eBPF Helm チャートに移行するには、以下の手順に従ってください:

  1. Splunk OpenTelemetry Collector Helm チャートがデータ転送(ゲートウェイ)モードでインストールされていることを確認します:

    gateway:
      enabled: true
    
  2. Splunk OpenTelemetry Collector Helm チャートの networkExplorer 設定を無効にします:

    networkExplorer:
      enabled: false
    
  3. Splunk OpenTelemetry Collector ゲートウェイサービスの名前を取得します:

    kubectl get svc | grep splunk-otel-collector-gateway
    
  4. アップストリームの OpenTelemetry Collector eBPF Helm チャートをインストールし、Splunk OpenTelemetry Collector ゲートウェイサービスを指すようにします:

    helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
    helm repo update open-telemetry
    helm install my-opentelemetry-ebpf -f ./otel-ebpf-values.yaml open-telemetry/opentelemetry-ebpf
    

otel-ebpf-values.yaml ファイルには、endpoint.address オプションを、3 番目のステップで取得した Splunk OpenTelemetry Collector ゲートウェイサービス名に設定する必要があります。

endpoint:
  address: <my-splunk-otel-collector-gateway>

さらに、networkExplorer セクションにカスタム設定がある場合は、otel-ebpf-values.yaml ファイルに移動する必要があります。詳しくは OpenTelemetry Collector eBPF の値ファイル を参照してください。

次のステップ 🔗

Network Explorerをセットアップした後、以下の1つ以上のオプションを使用して、Splunk Infrastructure Monitoringプラットフォームに入力されるネットワークテレメトリメトリクスの監視を開始できます:

  • 内蔵のNetwork Explorer ナビゲーター。Network Explorer ナビゲーターを表示するには、以下の手順に従います:

    1. Splunk Observability Cloud ホームページから、左側のナビゲーターで Infrastructure を選択します。

    2. Network Explorer を選択します。

      インフラストラクチャランディングページのNetwork Explorer ナビゲータータイル。
    3. 表示したいNetwork Explorer ナビゲーターのカードを選択します。

詳細は Splunk Infrastructure Monitoring でナビゲーターを使用する を参照してください。

Network Explorer で収集できるメトリクスの詳細については、ネットワークテレメトリメトリクス を参照してください。

このページは 2025年02月11日 に最終更新されました。