DUICUO

Prometheus 以外にも、Kubernetes を監視するために利用できるオープンソース ツールが 6 つあります。

モニタリングは、Kubernetesアプリケーションのスムーズな動作を保証し、潜在的な問題を排除するのに役立ちます。Prometheusは、多くの企業がITインフラストラクチャの監視に使用している人気のオープンソース監視ツールです。しかし、他にも多くの監視ツールが利用可能です。この記事では、Kubernetesを監視するためのPrometheusに代わる6つのツールを紹介します。

プロメテウスとは何ですか?

Prometheusは、もともとSoundCloud上に構築されたオープンソースの監視システムです。多次元データの収集とクエリを監視するように設計されています。Prometheusサーバーは、ネットワークストレージや外部サービスに依存しない独立したユニットを備えています。そのため、Prometheusは大規模な追加インフラストラクチャやソフトウェアを必要としません。

Prometheusの主な利点は、Kubernetesとの緊密な統合、利用可能なエクスポーターとライブラリの豊富さ、高速なクエリ言語とAPIなどです。Prometheusの主な欠点は、簡素化された制約のあるデータモデル、プルベースモデルの粒度制限、暗号化の欠如などです。

以下は、Prometheus 以外の Kubernetes 監視方法を 6 つ紹介します。各ツールにはそれぞれ長所と短所がありますので、それぞれの主な機能を見ていきましょう。

1. グラファナ

Grafanaは、メトリクスの可視化、監視、分析のためのオープンソースプラットフォームです。Grafanaの主な特徴は時系列分析です。Grafanaは、分析されたデータを折れ線グラフ、ヒートマップ、棒グラフなど、様々なグラフィックオプションで表示します。監視対象のメトリクスが事前定義されたしきい値を超えると、アラートが送信されます。

主な機能は次のとおりです:

  • アラート - SMS、メール、Slack、PagerDutyなど、様々なチャネルでアラートを受信できます。他の通信チャネルをご希望の場合は、コードを使用して独自の通知を作成することもできます。
  • ダッシュボードテンプレート - テンプレートを使用すると、複数のユースケースで再利用できるダッシュボードを作成できます。例えば、本番サーバーとテストサーバーの両方で同じダッシュボードを使用できます。
  • プロビジョニング - スクリプトを使用して、Grafana のあらゆる操作を自動化できます。例えば、IP アドレス、サーバー、データソースをプリセットしたスクリプトを使用して、Grafana と新しい Kubernetes クラスターを自動的に起動できます。
  • コメント - エラー発生時のデータ相関に使用されます。グラフにテキストを追加して手動でコメントを作成することも、任意のデータソースからデータを取得することもできます。

2. cアドバイザー

cAdvisor は、実行中のコンテナのパフォーマンスとリソース使用状況に関する情報を収集、処理、エクスポートできます。cAdvisor は Kubelet バイナリに統合されているため、Kubernetes をネイティブにサポートしています。

主な機能は次のとおりです:

  • 自動検出 - 特定のノード内のすべてのコンテナを自動的に検出し、メモリ、CPU、ネットワーク、ファイル システムの使用状況などの統計を収集します。
  • ストレージ プラグイン - Elasticsearch や InfluxDB などのさまざまなストレージ プラグインに統計をエクスポートします。
  • コンピュータ全体の使用率 - コンピュータ上の「ルート」コンテナを分析して、コンピュータ全体の使用率を提供します。
  • Web-UI - コンピューター上のすべてのコンテナーに関するリアルタイム情報を表示するメトリックを Web-UI で表示できます。

3. フルエント

Fluentdは、データソースとバックエンドシステムの間に統合されたログレイヤーを提供することで、両者を分離します。このログレイヤーにより、生成された様々な種類のログを収集できます。

主な機能は次のとおりです:

  • JSON データ構造 - バッファリング、フィルタリング、さまざまなソースにわたるログの出力など、ログ データ処理のあらゆる側面を統一できます。
  • プラグ可能なアーキテクチャ - Fluentd の柔軟なプラグイン システムにより、複数のデータ ソースと出力を接続して機能を拡張できます。
  • システムリソース - インスタンスは30MB~40MBのメモリで動作し、1秒あたり13,000イベントを処理できます。さらにメモリが必要な場合は、Fluent Bit Lightweight Forwarderをご利用ください。
  • 信頼性 - ノード上でのデータ損失を防ぐため、ファイルベースおよびメモリベースのバッファリングをサポートします。さらに、Fluentdは高可用性と堅牢なフェイルオーバーをサポートするように構成できます。

