コンテンツに移動
クラウド オペレーション

Cloud Logging のモニタリング データによる GKE アプリのトラブルシューティング迅速化

2021年8月27日
Google Cloud Japan Team

※この投稿は米国時間 2021 年 8 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Kubernetes Engine(GKE)上のアプリケーションのトラブルシューティングでは、問題に関するコンテキストが多ければ多いほど、問題をより迅速に解決できます。たとえば、Pod がメモリ割り当ての上限を超えたか?ストレージ ボリュームの予約に権限エラーがあったか?アプリ内の不正な正規表現によって CPU が過度に消費されたか?こうした問いに答えるには、開発者と運用担当者による多くのトラブルシューティング コンテキスト構築が必要です。

Cloud Logging の GKE 向け Cloud Monitoring データ

GKE アプリのトラブルシューティングを簡易化するために、Cloud Logging から直接アクセス可能なコンテキスト ベースの Cloud Monitoring データを追加しました。この新機能により、関連する Pod、ノード、クラスタのイベント、指標、アラート、SLO をログ行自体から簡単に確認できます。さらに、特定のログエントリに読み込まれるデータは、Kubernetes リソースをスコープとするため、アプリのエラーを調査する際の貴重な時間を節約できます。

本日の発表内容は、各 GKE リソースの詳細ページにログのタブが追加されたことや、Monitoring の GKE ダッシュボードに指標とログが統合されたことなど、最近行われた他のインテグレーションをさらに強化するものです。Monitoring、Logging、GKE のどこでトラブルシューティングを始めても、オブザーバビリティ データを手軽に入手できます。

たとえば、Cloud Logging で GKE アプリのエラーをトラブルシューティングし、アプリのログを見ている場合、ログエントリを離れることなく、コンテナの再起動、稼働時間、メモリ、CPU、ストレージの指標グラフを表示できるようになりました。アクティブなアラートはアラートタブでハイライト表示され、トラブルシューティングに役立つコンテキストを提供します。他にはない、この統合エクスペリエンスでは対象アプリを実行している特定の Kubernetes リソースの重要なログや指標データをまとめて表示できます。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/GCP_container_details.gif

ログ行から GKE の Monitoring データを表示する

k8s_container、k8s_pod、k8s_node、k8s_cluster のログから、resource.labels のリソース名を持つブルーチップを選択し、[モニタリングの詳細を表示] を選択すると、Logs Explorer から直接、統合指標パネルにアクセスできます。[GKE で表示] を選択すると、Cloud Console の GKE リソース詳細ビューが新しいタブで開きます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_Viewing_Monitoring_data_for_GKE_from_a_log.max-600x600.jpg

指標パネルには、GKE リソースに関連するアラート、Kubernetes イベント、指標を含む多くのコンテキスト データが表示されます。

アラート

GKE リソースによってトリガーされたアラートは、[アラート] タブに表示されます。色分けされたアラートのステータスにより、進行中のインシデント、確認済みのインシデント、クローズ済みインシデントを簡単に確認できます。[インシデントを表示] を選択すると、Cloud Monitoring でインシデントの詳細が表示されます。新しいアラートを作成する場合は、リンクを使用してまったく新しいアラート ポリシーを作成します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_Alerts.max-1000x1000.jpg

クラスタと Pod の Kubernetes イベント

指標パネルには、クラスタと Pod のイベントが表示されます。各イベントには、名前、関連するリソース、ログメッセージを表示またはコピーするためのリンクが表示されます。Kubernetes イベントからは、問題の根本原因を特定するために重要な情報が得られます。たとえば、FailedScheduling イベントが表示された場合、トラブルシューティングの流れを Kubernetes リソースが利用可能なリソースの確認へすぐに導くことができます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_Kubernetes_events_for_clusters_and_pods_.max-1000x1000.jpg

コンテナ、Pod、ノードの指標

指標タブには、GKE クラスタから収集され Cloud Monitoring で報告されるコンテナ(デフォルト)、Pod、ノードの指標の指標バンドルが含まれています。各指標バンドルには事前に組み込まれたグラフが用意されており、CPU、メモリ、ストレージ、コンテナの再起動を選択して表示できます。たとえば、CPU やメモリを見ることで、Kubernetes リソースの指標にスパイクがあったかどうかを判断できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/5_Metrics_for_containers_pods_and_nodes.max-1000x1000.jpg

今後の展開

Google は、Google Cloud のオペレーション スイートを GKE アプリのトラブルシューティングに最適なツールにするために取り組んでいます。GKE アプリのトラブルシューティングを容易にするために、ログを GKE リソースの詳細ページに直接統合し、特化された統合 GKE ダッシュボードを構築しました。さらに、GKE アプリのトラブルシューティングのために、指標パネルにより多くのコンテキストを表示する新しい機能の追加にも取り組んでいます。

使ってみる

GKE での Cloud Logging と Cloud Monitoring の使用をまだ開始していない場合は、ドキュメントGKE 上のサービスのトラブルシューティングに関する簡単な動画をご覧になり、Google Cloud コミュニティ サイトの新しい Cloud Operations ページ のディスカッションにご参加ください。

-Google Cloud プロダクト マネージャー Charles Baer

投稿先