第3章 Kubernetesの監視とログ Kubernetesのモニタリングとロギング
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章では、Kubernetesにおけるモニタリングとロギングのベストプラクティスについて説明する。さまざまなモニタリングパターンの詳細、収集すべき重要なメトリック、これらの生のメトリックからのダッシュボードの構築について掘り下げていく。そして、Kubernetesクラスタにモニタリングを実装する例で締めくくる。
メトリックとログの比較
まず、ログ収集とメトリック収集の違いを理解する必要がある。両者は補完関係にあるが、目的は異なる:
- メトリック
-
ある期間にわたって計測された一連の数値。
- 過去ログ
-
ログは、エラー、警告、発生した注目すべきイベントなど、プログラミングの実行中に何が起こったかを 。
メトリックとロギングの両方を使用する必要がある例として、アプリケーションのパフォーマンスが低下している場合がある。問題の最初の兆候は、アプリケーションをホストしているPodの遅延が大きいというアラートかもしれないが、メトリックは問題の良い兆候を示さないかもしれない。その後、ログを調べて、アプリケーションから発せられるエラーを調査することができる。
モニタリング・テクニック
クローズド・ボックス・モニタリングアプリケーションの外側からのモニタリングに重点を置き、CPU、メモリ、ストレージなどのコンポーネントのシステムをモニタリングする際に従来から使われている。クローズド・ボックス・モニタリングは、インフラ・レベルでのモニタリングには有用だが、アプリケーションがどのように演算子しているかについての洞察やコンテキストに欠ける。例えば、クラスタが健全かどうかをテストするために、Podをスケジュールし、それが成功すれば、クラスタ内のスケジューラとサービス検出が健全であることがわかる。
オープンボックス・モニタリングHTTPリクエストの合計、500エラーの数、リクエストの遅延など、アプリケーション状態のコンテキストにおける詳細に焦点を当てる。オープンボックス監視を使えば、システム状態の理由を理解し始めることができる。ディスクが一杯になった "とだけ述べるのではなく、"なぜディスクが一杯になったのか?"と問うことができる。
モニタリング・パターン
、「こんな難しいことができるだろうか?私たちは常にシステムを監視してきた。監視の概念は新しいものではないし、システムのパフォーマンスを把握するためのツールもたくさんある。しかし、Kubernetesのようなプラットフォームはよりダイナミックで一過性のものなので、これらの環境を監視する方法について考え方を変える必要がある。例えば、仮想マシン(VM)を監視する場合、そのVMが24時間365日稼働し、すべての状態が保存されていることを期待する。Kubernetesでは、Podは非常に動的で短命である可能性があるため、この動的で一時的な性質に対応できるモニタリングが必要になる。
分散システムを監視する際に注目すべき監視パターンは2つある。USEメソッドは、 Brendan Gregg氏によって広められたもので、以下の点に注目する:
-
U-利用
-
S飽和
-
Eエラー
このメソッドは、アプリケーションレベルのモニタリングに使用するには限界があるため、インフラモニタリングに焦点を当てている。USEメソッドは、「すべてのリソースについて、利用率、飽和度、エラー率をチェックする」と説明されている。このメソッドでは、システムのリソース制約とエラー率を素早く特定することができる。たとえば、クラスタ内のノードのネットワークの正常性を確認するには、利用率、飽和度、エラー率を監視して、ネットワーク・ボトルネックやネットワーク・スタックのエラーを簡単に特定できるようにしたい。USEメソッドは、より大きなツールボックスの中の1つのツールであり、システムを監視するために利用する唯一のメソッドではない。 ...