OpenTelemetryの オブザーバビリティは、当社独自のKubernetes KubernetesUIKubernetesインストゥルメンテーションとすでに互換性のある一流の と組み合わせた、完全なオープンソース セットアップを提供します。当社のKubernetes UI はプロバイダーに依存しないように設計されており、ニーズに応じてOpenTelemetryまたはNew Relicを選択できます。
このドキュメントでは、 使用してKubernetes クラスタを監視するプロセスの概要を説明します。OpenTelemetryこれには、クラスター内でのnr-k8s-otel-collector
Helm チャートの導入と、最上級のオブザーバビリティを可能にするために必要なコレクターのデプロイメントが含まれます。
KubernetesコンポーネントをOpenTelemetry Collector に統合することで、メトリクス、イベント、ログをNew Relicに直接送信できるようになります。 これらのテレメトリー信号は、 Kubernetes Navigator 、 概要ダッシュボード、 Kubernetesイベント、またはKubernetes APM概要ページなどのすぐに使えるエクスペリエンスを自動的に強化します。
使い方?
nr-k8s-otel-collector
Helm チャートは、次の OpenTelemetry コレクターをデプロイします。
Deamonset Collector: 各ワーカー ノード上でデプロイし、ノード内の基礎となるホスト (
cAdvisor
、Kubelet
) からメトリクスを収集し、コンテナーからログを収集します。デプロイメント コレクター: コントロール プレーン ノード上のデプロイで、Kube 状態メトリクスとKubernetesクラスタ イベントのメトリクスを収集する責任があります。
要件
KubernetesテレメトリーデータをNew Relicに送信するには、 OpenTelemetryが必要です。 (NRDOT) New Relicの ディストリビューションは、OpenTelemetryKubernetes クラスターを自動的に監視するようにすでにセットアップされています。これは、 nr-k8s-otel-collector
Helm チャートを通じて必要なすべてのコンポーネントをデプロイすることによって行われます。
別のOpenTelemetryコレクターに切り替える場合は、必要な主要コンポーネントがすべて揃っていることを確認してください。
- 属性プロセッサ
- フィルタープロセッサ
- ファイルログ受信機
- GroupByAttrs プロセッサ
- ホストメトリックスレシーバー
- K8sAttributes プロセッサ
- K8sevents 受信機
- Kubelet レシーバー
- MetricsTransform プロセッサ
- プロメテウス受信機
- リソース検出プロセッサ
- リソースプロセッサ
- 変換プロセッサ
ヒント
Kubernetes OpenTelemetryオブザーバビリティの使用に興味がありますが、Helm チャートをインストールしたくないですか?
- コレクターに、以前に強調表示されたコンポーネントが含まれていることを確認します。
- このドキュメントに記載されているセットアップ手順に従って、コレクターを適切に構成してください。
OpenTelemetryを使用してKubernetesクラスターをインストールする
クラスターで OpenTelemetry を起動して実行するには、次の手順に従います。
Helm チャート値ファイルをダウンロードし、特定の要件に合わせて調整します。
クラスター名と必須です。
設定全体のリストを確認してください。
Helm チャートを値ファイルと一緒にインストールします。
bash$helm repo add newrelic https://helm-charts.newrelic.com$helm upgrade nr-k8s-otel-collector newrelic/nr-k8s-otel-collector -f your-custom-values.yaml -n newrelic --create-namespace --installポッドが正常に起動されたことを確認します。
bash$kubectl get pods -n newrelic --watch適切な書き込みを実行して、 New Relicがメトリクス、イベント、ログなどの必要なデータを取得していることを確認します。 詳細については、「書き込みビルダーの概要」を参照してください。
FROM Metric SELECT * WHERE k8s.cluster.name='<CLUSTER_NAME>'FROM InfrastructureEvent SELECT * WHERE k8s.cluster.name='<CLUSTER_NAME>'FROM Log SELECT * WHERE k8s.cluster.name='<CLUSTER_NAME>'GKE AutoPilot クラスタを使用している場合は、 OpenTelemetryの互換性と適切な機能を確保するために、
values.yaml
ファイルに次の設定を適用する必要があります。privileged: falsereceivers:filelog:enabled: falsedaemonset:containerSecurityContext:privileged: false
Kubernetesを使用して クラスタをアンインストールするOpenTelemetry
Kubernetesを使用して クラスタの監視を停止するには、次のコマンドを実行します。OpenTelemetry
$helm uninstall nr-k8s-otel-collector -n newrelic
データ取り込みを減らす
LowDataMode
オプションはデフォルトで有効になっており、 Kubernetes UI に必要なメトリックのみを取り込みます。
データ取り込みをさらに削減する必要がある場合は、デプロイされた各コンポーネントのnr-k8s-otel-collector
チャート値のスクレイプ間隔を増やします。
指標
データを見つけて使用する
データの検索方法の詳細については、次のドキュメントを参照してください。
Kubernetesクラスタを探索して、コントロール プレーンからノード、ポッドに至るまでのクラスタのステータスを確認します。
Kubernetes APM概要ページ。モニター アプリケーションとともにKubernetesインテグレーションにインサイトを提供します。
トラブルシューティング
問題が発生しているコレクター ポッドのログを確認します。 次のコマンドを実行します:
$kubectl logs <otel-pod-name> -n newrelic
nr-k8s-otel-collector
Helm チャートでverboseLog
をtrue
に設定することもできます。
よくあるエラー
GitHub リポジトリの「一般的なエラー」セクションを確認してください。
サポート
の OpenTelemetryオブザーバビリティに問題がある場合:Kubernetes
同様の問題がないかGitHub の問題セクションを確認するか、新しい問題を開くことを検討してください。
New Relic サポートに問い合わせて支援を受けてください。