オブザーバビリティ(O11y)を理解しシステムの安定運用を実現する【事例付き】
近年、システム運用管理においてオブザーバビリティという概念が注目を集めています。オブザーバビリティとは一体どのような概念なのでしょうか。また、オブザーバビリティの向上によりどのような効果を得ることができるのでしょうか。この記事では、オブザーバビリティという概念の解説に加え、その効果や具体的な事例について紹介します。
オブザーバビリティとは何か
オブザーバビリティとはどのような概念なのか、またなぜそれが重要であるのか、まず整理します。
オブザーバビリティの概念
オブザーバビリティ(Observability)とは、英語のObserve(観察する)とAbility(能力)を組み合わせた単語であり、その意味のとおり「システムの可観測性」を表す言葉です。短縮形として、(b~tまで11文字であることから)”O11y”と表記されることもあります。
システムの状態を観測するためには、たとえばCPUやメモリの使用率やログの出力状況などを利用しますが、システムの状態をより詳細に把握するためには様々な観測項目を頻度高く監視する必要があります。近年では、観測対象や観測頻度を増やすことで、システムの状況をより詳細に把握しようとする取り組みが進んでいます。
このように、システムの内部的な情報を詳細に把握しようとする概念のことをオブザーバビリティと呼びます。
なぜオブザーバビリティが重要視されているのか
なぜオブザーバビリティが重要視されているのでしょうか。その理由の一つは、分散型のシステムが主流となっている状況にあります。
現代的なアーキテクチャでは、クラウド環境の利用やコンテナを活用したマイクロサービスアーキテクチャの採用が一般的なものとなりました。これにより、システムは単一の環境ではなく、分散した複数の環境・コンポーネントを組み合わせて動作するようになっています。
分散型システムにはスケーラビリティや可用性、保守性などの観点でメリットがあります。一方で、システムの稼働状況を把握しにくいという面もあり、システムに障害が発生した際に、どの環境に問題が発生しているのか原因究明が難しいという特徴があります。
たとえば、マイクロサービスを採用しているシステムにおける障害の原因究明においては、具体的にどのコンポーネントに原因があるか確認しなければなりません。障害の原因がある処理Xにあったとして、その処理Xは様々なコンポーネントが関連して実施されています。処理X-aを実施するコンテナAと処理X-bを実施するコンテナB、処理X-cを実施するコンテナCといったように、様々なコンポーネントが関連しており、そのうちどこに問題があるのか突き止めなければなりません。
このような状況において、システムのオブザーバビリティを高める必要性が生じています。
オブザーバビリティ向上の効果
それでは、オブザーバビリティを向上させることにはどのようなメリットがあるのでしょうか。以下では主な効果を紹介します。
システムの稼働状況の即時把握
オブザーバビリティを高めることで、システムが現在どのような状況であるかをより詳しく、かつ即時に確認することができます。
オブザーバビリティを高めたシステムでは、様々な情報を収集することができます。これらの情報をツールなども活用して可視化・分析することで、運用管理者はシステムの状態を把握しやすくなります。
また、情報の収集頻度を高めることで、システムの状況をより詳しく、かつリアルタイムに近い形で把握できるようになります。
素早い問題解決を実現する
オブザーバビリティ向上には、障害発生時、もしくは障害発生前に検知した問題の解決を素早く実現できるという効果もあります。
前述した通り、マイクロサービスアーキテクチャなど、様々なコンポーネントが複雑に関連するシステムにおいては、特にオブザーバビリティの観点が重要です。ある処理に問題があるときに、その処理を追跡して問題の発生源を確認することができます。
結果として、問題の早期解決や問題発生前の事前対応によるサービスレベルの維持・確保が実施しやすくなります。
オブザーバビリティを高めるために必要なこと
それでは、オブザーバビリティを高めるためには、どのような取り組みが必要なのでしょうか。以下で紹介します。
データの収集
まず必要となるのが、システムの状態を把握するためのデータの収集です。システムの状況を把握するためのデータはシグナルと呼ばれます。シグナルを収集し可視化・分析することでオブザーバビリティの向上につながります。
シグナルとして収集すべき代表的な情報は「メトリクス」「ログ」「トレース」の3つです。
メトリクス
メトリクスは、システムの状況を表す数値的なデータです。CPU、メモリ等のコンピューティングリソースの状況やレスポンスタイム、ネットワーク通信量、接続数など様々なシステム内部情報が対象となります。
メトリクスによりシステムの稼働状況を把握することができます。たとえば、CPU使用率が急激に上昇していれば、何らかシステムの稼働に問題が起きている可能性があります。
ログ
ログはシステムの処理結果を表すデータです。アプリケーションやミドルウェア、OSなどのログが収集対象となります。エラーログやバッチ処理結果のログなどを収集することで、障害発生時の原因究明にも活用できます。
トレース
トレースとは、複数のコンポーネントにまたがるリクエストのフローを可視化するものです。マイクロサービスアーキテクチャを採用しているシステムにおいては、トレースによって処理の連鎖を追いかけて把握することができます。トレースにより実施にかかった時間や処理結果、タイムスタンプなどを処理ごとに確認することができ、問題が発生している箇所の特定を実現できます。
データの可視化
次に、収集したデータを運用管理者が把握しやすいように可視化します。この際、ダッシュボード機能を備えたツールを活用すれば、重要な指標をもとにシステムの状況を一目で把握できます。
たとえば、時系列データのメトリクスであれば折れ線グラフや棒グラフを活用します。累積値が重要であるか、瞬間値が重要であるかはデータの特性によって異なるため、使い分けがポイントです。
可視化においては、運用しているシステムの構成を確認することができるネットワークトポロジーマップの作成も検討することをおすすめします。ネットワークトポロジーマップとは、システムのネットワーク構成を可視化したものであり、システムの構成を一目で把握することができます。
ネットワークトポロジーマップを作成・表示するためには、その機能を備えたツールを活用するとよいでしょう。これにより、効率的かつ効果的に可視化を行うことができます。
ネットワークトポロジーの詳細については、こちらの記事もご覧ください。
データの分析
収集したデータの関連付けなどを行うことで、より詳しくシステムの状況を把握できます。たとえば、データに対してアプリケーション名や、対象とする顧客や顧客クラスなどのビジネス面も含めたメタデータを付与します。これにより、データをより分かりやすく、かつ活用しやすい形にすることもできます。
また、条件を指定して収集したデータの検索を行い、合致した条件によって集計や可視化を行うような機能の活用も有効です。
さらに高度な手法として、機械学習を活用したデータの分析も検討できます。このようにAIを活用したシステム運用管理をAIOpsと呼びます。AIOpsの詳細については、以下の記事もご覧ください。
自動修復
オブザーバビリティを高めることで、システムの問題を事前に検知することも可能となります。この際、自動で問題を解消し修復を行うことで、システムの安定運用につなげる取り組みも実現できます。
たとえば、Kubernetesでコンテナクラスタを構成している場合は、観測結果を基にノードを自動で修復するようなことも可能となります。
オブザーバビリティ向上により成果を挙げている事例
オブザーバビリティ向上は多くの企業の関心ごととなっています。以下では、オブザーバビリティの向上に取り組んだ2つの事例を紹介します。
TVer
テレビの見逃し配信サービスであるTVerでは、月間2億回を超える再生回数を処理するためにオブザーバビリティの向上に取り組んでいます。
従来のモニタリング体制では、ユーザー体験の状態を把握できず、また問題発生時の迅速な対応にも課題がありました。そこで、まずはデータを収集し観測できる体制を構築。これまでメトリクスやログについてはサンプリングの形で収集していましたが、ほぼすべてのデータを収集するように改善しました。また、従来は取得していなかったトレースについても収集対象とし、システムの状態をより詳細に把握できるようにしました。
システムの状態を詳細に把握することで、改善を行うための第一歩となります。TVerでは、オブザーバビリティ改善によりユーザー体験の把握やアプリケーションエラーの調査迅速化に効果があったとのことです。
NTTドコモ
NTTドコモでは、自社サービスの開発効率化のため「RAFTEL」という共通API基盤を構築しています。
多数の利用者が存在するRAFTELでは、利用者からの問い合わせに頻度高く対応する必要があります。一方で、エラー検知はログベースで実施しており、エラーが局所的なものなのか広範囲なものであるのか分からないなど、課題がありました。
そこで、収集するデータを拡充しつつ、ダッシュボードを構築することでシステムの状況を可視化。利用者にダッシュボードを公開することで、問い合わせ数の削減に成功しました。
オブザーバビリティ向上に有効なLogicMonitorとは
オブザーバビリティ向上のためには、データの収集・可視化・分析を実現するためのツール導入が有効となります。
LogicMonitorは、オブザーバビリティ向上に有効なSaaS型IT統合運用監視サービスです。OS、ネットワーク、インフラなど幅広い領域に対して、エージェントレスで内部情報を収集可能。オンプレミス・クラウドも一元的に監視することができます。
収集したデータは、ダッシュボードにより可視化できます。ダッシュボードは高いカスタマイズ性を有し、必要な情報を集約して確認できます。データの分析という観点では、AIOps機能を活用することで高度な分析や自動化も実現可能です。
また、ネットワークトポロジーマップの作成など、システムの可視化に有効な機能も備えており、LogicMonitorの導入により効率的な運用管理を実現することができます。
LogicMonitorの詳細については、こちらのサービス資料もご覧ください。
まとめ
この記事では、近年注目度が上がっているオブザーバビリティについて紹介しました。最近では、クラウドの利用やマイクロサービスアーキテクチャの採用などが一般化しており、オブザーバビリティ向上の重要性が高まっています。
オブザーバビリティ向上のためには、データの収集・可視化・分析の機能を備えたツールの活用が有効といえます。オブザーバビリティ向上を検討する際には、ツール活用についても検討してみてください。