• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

Pixieデータインジェストによる自動テレメトリの管理

Pixie で自動テレメトリをインストールする際に、取り込むデータの種類と量のオプションがあります。インストール時に Helm を使用して、特定のネームスペースやポッドを除外したり、必要なノードのみのデータを収集したり、機密情報を含む列を再編集したりして、データを削減、制限、または除外します。

名前空間とポッドの除外

New Relic が取り込む Pixie データの量を減らしたい場合は、インストール時に Helm チャートに以下のパラメーターを追加することで、名前空間やポッドを除外することができます。なお、データは依然として Pixie に存在します。

  • excludeNamespacesRegex - observability データの New Relic への送信から除外したいネームスペースを特定するために使用します。空の場合、すべての名前空間のデータが New Relic に送信されます。例えば、以下のようになります。

    --set newrelic-pixie.excludeNamespacesRegex="examplenamespace-1|examplenamespace-2"
  • excludePodsRegex - Observability データを New Relic に送信する際に除外したい、すべてのネームスペースにわたるポッドを特定するために使用します。空の場合は、すべてのポッド (除外されたネームスペース内のポッドを除く) のデータが New Relic に送信されます。例えば、以下のようになります。

    --set newrelic-pixie.excludePodsRegex="examplepod-1|examplepod-2"

これらの 2 つの設定オプションは、Pixie から New Relic に送信される Metric および Span データをさらに制御するものです。

例えば、 newrelic-pixie の統合で、 px-sock-shopkafka-demo を除くすべての名前空間を除外するように構成したい場合、Helm install または Helm upgrade コマンドに以下の config パラメータを追加します。

--set newrelic-pixie.excludeNamespacesRegex="default|kube-node-lease|kube-public|kube-system|newrelic|newrelic-custom-metrics|olm|px-operator"

あるいは、除外されていない名前空間で実行されているポッドを除外したい場合は、HelmのインストールまたはHelmのアップグレードに別の設定パラメータを追加することができます。正確な名前をマッチさせる代わりに、例としてロードテストに関連するポッド名をマッチさせるためにシンプルな正規表現を使用することができます。

--set newrelic-pixie.excludePodsRegex="load-test.*|loadgen.*"

新規にインストールを行う場合は、New Relic のガイド付きインストールで提供される helm upgrade --install コマンドに excludeNamespacesRegexexcludePodsRegex を追加する必要があります。

kubectl apply -f https://raw.githubusercontent.com/pixie-labs/pixie/main/k8s/operator/crd/base/px.dev_viziers.yaml && \
kubectl apply -f https://raw.githubusercontent.com/pixie-labs/pixie/main/k8s/operator/helm/crds/olm_crd.yaml && \
helm repo add newrelic https://helm-charts.newrelic.com && helm repo update && \
kubectl create namespace newrelic ; helm upgrade --install newrelic-bundle newrelic/nri-bundle \
--set global.licenseKey=<NR LICENSE KEY> \
--set global.cluster=pixie-auto-telemetry \
--namespace=newrelic \
--set newrelic-infrastructure.privileged=true \
--set ksm.enabled=true \
--set prometheus.enabled=true \
--set kubeEvents.enabled=true \
--set logging.enabled=true \
--set newrelic-pixie.enabled=true \
--set newrelic-pixie.apiKey=<PIXIE API KEY> \
--set pixie-chart.enabled=true \
--set pixie-chart.deployKey=<PIXIE DEPLOY KEY> \
--set pixie-chart.clusterName=pixie-auto-telemetry \
--set newrelic-pixie.excludeNamespacesRegex="default|kube-node-lease|kube-public|kube-system|newrelic|newrelic-custom-metrics|olm|px-operator" \
--set newrelic-pixie.excludePodsRegex="load-test.*|loadgen.*"

既存のインストールをアップグレードするだけなら、この方法の方がはるかにシンプルです。

helm upgrade newrelic-bundle newrelic/nri-bundle --reuse-values -n newrelic --set newrelic-pixie.excludeNamespacesRegex="default|kube-node-lease|kube-public|kube-system|newrelic|newrelic-custom-metrics|olm|px-operator"

newrelic-pixieの使用可能なパラメータについてはこちら ヘルムチャート こちら.

Kubernetesの機能を使って選択したデータを収集する

Auto-telemetry with Pixie をデプロイすると、実際に Auto-telemetry with Pixie Helm チャートが有効になり、New Relic インフラストラクチャ バンドルに含まれる他の New Relic コンポーネントも有効になります。 Pixie Edge Module (PEM) ポッドは、Kubernetes DaemonSet としてクラスターにデプロイされます。つまり、デフォルトでは、ポッドがすべてのクラスターノードにスケジュールされ、そのノードのすべてのオブザーバビリティメトリクスの収集を担当します。

Kubernetesでは、nodeSelectors、taints/tolerations、node affinity/anti-affinityを使って、クラスタノードの特定のサブセットにポッドを割り当てることができます。これにより、すべてのノードではなく、選択したノードのメトリクスのみを収集することができます。これは、たとえば、Pixie を使用した自動テレメトリを 10 個のクラスター ノードのうち 5 個のノードにのみ展開したい場合に役立ちます。たとえば、指定した 5 つのノードが優先度の高いワークロードを担当している場合や、クラスタ内で Linux ノードと Windows ノードの両方を実行しており、Windows ノードは現在サポートされていないため、Linux ノードにのみデプロイしたい場合などです。ガイド付きインストールコマンドに追加オプションを指定することで、ノードのサブセットにポッドを割り当てることができるようになりました。このオプションでは、エスケープされたJSON文字列をAuto-telemetry with Pixieチャートに渡し、 nodeSelector を有効にして、 pixie=allowed というラベルを持つノード上のPEM DaemonSetのみをスケジューリングすることができます。

--set pixie-chart.patches.vizier-pem='\{\"spec\"\: \{\"template\"\: \{\"spec\"\: \{ \"nodeSelector\"\: \{\"pixie\"\: \"allowed\" \}\}\}\}\}'

Helmで一般的なvaluesファイルを使用している場合は、 nri-bundle values.yaml のようになります。

pixie-chart:
enabled: true
patches:
vizier-pem: '{"spec": {"template": {"spec": { "nodeSelector": {"pixie": "allowed" }}}}}'

この方法では、Kubernetesの標準的な仕様に従うだけで、多数の設定オプションが得られます。

機密情報を含むカラムを再編集

リクエストやレスポンスのボディやヘッダーなど、機密性の高いデータの列を再編集することができます。これを行うには、Pixie で Auto-telemetry を展開するときに、次の Helm コマンドを使用します。

--set pixie-chart.dataAccess=Restricted

dataAccessRestricted に設定しないと、デフォルトの状態であるフルデータアクセスが継続されてしまいます。

現在、 FullRestricted の2つの選択肢しかありません。

  • Full: デフォルトのオプションです。これは、すでにデプロイされているすべてのクラスターに暗示されます。この方法では、すべてのテーブルとカラムを自由に照会でき、すべてのデータを見ることができます。
  • Restricted: データを照会する際、レスポンス/リクエストボディやリクエストヘッダーなどの機密データを含む可能性のあるカラムは、 REDACTED の文字列で置き換えられます。 エラーコード など、その他の機密性のないカラムは通常通り表示されます。制限付きデータアクセスモードはスマートではないことに注意してください。行に実際に機密データが含まれているかどうかは検出しません。その代わりに、コンテンツのタイプを潜在的にセンシティブなものとして識別し、それを隠します。
Copyright © 2022 New Relic株式会社。