Oracle Cloud Hangout Cafe Season4 #4「Observability 再入門」(2021年9月8日開催)
Observability Practice
発表では、Oracle Cloud Infrastructure(OCI)のKubernetesのマネージドサービスであるOracle Container Engine for Kubernetes(OKE)上で以下のOSSを利用して、メトリクス、ログ、トレースの状況を確認するデモを行いました。サービスメッシュはIstio、サンプルアプリケーションはBookinfo Applicationを利用しました。
- Prometheus
- Grafana
- Grafana Loki
- Kiali
- Jaeger
本記事ではデモの概要を説明します。動画は公開済みなので、実際のデモの詳細は動画で確認してください。また、デモの手順や使用したマニフェストはGitHubで公開しています。
Prometheus
Prometheusのデモでは、node-exporterを利用してKubernetesクラスタの各ノードの空きメモリ量、直近5分における各ノードの空きメモリ量、3ノード全体の空きメモリ量の合計をPromQLで検索し、WebUIで確認するデモを実施しました。
検索フォームに以下を入力して、各ノードのメモリ空き容量を確認します。
node_memory_MemAvailable_bytes
直近3分の場合は、以下のように入力します。
node_memory_MemAvailable_bytes[3m]
3ノード全体のメモリ空き容量の場合は、以下のように入力します。
sum without (instance, kubernetes_node) (node_memory_MemAvailable_bytes)
グラフとして状況を確認することもできます。
Grafana Loki
Grafana LokiのデモではGrafanaにData SourceとしてLokiを追加し、loki
とistiod
のログをGrafana のWebUIで確認するデモを実施しました。
検索フォームに以下を入力して、loki
のログを検索して確認します。
{app=“loki”}
検索フォームに以下を入力して、istiod
のログを検索して確認します。
{app=“istiod”}
Istio & Grafana
IstioのアドオンとしてPrometheusとGrafanaがインストールされているので、Istio環境の状況をGrafanaで確認するデモも実施しました。
ここでIstioの概要を補足します。Istioはマイクロサービスの通信を管理してセキュリティ、接続性、モニタリングを強化するオープンソースのサービスメッシュです。主な特徴は以下の通りです。
- トラフィック管理:Istioはマイクロサービス間のトラフィックの流れを制御して、ルーティング規則、リトライ、フェールオーバー、断続的なテストなどを提供
- セキュリティ強化:Istioはサービス間の通信をセキュアにして、アイデンティティとアクセス管理を提供、信頼できるサービス間でのみデータを共有できる
- 監視と可視化:Istioはマイクロサービス間の通信データを収集し、これを使って監視と可視化ツールを提供、パフォーマンスの問題やボトルネックを簡単に特定できる
- ポリシーとコンプライアンス:Istioは組織のポリシーに基づいてサービス間の通信を管理する
Istioは、特にクラウドネイティブなアプリケーションや複数のマイクロサービスを使用する大規模なアプリケーションにおいて、その価値を最大限に発揮します。Kubernetesと組み合わせることで、より強力なマイクロサービス管理プラットフォームを構築できると言われています。
Istioのアーキテクチャは下図の通りです。
デモでは、Istio Control Plane DashboardとIstio Performance Dashboardを確認しました。
Istioについては、本連載の過去記事「Oracle Cloud Hangout Cafe Season6 #1『Service Mesh がっつり入門!』(2022年9月7日開催)」でも取り上げています。ご参照ください。
Istio + Bookinfo + Kiali + Jaeger
最後に、Istio環境上にBookInfoというマイクロサービスアプリケーションを利用し、Kialiでトラフィック、Jaegerでトレースを確認するデモを実施しました。
Bookinfoは書籍情報を表示するマイクロサービスアプリケーションです。各言語で作られたアプリケーションサービスが疎結合して、1つのシステムを形成しています。
KialiはIstioサービスメッシュを視覚化、監視、管理するためのOSSです。Kiali の主な特徴は以下の通りです。
- トポロジーの視覚化: Kialiはマイクロサービス間の通信パターンを視覚的に表示して、どのサービスがどのサービスと通信しているか、トラフィックの流れがどのようになっているかを可視化できる
- ヘルスチェックとメトリクス: サービスの健康状態やパフォーマンスメトリクスを確認できるエラー、遅延、その他の問題を迅速に特定し、解決策を見つけることができる
- トラフィック管理: Istioのトラフィック管理機能(ルーティング規則、断続的なテストなど)を視覚化
- セキュリティ設定: Istioによるセキュリティポリシーと設定を視覚的に理解して管理できる
- 構成の検証: Istioの設定エラーや不整合を識別して、改善のためのヒントを提供
デモでは、Kialiを利用してサービス間のトラフィックの状況を確認しました。
JaegerのWebUIを利用して、処理におけるTraceとSpanの状況を確認しました。
おわりに
発表時から3年の月日が経ったこともあり、発表時の内容から少し変更、追加した情報もありました。クラウドネイティブにおけるオブザーバビリティの概要を掴むきっかけとなれば幸いです。
ツールに関してはOSSを中心とした内容ですが、各ベンダーが提供するサービスやサードパティーのツールも豊富にあります。マネージドサービスによる利点もあると思います。実際に導入する際は色々と検討するのが良いでしょう。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Observability Conference 2022から、サイボウズのオブザーバービリティ事例を紹介
- Kubernetesアプリケーションのモニタリングことはじめ
- 「Odigos」でノーコードの分散トレーシングを実現する
- Kubernetesアプリケーションのトレーシング
- Promscaleのデモから見えるタイムシリーズデータを使った現代的なオブザーバビリティ
- Observability Conference 2022開催、Kubernetesにおける観測の基本を解説
- 3/11「Observability Conference 2022」開催せまる! 実行委員オススメのみどころを紹介
- Observability Conference 2022、Splunkのエンジニアが説明するOpenTelemetryの入門編
- Obervability Conference 2022、OpenTelemetryの概要をGoogleのアドボケイトが解説
- Observability Conference 2022、日本ユニシスのエンジニアが解説するデベロッパーにとってのオブザーバビリティ