多くの組織でKubernetesがコンテナオーケストレーションの有力な選択肢となりつつある中で、アプリケーションパフォーマンスを把握するにはKubernetes環境の監視が欠かせません。Kubernetesによって開発者は分散マイクロサービスを使用してアプリケーションを開発できるようになりましたが、これによって従来のモノリシックな環境には存在しなかった新たな課題が浮上しました。マイクロサービス環境を理解するには、リクエストがどのようにスタックのレイヤー間やさまざまなサービスの間を行き交っているかを理解する必要があります。そのため最新の監視ツールには、相互に関連しているこれらのレイヤーを監視しながら、アプリケーションとインフラの動作を効率的に関連付けることによってトラブルシューティングを効率的に実行する機能が備わっています。as-a-serviceデリバリーモデルを提供するクラウドコンピューティングの時代にあっては、アプリケーションやインフラのパフォーマンス低下による影響がこれまで以上に大きくなります。このような厳しい競争の中では、パフォーマンスを最大限に発揮できるソリューションにだれもが魅力を感じることでしょう。
そしてそれこそが、SplunkとOpenTelemetryが真価を発揮する分野です。OpenTelemetryは、テレメトリデータ(メトリクス、ログ、トレース)のインストルメンテーション、生成、収集、エクスポートに使用されるツール、API、SDKをまとめたもので、アプリケーションのパフォーマンスと動作の分析を支援します。OpenTelemetryは、Splunk、Prometheus、Jaegerといったソリューションが活躍するオブザーバビリティバックエンドとは異なります。これらのバックエンドソリューションは、収集されたアプリケーションテレメトリのエクスポート先であり、エクスポートされたデータはその後分析のためにレビューされます。
この記事では、Splunk OpenTelemetry CollectorをインストールしてKubernetesメトリクスを収集し、Kubernetesワークロードのパフォーマンス分析を開始するための基本的な設定手順を説明します。
アプリケーションテレメトリの収集方法
アプリケーションのテレメトリデータを収集してKubernetesのワークロードを把握するには、OpenTelemetry Collectorをインストールする必要があります。OpenTelemetry Collectorは、テレメトリデータの受信、処理、エクスポートのための実装であり、ベンダーに依存しません。複数のエージェントやコレクターを実行、操作、管理する必要がなく、1つのコレクターでメトリクス、トレース、ログをすべて収集し、Kubernetesのワークロードとアプリケーションのパフォーマンスをあらゆる側面から把握することができます。Splunkは、OpenTelemetry Collectorの独自ディストリビューションを提供しています。これは、Fluentdによってログ収集を行い、オープンソースのOpenTelemetry Collectorコアをアップストリームとしています。これにより、Splunk Observabilityバックエンドを使用してKubernetesワークロードを分析する際に強力なエクスペリエンスが実現します。
Splunk OpenTelemetry Collector for Kubernetesのインストール方法
Splunk OpenTelemetry Connector for Kubernetesは、Splunk OpenTelemetry CollectorをKubernetesクラスターにインストールします。Splunk OpenTelemetry Connector for KubernetesはHelmチャートを使用してインストールされます。Helmチャートは、単一のパッケージに統合されたKubernetes YAMLマニフェストであり、これを使用するとKubernetesクラスターに複数のコンポーネントを簡単にインストールできます。パッケージ化されているため、クラスターへのHelmチャートのインストールは、単一のHelmインストールと同じように簡単に実行でき、コンテナ化アプリケーションを簡単にデプロイできます。Kubernetesを実行しているホストでは、デプロイの開始前にHelmをインストールするようにしてください。
Splunk OpenTelemetry Connector for Kubernetesをインストールするには、Splunk Observabilityコンソールにログインし、左上隅のメニューを開いて、[Data Setup]をクリックします。
[Connect Your Data]ウィンドウでKubernetesを選択し、[Add Connection]をクリックします。これによりデータセットアップウィザードが表示され、インストールに必要な操作手順が示されます。
最初のステップでは、クラスターに関する設定を接続ウィザードに入力します。
オプション項目は以下のとおりです。
- Access Token - Splunkとの統合を認証する際に使用するトークンです。アクセストークンの詳細についてはこちらを参照してください。
- Cluster Name - Splunk APMでKubernetesクラスターを識別する際に使用する名前を入力します。
- Provider - Kubernetesクラスターをホストしているクラウドプロバイダーを選択します(ローカルのオンプレミス環境の場合は[other]を使用)。
- Distribution - Kubernetesディストリビューションの種類を選択します(ローカルのオンプレミス環境の場合は[other]を使用)。
- Add Gateway - ゲートウェイとして動作するノードを1つ割り当てます。クラスターに25を超えるホストがある場合は、ゲートウェイを使用することでパフォーマンスが向上するため、これを有効にすることを推奨します。
2つ目のステップでは、データセットアップウィザードに、Splunk OpenTelemetry Connectorのインストールに必要な手順が示されます。これは、前のステップで入力したKubernetesクラスターの情報に基づいてHelmによって実行されます。インストールでは、まずHelmチャートリポジトリの追加と更新が実行されます。これが完了すると、HelmによってSplunk OpenTelemetry Connector for Kubernetesがインストールされます。各セクションのコードをコピーするだけでインストールは完了します。
インストールスクリプトが正常に実行されたことを確認するには、Kubernetesクラスター上で「kubectl get pods」を実行し、クラスター内の全Podを一覧表示します。出力結果には、コレクターエージェントとコレクターレシーバーの両方がクラスターにデプロイされたことが表示されます。
約90秒後、クラスターからSplunk Observability Cloudにメトリクスデータの入力が開始されます。これを確認するには、メニューの[Infrastructure]をクリックし、インフラダッシュボードに移動します。
ダッシュボードの[Containers]セクションにある[Kubernetes]をクリックします。
ダッシュボードにクラスターマップが現れ、環境内のノードとPodがすべて表示されます。
これで、OpenTelemetry CollectorがKubernetesクラスターのメトリクスをSplunk Observability Cloudにエクスポートできるようになりました。収集されたさまざまなメトリクスを使用することで、Kubernetesワークロードに影響を与えるようなインフラの潜在的な問題を簡単に見つけ出し、OpenTelemetryによってインストルメントされたアプリケーションからのデータを収集することができます。
まとめ
Kubernetesがもたらしたアプリケーションのデプロイ方法の変革によって、新たな課題が浮上しました。このため、Kubernetesワークロードの状態を把握しておくことがこれまでになく重要になりました。この記事によってKubernetesでの取り組みの大きな成果を導くことができれば幸いです。
Kubernetes環境でSplunk OpenTelemetry Collectorをぜひお試しください。無料のトライアル版では、Infrastructure Monitoring、APM、Real User Monitoring、Log Observerなど、スイートに含まれるすべての製品を試すことができます。インフラをリアルタイムで可視化すればマイクロサービスの問題を迅速に解決できます。すでにSplunk製品を使用していて、OpenTelemetryのセットアップについて詳しく知りたいお客様は、Splunkのマニュアルをご覧ください。
このブログはこちらの英語ブログの翻訳です。