この記事はKumar Varunによる”Enhanced OKE Monitoring with Observability and Management“の日本語翻訳記事です。
Kubernetesは、マシン間のワークロード分散、フォールト・トレランスの実現、問題発生時のワークロード再スケジュールなど、多くの問題を解決するコンテナ・オーケストレーションの標準です。開発プロセスの高速化と複雑さの軽減はKubernetesオペレーターの負担を軽減しますが、固有の抽象化と自動化により、発見、トラブルシューティング、予防が困難な新しいタイプのエラーが発生する可能性があります。多くの要素が複雑に絡み合う大規模分散システムでは、問題の根本原因を突き止めるのが困難です。従来のモノリシック環境では1つか2つのログを検索すれば済むかもしれませんが、マイクロ・サービスでは多数のログを検索しなければなりません。多くのサービスからのログを順に確認するのは時間がかかり、問題の真の根本原因を特定できないことも少なくありません。
このブログでは、 OCI Observability and Management(O&M)プラットフォーム・サービスを利用してKubernetes環境を監視する方法を説明します。OCI Log Analyticsは Oracle Container Engine for Kubernetes(OKE)環境のインフラストラクチャ・ログを監視し、Application Performance Monitoring(APM)はKubernetes環境にデプロイされたアプリケーションを監視します。
WeblogicアプリケーションでOKE環境をデプロイするための前提条件
- 既存のコンパートメント、APIキーなどの初期構成がすでに完了している有効な Oracle Cloud Infrastructure (OCI) アカウントを作成または使用します。
- このリンクを参照してOKE環境を作成し、公開します。
- OKEクラスタにサンプルアプリケーションをデプロイします。手順については、こちらのリンクを参照してください。
Log Analyticsを使用してOKEインフラストラクチャの監視を強化
OCI Log Analyticsは、クラウドまたはオンプレミスのアプリケーションとシステム・インフラストラクチャからのすべてのログ・データをインデックス化、拡充、集約、探索、検索、分析、相関分析、可視化、監視するクラウド・ソリューションです。収集されたログを分析することで、豊富なインサイトを提供します。
Kubernetes環境は、オープンソースのデータコレクター・ソフトウェアであるFluentDを使用して構築されており、ソースからインフラストラクチャ・ログを収集します。OCI Log Analyticsは、Kube Proxy、Kube Flannel、Kubelet、CoreDNS、CSI Node Driver、DNS Autoscaler、Cluster Autoscaler、Proxymux ClientといったKubernetesクラスタのログに加え、Syslog、Secure、Cron、Mail、Audit、Ksplice Uptrack、YumといったLinuxログも収集します。OCI Log Analyticsの設定を行う前に、前提条件を必ず満たしてください。
OKE環境の準備ができたら、OCIメニュー > 開発者サービス > Kubernetesクラスタに移動し、クラスタとノードの詳細を確認します。キーを設定してクラスタにアクセスします。取り込まれたOKEログとアプリケーションログを確認し、OCI Log AnalyticsサービスがOKEインフラストラクチャ・ログの分析にどのように使用されているかを確認します。
- OCIコンソールのナビゲーション・メニューから監視および管理を選択し、ログ・アナリティクス > ログ・エクスプローラを選択します。正しいリージョンとコンパートメントにいることを確認してください。
- FluentDを含むdockerイメージを使用して構築されたOKE環境用に構成されたログを表示します。
- これらのログを分析して、有用な情報を入手してください。例えば、ポッドのステータスを確認するには、以下のクエリを実行して詳細なステータスを取得します。
- カスタム・ダッシュボード を構築することで、環境を単一のビューで把握できます。例えば、以下のダッシュボードはOKEクラスターの完全なサマリーを提供しています。
OCI APMの包括的な機能でアプリケーション監視を強化
Kubernetes環境のインフラストラクチャを監視し、ログから洞察を得る方法を説明しました。次に、OCI Application Performance Monitoring(APM)サービスを使用して、KubernetesクラスタにデプロイされたWebLogicアプリケーションを監視する方法を見ていきましょう。APMはアプリケーションを監視し、パフォーマンスの問題を診断するための包括的な機能セットを提供します。これにより、Open Tracingのインストルメンテーションとメトリックの自動収集が可能になり、エンドツーエンドの完全なアプリケーション監視と診断が可能になります。APMには、分散トレースシステムの実装も含まれています。監視対象アプリケーションからトランザクショントレースデータ(スパン)を収集・処理し、表示、ダッシュボード、探索、アラートなどに利用できるようにします。
- OCI コンソールのナビゲーション・メニューから監視および管理を選択し、アプリケーション・パフォーマンス・モニタリング > トレース・エクスプローラを選択します。
- トレース・エクスプローラのページからコンパートメントとAPMドメインを選択します。キャプチャされたトレースを確認することで、アプリケーションへのアクセス方法とパフォーマンスに関する詳細情報が得られます。
- 「トレース」をクリックすると、トレースの詳細とスパンの詳細が表示されます。アプリケーション内の異常を特定し、対処することができます。例えば、アプリケーション内のどのページが遅いかを把握し、アプリケーション全体のパフォーマンスを監視することで、根本原因の特定にかかる時間を最小限に抑えることができます。
- インフラストラクチャ層に関する分析情報を得るには、Log Analyticsなど O&Mの他のサービスにドリルダウンします。
- アプリケーション監視用のカスタムダッシュボードを作成し、アプリケーションの健全性を包括的に把握できます。以下は、OKEクラスタにデプロイされたサンプル・アプリケーションの概要ダッシュボードの例です。
O&Mプラットフォームは、複雑なKubernetesエコシステムに関するインサイトを提供します。カスタム・ダッシュボードは、サービス間、複数オペレーションレベルのビューを通じて環境全体を統合的に把握し、各サービスへのドリルダウンを可能にします。これらの機能により、OCI Log Analytics、OCI Application Performance Monitoring、その他のOCIサービスを活用したOKEやその他のKubernetesクラスター向けのエンドツーエンドの監視ソリューションが実現します。より理解するためにAPM LiveLabsとLA LiveLabsで詳細をご確認ください。