全5013文字
PR

現代的なシステム監視の理想型は「オブザーバビリティー(可観測性)」の実現にある。マイクロ・サービス・アーキテクチャーのような複雑なシステムの稼働状況を可視化する。可観測性を実現する構成要素やユーザー企業が取り組むべきステップを紹介しよう。

 複雑な分散システムを開発したにもかかわらず、旧式のシステム監視体制を維持し続けていた場合、何が起こりうるのか。その最悪な事例が、みずほ銀行で2021年2月から2022年2月にかけて合計11回も発生した連続システム障害だった。

 みずほ銀行の勘定系システム「MINORI」はマイクロ・サービス・アーキテクチャーではないものの、数千のサービスによって構成される非常に複雑な分散システムだ。それにもかかわらずみずほ銀行は、MINORIのシステム監視を人手や紙、電話に依存していた。オブザーバビリティーが不足していたことが障害の一因となった。

 近年、数多くの日本企業が旧来型のモノリシック(一枚岩)な業務システムを、マイクロ・サービス・アーキテクチャーを採用した現代的な分散システムへ刷新しようとしている。しかし運用や監視の方法論も現代的なものへとアップデートしなければ、みずほ銀行のような大障害が起きかねない。

 ガートナージャパンの阿部恵史シニアディレクターは「日本でオブザーバビリティーに取り組んでいるのは、一部のアーリーアダプターに限られるのが現状だ」と指摘する。それでも来たるクラウドネーティブ時代に備え、オブザーバビリティーを理解しておくのは、どの企業にとっても重要だ。どうすればオブザーバビリティーを実現できるのか。必要な要素を見ていこう。

 日本でオブザーバビリティーを実践する1社がさくらインターネットだ。

OSSでオブザーバビリティー実現

 同社はクラウドサービス「さくらのクラウド」におけるオブジェクトストレージのサービスを、OSS(オープンソースソフトウエア)のコンテナ管理ソフトウエアであるKubernetes(K8s)で構築する。このストレージサービスのシステム監視に、OSSであるPrometheusを使う。PrometheusはK8s環境でオブザーバビリティーを実現するための標準的な監視ツールだ。K8sの開発元である米クラウド・ネーティブ・コンピューティング・ファウンデーション(CNCF)が開発を始め、現在は米Linuxファウンデーションで開発が進んでいる。

 米アマゾン・ウェブ・サービス(AWS)や米グーグルも、自社クラウド専用のシステム監視SaaS(ソフトウエア・アズ・ア・サービス)を提供する一方で、Prometheusのマネージドサービスも提供する。Prometheusを使うと複数クラウドやオンプレミスにあるK8s環境を統合的に監視できる。

 さくらインターネットのクラウド事業本部インターネットサービス部に所属する仲亀拓馬氏は、オブザーバビリティーを目指した理由について「ユーザーによるストレージAPI(アプリケーション・プログラミング・インターフェース)の呼び出し状況などを可視化したいと考えたためだ」と説明する。ユーザー視点のシステム監視が目的であり、オブザーバビリティーはそれを実現する手段ということだ。

 仲亀氏はオブザーバビリティーを実現するために収集すべきデータの種類として「メトリクス」「ログ」「トレース」を挙げる。こうした情報は合わせて「テレメトリー」と呼ぶ。さくらインターネットではまだトレースを収集していないため、まずはメトリクスとログについて説明しよう。

 メトリクスとはシステムの稼働状況を統計的な数値として表したものだ。物理マシンのメトリクスであれば、CPU稼働率やメモリーの使用量、ディスクの空き容量などが代表例だ。ログはOSやミドルウエア、アプリケーションなどが出力する情報であり、テキストデータである。

図 メトリクスとログの違い
図 メトリクスとログの違い
メトリクスは数値、ログはテキスト
[画像のクリックで拡大表示]