オブザーバビリティとは
オブザーバビリティ(Observability)とは、Observe (観察する)+ ability (能力) という単語の組み合わせで示される造語で、「可観測性」「観察する能力」を意味する用語である。
オブザーバビリティのIT業界における意味合いとしては、どんなアーキテクチャで構成されるITシステムやサービスにおいても、取得したデータをもとに、リアルタイムでシステムの状態を推測・把握する能力、取り組み、それを運用するための手法のことを指している。この記事では、システムの高度化に伴い新たに登場したオブザーバビリティという概念の定義、求められるに至った背景、その実現方法について詳しく解説し、オブザーバビリティとして活用できるOSSも紹介する。
オブザーバビリティが求められる理由
はじめに、オブザーバビリティが求めらるに至った背景について説明する。ビジネスにおける最新のシステムでは、システム全体を簡単に大規模化することができるクラウド(AWS、Azure)やコンテナ(Docker、Kubernetes)など、あらかじめ設定が難しく、複雑で動的な分散型システムが利用されてきている。分散型システムは、発生する障害が常に更新されるため、障害の種類が増えていってしまう点に問題があった。それを監視するには、旧来のモニタリング技術では対応が困難になってきた。
このようなシステムの高度化・複雑化によって、管理のしにくさやセキュリティが課題となっている。この影響により、従来のモノリシック型システムの仕様から、時代とともにシステム運用における構成要素を柔軟に変更できる、クラウドネイティブ技術特有の『マイクロサービスアーキテクチャ』への需要が高まってきているのである。これがオブザーバービリティが求められる理由である。次に、オブザーバビリティの概念において、オブザーバービリティの理解に重要な2つの要素の詳細を説明する。
クラウドネイティブとは
従来のオンプレミス環境のように物理サーバを使わず、最初からクラウド上でアプリケーションを実行したり、ソフトウェアを開発したりすることを前提としているシステム。
クラウドネイティブのような分散型システムは、サービス稼働しているインフラが非常に多く存在するため、その内部で発生した問題を把握しようとすると、アプリケーションを行使しているサービスの動きをすべて把握しなければならず、時間がかかりすぎてしまうという課題がある。その対策として近年注目されている1つがオブザーバビリティである。
マイクロサービスアーキテクチャとは
巨大なソフトウェアをモノシリックなものとして扱うのではなく、サービスを構成する各要素を「マイクロサービス」と呼ばれる独立した小さなコンポーネントとして実装・分散し、ネットワークプロトコルを介した通信とAPIによって連携させることで、全体を構成していくアーキテクチャ。それぞれを独立して開発、展開、スケーリングできるため、コンテナサービスやKubernetesと共に普及している。
オブザーバビリティを確保した上で、これらの技術を活用することで 、基盤のリソースを気にすることなく開発に集中できる。そのため、開発サイクルの速度を各段に向上させられるというメリットがある。ITサービスを展開する組織を中心に技術の活用が拡大している。
モニタリングとの違い
オブザーバビリティにおける問題の障害検知と対処・対応のアプローチに似た言葉で「モニタリング」という言葉がある。この2つはそれぞれ意味が異なる言葉であり、以下のような大きな違いがある。
システムでカバーできる領域
モニタリングでは、事前に定義された「既知の領域」で指標やログの収集を行う。その結果障害を検知した際は、アラートとして通知がされることで問題を発見することができる。
オブザーバビリティでは、事前に定義されていない「未知の領域」でプロパティとパターンの調査を行う。システム全体を常に観測しながら可視化しているため、リアルタイムでの迅速な問題発見が可能である。したがって、より広範な問題検知を実現しているのである。
問題検知能力
モニタリングでは、「どこに異常があるか」 を特定することができるが、オブザーバビリティは、「どこに」異常があるかだけでなく、「なぜ障害が起きたのか」という根本原因まで突き詰めて特定することができる。そのため、モニタリングと同様の、障害検知としての役割に加え、その後の問題修正の際にも役立っている。
つまり、前者は「何が起きているのかを見続けること」のみであるのに対し、後者は「予期せぬことが起きたときになぜそれが起きたのかを把握すること」であると言える。
実現するための3要素
オブザーバビリティを実現するためには、「メトリック」、「ログ」、「トレース」という3つの軸を用いて、データタイプを収集、分析、可視化する必要がある。これら3つの軸を総称して「テレメトリデータ」とも呼ばれる。
メトリクスとは【データ収集】
メトリクスとは、システムのパフォーマンスや使用状況を測定するための定量的な指標となる数値データのことである。 CPU使用率、メモリ使用量、ネットワークトラフィックなどがあり、有名なツールとして主にPrometheusが挙げられる。
このメトリクスを用いて数値データのしきい値から問題を検知し、アラート通知をする。これにより「どんな」問題が発生したのかを特定するのに役立ち、問題の方向性を把握する。
トレースとは【データ分析】
トレースとは、不具合が発生したプログラムの命令の実行を順番にたどって各段階の状態・状況を確認する作業のことであり、システムの問題を特定するために重要な情報を提供している。トランザクションごとにユニークなIDを発行して、すべてのサービスの情報にIDと時間情報、メタ情報を付与する。また、トレースは分散システムのデバッグや障害復旧に役立つ。
このトレースを用いて、複数のシステム間でのトランザクション(取引記録)の流れを追跡させることで問題の特定や対処にあたる。これにより「どこで」問題が発生したのかを特定することができる。
ログとは【データ可視化】
ログとは、システム内で発生したイベントやエラーの内容を、日時などとともに時系列に記録するための手段のことである。例えば、WEBサーバのアクセスログなどが該当する。システムの動作や内部状態を把握するために重要な情報を可視化することで、実際の履歴から根本原因の調査を行う。
このログを用いて、実際の動作履歴から問題の根本原因の調査を行う。これにより「なぜ」問題が発生したのかを特定し、問題の解決に繋げる。
オブザーバビリティを向上させる仕様
システムの状態を観測するために、OpenTelemetryと呼ばれる仕組みが、新しい標準化仕様として実装されている。OpenTelemetryは、主にマイクロサービスアーキテクチャで構成されたシステムの状態のオブザーバービリティを向上させるための仕様である。OpenTelemetryは、CNCF(Cloud Native Computing Foundation))が管理するプロジェクトのひとつであり、マイクロサービスにおける管理上の手間を解決してくれる。
OpenTelemetryは、基本の機能としてテレメトリデータの収集・整形・エクスポートまでを行うものである。つまり、製品・OSS・自作のソフトウェアに関わらず、同じ方法でテレメトリデータを収集し、エクスポートできるようにするための仕様・実装である。しかし、エクスポートされたそれらのテレメトリデータを保存したり、可視化するためにデータを処理するためには、他のツールを利用して対応する必要がある。OpenTelemetryで収集したデータを可視化するツールで最も有名なものには、OpenTelemetryと同様にCNCFのプロジェクトとして管理されている「Jaeger」と呼ばれるツールがある。詳しくは、OpenTelemetry調査報告書で公開している。
活用できるOSS
今まで、オープンソースソフトウェアの監視ツールやログ管理ツールは数多く利用されてきている。ここからはその中で、オブザーバビリティにフォーカスしているオープンソースソフトウェアを紹介する。各ソフトウェアに関しては、調査報告書でインストール方法などの詳細を公開している。調査報告書は、無料資料ダウンロードよりダウンロードが可能である。
OpenObserve
OpenObserveとは、OSS(オープンソースソフトウェア)のオブザーバビリティのログ管理ソフトウェアである。 OpenObserveの特徴として、ダッシュボードでログの管理を行うことができ、検索性にも優れている。ログを受信・保存することを目的としたシステムに利用することができ、高い圧縮率でデータを保管するため、大量のログを保管する必要がある場合に適している。
Zabbix
Zabbixとは、サーバ、ネットワーク、アプリケーションを集中監視するためのOSS統合監視ソフトウェアである。オープンソースの監視ツールとしては知名度も高く、Webインターフェースから設定が可能なため設定が容易であり、それによりエンジニアが管理する負担を効率よく軽減できることから、世界的に人気のソフトウェアである。
Prometheus
Prometheusとは、サーバのアクセス状況などシステムの動的な負荷を管理するOSSのシステムである。Prometheusは、監視対象の数が多い場合や、動的に監視対象が変化するような動的な環境でのリソース監視に適しており、Windows、Linuxをはじめ多様なOSでそのシステムを作動させることができる。
なお、ZabbixとPrometheusは、オブザーバビリティに一部は対応しているが、新しい監視の概念には対応していない。
デージーネットでの取り組み
デージーネットでは、オープンソースソフトウェアの監視ツールやログ管理ツールを活用し、オブザーバビリティを実現するソリューションを提供している。お客様の要望に合わせ、最適なシステムやシステム構成を提案し、管理者やユーザーが使いやすいサーバーの構築を実現している。大規模なシステムの場合には、お客様のリクエストに合わせ冗長化構成を提案し、可用性に特化したシステムが停止せず、継続して使い続けられるサーバーを提供している。その他に、オブザーバービリティとして活用できるオープンソースソフトウェアの調査、検証を行い調査報告書として公開している。
【カテゴリ】:ビッグデータ  ネットワーク  システム監視  
【Webセミナー】自社でOSSを採用しよう!今更聞けないOSSの基本セミナー
日程: | 11月22日(金)Webセミナー「BigBlueButton」を使用します。 |
内容: | OSSを導入したいけど、どこから手をつければいいかわからない方必見! |
ご興味のあるかたはぜひご参加ください。 |