4. イェーガー

Jaegerは、Kubernetesなどの分散サービス間のトラフィックを監視するためのオープンソースツールです。Jaegerは分散トレースを用いて、異なるマイクロサービス間のサービスリクエストのパスを追跡します。これにより、リクエストフローを視覚的に可視化できます。分散トレースは、サービスメッシュの一部として動作するマイクロサービスを管理および監視するための手法です。

主な機能は次のとおりです:

  • 高いスケーラビリティ - 単一障害点 (SPOF) がないように設計されており、ビジネス ニーズに合わせて拡張できます。
  • 複数のストレージオプション – オープンソースのNoSQLデータベースであるElasticsearchとCassandraをサポートしています。Jaegerは、テスト用のシンプルなインメモリストレージも提供しています。
  • クラウドネイティブなデプロイメント - 環境変数、コマンドラインオプション、構成ファイルなど、さまざまな構成方法をサポートします。Kubernetes テンプレート、Kubernetes オペレーター、Helm グラフが Kubernetes デプロイメントをサポートします。
  • モニタリング - Jaeger バックエンド コンポーネントは、デフォルトで Prometheus メトリックとログを公開します。

5. テレプレゼンス

Telepresenceは、単一のサービスをローカルで実行しながら、同時にそのサービスをリモートKubernetesクラスターに接続できるオープンソースツールです。Telepresenceは、Pod内に双方向ネットワークプロキシをデプロイし、TCP接続、環境変数、ボリュームなど、Kubernetes環境のデータを収集します。

主な機能は次のとおりです:

  • 互換性 - ネイティブ OS パッケージを使用して Linux と Mac OS の両方で動作します。
  • 開発ワークフロー - Kubernetes 上のマルチコンテナアプリケーション向けの迅速な開発ワークフローを提供します。ローカルの Docker コンテナをクラスターにプロキシしながら実行できます。
  • Kubernetes サービスをローカルでデバッグ - アドホッククラスターにバグが発生した場合、サービスをローカルで実行したい場合があります。Telepresence を使用すると、サービスをローカルでデバッグできます。
  • リモートKubernetesクラスターへの接続 - ローカルプロセスからリモートクラスターにアクセスできます。これにより、ラップトップ上のローカルツールを使用してクラスター内のプロセスと通信できます。

6. ザビックス

Zabbixは、幅広いネットワークパラメータとサーバーの健全性を監視するように設計されており、保存されたデータに基づいて、多数のデータ可視化機能とレポート機能を提供します。サーバー数が限られている小規模組織から、複数のサーバーを保有する大規模企業まで、ZabbixはITインフラストラクチャの監視に使用できます。

主な機能は次のとおりです:

  • 弾力性しきい値 - 弾力性の問題に関するしきい値(トリガーとも呼ばれます)を定義できます。これらのトリガーは、バックエンドデータベースの値に基づいています。
  • リアルタイムの視覚化 - 組み込みのプロット機能を使用して、監視対象の項目を即座に表示できます。
  • 自動検出 – Kubernetesなどの大規模環境の管理を自動化するための複数の方法を提供します。組織内のファイルシステムやネットワークインターフェースを自動的に追加・削除できます。
  • ネットワーク検出 - ネットワークを定期的にスキャンして外部サービスまたは Zabbix プロキシを検出し、検出時に事前定義されたアクションを実行できます。
  • 分散監視 - Zabbixエージェントを使用して分散インフラストラクチャを効率的に監視できます。エージェントを使用してローカルでデータを収集し、サーバーにレポートできます。

結論は

Prometheusは、Kubernetesワークロードを監視するためのオープンソースツールです。Kubernetesのデフォルトの監視ツールとしてネイティブに統合されており、アラートマネージャーも組み込まれています。ただし、Kubernetesエクスペリエンスを補完・向上させるために、Kubernetes環境向けの他の監視オプションの使用も検討する必要があります。