可観測性とは、システムの外部推論結果を分析し、内部状態を測定する機能です。 Kubernetes の可観測性機能には、監視とロギングが含まれます。 監視により、開発者はシステムの動作を追跡できます。 ロギングは、診断とトラブルシューティングを容易にします。 このトピックでは、Container Service for Kubernetes(ACK)の可観測性と各レイヤーの可観測性について説明します。 これにより、可観測性について包括的に理解することができます。
ACK の可観測性
ACK 上に構築された可観測性システムのアーキテクチャは、4 つのレイヤーで構成されています。 下から上の 4 つのレイヤーは、インフラストラクチャ、コンテナパフォーマンス、アプリケーションパフォーマンス、ビジネスです。

次のセクションでは、各レイヤーの可観測性について説明します。
インフラストラクチャの可観測性
ACK の基盤となるリソースの可観測性。 これにより、ポッドとノードで構成されるリソースプールのトレースを特定し、トポロジ関係を可視化できます。 たとえば、ホストと基本的なネットワークプラグインのパフォーマンスを監視できます。
ソリューション | 説明 | シナリオ | 参照 |
可視化されたアーキテクチャディスカバリ | ACK クラスタ内のビジネスは、ノードで構成されるリソースプールで実行されます。 ポッドのトレースとトポロジ関係を特定することは困難です。 課題は、Kubernetes ワークロードの状態を視覚的に監視する方法と、Kubernetes クラスタのトラフィックスループットをより適切に視覚化する方法です。 ACK で使用される Kubernetes 監視は、拡張バークレーパケットフィルタ(eBPF)と Managed Service for Prometheus を統合して、メトリック収集、アプリケーショントレース、ログ分析、イベント監視をサポートしています。 Kubernetes 監視を使用すると、ACK クラスタをエンドツーエンドで監視できます。 ACK クラスタにネットワーク監視と可視化されたアーキテクチャ認識機能を提供します。 Kubernetes 監視は、開発者と O&M エンジニアに侵入のない可観測性ソリューションを提供します。 | すべてのシナリオがサポートされています。
| 詳細については、「クラスタートポロジーの監視」をご参照ください。 |
カーネルレベルのコンテナ監視 | ACK は、System Observer Monitoring(SysOM)に基づいて、オペレーティングシステム カーネルレベルのコンテナ監視を提供します。 この機能は、コンテナ化されたアプリケーションのデプロイと移行、およびコンテナの監視に役立ちます。 | すべてのシナリオがサポートされています。 | 詳細については、「SysOM に基づくカーネルレベルのコンテナ監視」をご参照ください。 |
インフラストラクチャメトリックの収集 | リソース監視は、ACK の基盤となるリソースを監視するために最も一般的に使用される方法です。 CPU、メモリ、ネットワークリソースの使用状況を監視できます。 | すべてのシナリオがサポートされています。 | 詳細については、「[廃止] 基本的なリソース監視」をご参照ください。 |
コンテナパフォーマンスの可観測性
ACK 上に構築された可観測性システムにおけるコンテナ抽象化の可観測性。 コンテナパフォーマンスの可観測性により、クラスタ、コンテナ、およびコンテナコンポーネントのパフォーマンスを監視し、クラスタイベントを検出できます。
クラスタとコンテナのパフォーマンスメトリックを収集する
ソリューション | 説明 | シナリオ | 参照 |
CloudMonitor と ACK の統合 | ACK は、クラスタとコンテナのパフォーマンスメトリックを監視し、ACK コンソールに統合された視覚化を提供します。 | 特定のシナリオのみがサポートされています。 カスタムコンテナパフォーマンスメトリックと可観測性を提供します。 | 詳細については、「[廃止] 基本的なリソース監視」をご参照ください。 |
Managed Service for Prometheus | Prometheus は、クラウドネイティブメトリックに基づいてコンテナを監視するために使用されるオープンソースサービスです。 Managed Service for Prometheus は、オープンソース Prometheus エコシステムと完全にインターフェースされたマネージド監視サービスです。 Managed Service for Prometheus は、幅広いコンポーネントを監視し、すぐに使用できる複数のダッシュボードを提供します。 Managed Service for Prometheus を使用すると、セルフマネージド監視システムを構築したり、基盤となるデータストレージ、データ表示、またはシステム O&M について心配する必要はありません。 Managed Service for Prometheus を使用することをお勧めします。 | マイクロサービスシナリオ、クラスタコンポーネントメトリック収集、高度な監視機能の可観測性カスタマイズなど、すべてのシナリオがサポートされています。 | 詳細については、「Managed Service for Prometheus を使用する」をご参照ください。 |
オープンソース Prometheus | オープンソースバージョンの Prometheus は、ACK コンソールのマーケットプレイスで入手できます。 | マイクロサービス(Service Mesh)シナリオ、クラスタコンポーネントメトリック収集、高度な監視機能の可観測性カスタマイズなど、すべてのシナリオがサポートされています。 | 詳細については、「オープンソース Prometheus を使用して ACK クラスタを監視する」をご参照ください。 |
クラスタとコンテナのイベントを監視する
ソリューション | 説明 | シナリオ | 参照 |
イベント監視 | イベント監視は、リアルタイムの応答性、精度、およびシナリオの制限に対処することにより、Kubernetes リソース監視を補完します。 開発者は、イベントキャプチャを通じてクラスタの異常を即座に診断します。 実装には、Simple Log Service(SLS)をお勧めします。 | すべてのシナリオがサポートされています。 | 詳細については、「イベント監視の概要」をご参照ください。 |
アプリケーションパフォーマンスの可観測性
ACK 上に構築された可観測性システムにおけるアプリケーションメトリック、トレース、およびロギングをカバーする可観測性。 たとえば、ACK に Java アプリケーションをデプロイし、アプリケーションのスレッド数を監視できます。
ソリューション | 説明 | シナリオ | 参照 |
Java アプリケーションを監視するための非侵入型 APM | アプリケーションパフォーマンスの監視には、Application Real-Time Monitoring Service(ARMS)を使用することをお勧めします。 ARMS は、アプリケーションパフォーマンス管理(APM)用の Alibaba Cloud 監視サービスです。 ACK クラスタにデプロイされた Java アプリケーションを監視するには、Java アプリケーション用の ARMS コンポーネントをインストールするだけです。 コードへの侵入は必要ありません。 このコンポーネントを使用して、障害のあるインターフェースと低速なインターフェースを特定し、パラメータを調整し、メモリリークを検出し、システムパフォーマンスのボトルネックを特定できます。 これにより、トラブルシューティングの効率が大幅に向上します。 | Java アプリケーションの監視など、特定のシナリオのみがサポートされています。 ソリューションは非侵入型です。 | 詳細については、「Java アプリケーションの監視」をご参照ください。 |
コードの書き換えを伴う APM | Tracing Analysis は、分散アプリケーションアーキテクチャのパフォーマンスボトルネックを診断するための一連のツールを開発者に提供します。 これらのツールには、トレースマッピング、リクエストカウンター、トレーストポロジー、アプリケーション依存関係分析が含まれます。 Tracing Analysis は、マイクロサービスの開発と診断の効率を向上させます。 Tracing Analysis は、さまざまなオープンソース SDK をサポートし、OpenTracing および OpenTelemetry の標準をサポートしています。 | マイクロサービス(Service Mesh)やさまざまなプログラミング言語を使用するアプリケーションなど、すべてのシナリオがサポートされています。 ソリューションは OpenTelemetry 標準に準拠しています。 このソリューションを使用する場合は、コードを書き直す必要があります。 | 詳細については、「ASM で分散トレースを有効にする」をご参照ください。 |
Managed Service for OpenTelemetry は、分散アプリケーションを開発するための一連のツールを提供します。 これらのツールを使用して、トレースをマッピングし、リクエスト数をカウントし、トレーストポロジーを表示し、アプリケーションの依存関係を分析できます。 これにより、分散アプリケーションアーキテクチャのパフォーマンスボトルネックを分析および診断し、マイクロサービス開発と診断の効率を向上させることができます。 | このソリューションは OpenTracing の標準に準拠しており、Jaeger や Zipkin などのオープンソースのトレースプラットフォームをサポートしています。 このソリューションは、Java、PHP、Go、Python、Node.js、.NET、C ++、Ruby、Swift などのプログラミング言語に基づいて開発されたアプリケーションをサポートしています。 | 詳細については、「Tracing Analysis OpenTelemetry Edition とは」および「統合ガイド」をご参照ください。 |
ビジネスの可観測性
ACK 上に構築された可観測性システムにおけるビジネスの可観測性。 ACK に基づいて可用性とスケーラビリティの高い Web サイトをデプロイした後、ページビュー(PV)やユニークビジター(UV)などの統計情報を表示できます。 ビジネスの可観測性により、アプリケーションコストを監査することもできます。
ソリューション | 説明 | シナリオ | 参照 |
カスタムロギングと監視 | カスタムメトリックを観測するには、SLS を使用することをお勧めします。 アプリケーションログの内容と形式をカスタマイズし、SLS を使用してログを収集し、SLS でダッシュボードを構成してビジネスを監視したり、システム監査を実行したりできます。 | トラフィック監視、コスト監査と統計、注文トレンド分析など、すべてのシナリオがサポートされています。 | 詳細については、「SLS を使用してコンテナからログデータを収集する」をご参照ください。 |
Managed Service for Grafana を使用したカスタムダッシュボード | Managed Service for Grafana は、クラウドネイティブの O&M データ可視化プラットフォームです。 このプラットフォームは、迅速に起動できる O&M フリーの Grafana ランタイム環境を提供します。 デフォルトでは、Managed Service for Grafana は、データベースサービス、Message Queue、Managed Service for Prometheus、SLS などの Alibaba Cloud サービスからデータを取り込むことができます。 Managed Service for Grafana は、さまざまなダッシュボードも提供しており、システムをきめ細かく監視および保守できます。 Managed Service for Grafana を使用すると、メトリック、ログ、トレースを分析および表示できます。 サーバー構成やソフトウェアアップデートについて心配する必要はありません。 これにより、O&M 作業が大幅に簡素化されます。 Alibaba Cloud のクラウドネイティブ機能を搭載した Managed Service for Grafana は、より高いセキュリティと可用性も備えています。 | すべてのシナリオがサポートされています。 Managed Service for Grafana を使用して、ビジネス要件に基づいてダッシュボードを構成できます。 たとえば、リアルタイムダッシュボードを作成して PV と UV を監視できます。 | 詳細については、「Managed Service for Grafana とは」をご参照ください。 |
ARMS ブラウザ監視によるビジネストラフィックとビジネスヘルス監視 | ARMS ブラウザ監視は、Web アプリケーション、Weex、ミニプログラムの監視を目的としています。 Web ページの読み込み速度(速度テスト)、Web ページの安定性(JS エラー診断)、外部サービス呼び出し(API)の成功率を検出することにより、Web アプリケーションとミニプログラムのヘルスを監視します。 | このソリューションは、JavaScript を使用するフロントエンドアプリケーションに適しています。 | 詳細については、 ARMS ブラウザ監視とはをご参照ください。 |
参照
ログ監視の詳細については、「ロギング管理」、「SLS を使用してコンテナからログデータを収集する」、および「Kubernetes と SLS 用の Log4jAppender を構成する」をご参照ください。
メトリックの詳細については、「Java アプリケーションの監視」、「クラスタートポロジーの監視」、および「イベント監視」をご参照ください。
監視サービスの使用方法とダッシュボードの構成方法の詳細については、「Managed Service for Prometheus を使用する」、「Ingress ダッシュボード」、「CoreDNS 監視」、「PromQL を使用して Prometheus 監視データをクエリする」、および「SysOM に基づくカーネルレベルのコンテナ監視」をご参照ください。