KubernetesでNetwork Explorerを設定する 🔗
注釈
Splunk Observability CloudはNetwork Explorerナビゲーターを完全にサポートしていますが、アップストリームのOpenTelemetry eBPF HelmチャートはSplunk公式サポートの対象外です。このチャートの機能アップデート、セキュリティ、バグフィックスは、いかなるSLAにも拘束されません。
Network Explorerを引き続き使用してSplunk Observability Cloudでデータを確認したい場合は、アップストリームのeBPF Helmチャートをゲートウェイとして実行されているOpenTelemetry Collectorに向けます。
You can install and configure Network Explorer as part of the Splunk Distribution of the OpenTelemetry Collector Helm chart. You also need the OpenTelemetry Collector eBPF Helm chart.
前提条件 🔗
To use Network Explorer with Kubernetes, you must meet the following requirements:
前提条件 |
説明 |
---|---|
環境 |
Linuxホスト上のKubernetesベースの環境では、Network Explorerがサポートされています。Helmベースの管理を使用します。 |
オペレーティングシステム |
|
Kubernetesバージョン |
Network ExplorerにはKubernetes 1.24以上が必要です。詳細については、Kubernetesドキュメントの Releases を参照してください。 |
Helm バージョン |
Network ExplorerにはHelmバージョン3.9以上が必要です。 |
注釈
Network ExplorerはGKE Autopilotクラスタと互換性がありません。
To use Network Explorer with OpenShift, you must meet the following requirements:
前提条件
説明
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.enabled
をfalse
に設定してください。クラウドコレクター
クラウドコレクターはさらに、収集したデータポイントを追加のメタデータでエンリッチします。
いいえ。KubernetesがAWSによってホストされているか、AWS内にインストールされていて、追加のメタデータを取得したい場合は、クラウドコレクターのインスタンスを少なくとも1つインストールして設定します。
いいえ。クラウドコレクターをオンにしたい場合は、
cloudCollector.enabled
をtrue
に設定してください。
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 をインストールする場合、これらの要件を個別に設定する必要はありません。詳細な手順については Install the Collector for Kubernetes using Helm を参照してください。
次の表に、このインストールに必要なパラメータを示します:
パラメータ
説明
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チャートをインストールする 🔗
After you’ve deployed the Splunk Distribution of the OpenTelemetry Collector using the Helm chart, add the OpenTelemetry eBPF Helm chart by running these commands:
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)sudo yum install -y kernel-devel-$(uname -r)
例:Kubernetes用Network Explorerをインストールする 🔗
この例では、Reducer、カーネルコレクター、KubernetesコレクターがOpenTelemetry Collector eBPF Helmチャートと一緒に設定されています。クラウドコレクターはオンになっていません。
Splunk OpenTelemetry Collector Helm チャートをデプロイして更新します:
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart helm repo update
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
helm --namespace=<NAMESPACE> install splunk-otel-collector \ --set="splunkObservability.realm=<REALM>" \ --set="splunkObservability.accessToken=<ACCESS_TOKEN>" \ --set="clusterName=<CLUSTER_NAME>" \ --set="splunkObservability.logsEnabled=true" \ --set="splunkObservability.infrastructureMonitoringEventsEnabled=true" \ --set="agent.enabled=true" \ --set="clusterReceiver.enabled=true" \ --set="gateway.replicaCount=1" \ --set="environment=<APM_ENV>" \ --set="gateway.resources.limits.cpu=500m" \ --set="gateway.resources.limits.memory=1Gi" \ splunk-otel-collector-chart/splunk-otel-collector
OpenTelemetry Collector eBPF Helm チャートをデプロイして更新する:
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts helm repo update
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 設定については、Install the Collector for Kubernetes using Helm を参照してください。
例:OpenShift用Network Explorer をインストールする 🔗
この例では、OpenShift クラスタの各ノードは、デフォルトで SELinux が有効になっている Red Hat Enterprise Linux CoreOS で実行されます。Network Explorer カーネルコレクターをインストールするには、Super-Privileged Container (SPC) を SELinux 用に設定する必要があります。以下の手順に従って Network Explorer をインストールしてください:
以下のスクリプトを実行して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"
以下のコマンドを実行して、Helmチャートをデプロイします。
helm repo add splunk-otel-collector-chart https://signalfx.github.io/splunk-otel-collector-chart
以下のコマンドを実行し、Helmチャートを更新します。
helm repo update
以下のコマンドを実行して、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
OpenTelemetry Collector eBPF Helm チャートをデプロイして更新する:
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts helm repo update
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
カーネルコレクターポッドが機能するには、特権アクセスが必要です。以下のコマンドを実行して、カーネルコレクターポッドの特権アクセスを設定します。
oc adm policy add-scc-to-user privileged -z my-opentelemetry-ebpf -n <NAMESPACE>
以下のコマンドを実行して、OpenShift クラスタのデフォルトのセキュリティコンテキスト制約 (SCC) を更新し、特権的な SCC へのアクセスを全員に許可することなく、イメージが事前に割り当てられたユーザー識別子として強制的に実行されないようにします。
oc adm policy add-scc-to-user anyuid -z my-opentelemetry-ebpf -n <NAMESPACE>
Change the resource footprint of Splunk Distribution of the OpenTelemetry Collector 🔗
Each Kubernetes node has a Splunk Distribution of the OpenTelemetry Collector, so you might want to adjust your resources depending on the number of Kubernetes nodes you have.
You can update the Splunk Distribution of the OpenTelemetry Collector values file , or specify different values during installation.
これらはデフォルトのリソース設定です:
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: 1Gihelm --namespace=<NAMESPACE> install my-splunk-otel-collector --set="splunkObservability.realm=<REALM>,splunkObservability.accessToken=<ACCESS_TOKEN>,clusterName=<CLUSTER_NAME>,agent.enabled=false,clusterReceiver.enabled=false,gateway.replicaCount=1,gateway.resources.limits.cpu=500m,gateway.resources.limits.memory=1Gi" splunk-otel-collector-chart/splunk-otel-collector
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 チャートに移行するには、以下の手順に従ってください:
Splunk OpenTelemetry Collector Helm チャートがデータ転送(ゲートウェイ)モードでインストールされていることを確認します:
gateway: enabled: true
Splunk OpenTelemetry Collector Helm チャートの
networkExplorer
設定を無効にします:networkExplorer: enabled: false
Splunk OpenTelemetry Collector ゲートウェイサービスの名前を取得します:
kubectl get svc | grep splunk-otel-collector-gateway
アップストリームの 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 の値ファイル を参照してください。
次のステップ 🔗
After you’ve set up Network Explorer, you can start monitoring network telemetry metrics coming into your Splunk Infrastructure Monitoring platform using 1 or more of the following options:
内蔵のNetwork Explorer ナビゲーター。Network Explorer ナビゲーターを表示するには、以下の手順に従います:
詳細は Splunk Infrastructure Monitoring でナビゲーターを使用する を参照してください。
サービスマップ。詳細は ネットワークマップによるサービスの依存関係の監視 を参照してください。
アラートとディテクター。詳細は Splunk Observability Cloudのアラートとディテクターの概要 を参照してください。
Network Explorer で収集できるメトリクスの詳細については、ネットワークテレメトリメトリクス を参照してください。