OpenObserve〜オブザーバビリティのログ管理ソフト〜
オブザーバビリティ(Observability)とは、Observe (観察する)+ Ability (能力) という2つの単語を組み合わせた意味の言葉であり、取得したデータから、システム内部の状態を正確に、迅速に把握することや、それを実現する方法をいいます。その他に、オブザーバビリティは、日本語では「可観測性」とも訳されています。オブザーバビリティツールは、従来の監視ツールに比べてシステムを観察する能力をより高めた監視ツールを指します。スケーラブルなシステムの運用体制が進むにつれてシステムが複雑化したことで、単一のログや測定値だけではシステム全体を把握することが困難になり、注目されているツールです。OpenObserveはログ、メトリクス、トレース監視を効率化できるオブザーバビリティツールの一つです。ここでは、オープンソースソフトウェアのオブザーバビリティのログ管理ソフトウェアOpenObserveについて紹介します。
OpenObserveとは
OpenObserveとは、Zinc labsによって提供されているログの全文検索エンジンとフロントエンドUIを兼ね備えたログ管理ソフトウェアです。OpenObserveは、ElasticsearchやSplunkやDatadogを意識して開発されています。オープンソースソフトウェアとして公開されている他に、すぐに利用が始められるクラウドサービスとしても提供されています。
OpenObserveは、Elasticsearchと互換性があり、既存のElasticsearchツールとクエリを引き続き使用することが可能です。OpenObserveのGitHubのページや公式のサイトでは、「10x easier, 140x lower storage cost, high performance, petabyte scale engine for logs, metrics and traces」とかかれており、「OpenObserveは、簡単に設定でき、140 倍のストレージコスト効率や高パフォーマンスを持っている」と謳われています。そのため、他のソフトウェアと比べ、ストレージ効率が良いというメリットがあります。また、OpenObserveは、1つのファイルでデータベース・全文検索エンジン・WEB UIなど、複数の機能を持つソフトウェアを実現することができます。
OpenObserveの特徴
OpenObserveの特徴は以下になります。
高いデータ圧縮率
OpenObserveは、ログを保存する場合に、フィールド分解してJSON形式で保存します。今回、2023 年7月にデージーネットで調査したところ、データを元のデータから約18分の1のサイズに圧縮して保存できるという結果になり高いデータ圧縮率があることがわかりました。
ログを素早く検索
単一のダッシュボードからログ、メトリクス、トレースをすばやく確認することが可能です。専用のインターフェイスを使用して、サーバ、仮想マシン、コンテナを可視化することができます。
高い柔軟性
OpenObserveは、メモリサイズを超えてもディスクから検索が可能な柔軟性があります。OpenObserveの検索は、日付またはパーティションキーによって、ストレージレベルでの絞り込みが行われ、その後はファイル内を検索する動作をします。そしてファイルを検索する場合、ファイルサイズがメモリ上限に収まればメモリで処理をする、という動きになります。しかし、上限を超えた場合でもプログラムが停止するなど問題は起こらず、メモリとディスクを上手く使い分けて処理が行われます。
OpenObserve利用ケース
ログを受信・保存することを目的としたシステムに利用することが可能です。高い圧縮率でデータを保管するため、大量のログを保管する必要がある場合に適しています。OSSのログ管理ソフトウェアであるGraylogなどでは、1CPUコアあたりの受信性能が限られているため、CPUコストもかかりますが、OpenObserveでは、あまりコストをかけず利用することが可能です。
OpenObserveの機能
OpenObserveには、以下の機能があります。
ログデータの入力
OpenObserveには、JSON形式でデータ登録ができるHTTPを使ったデータの取り込みインタフェースが用意されています。しかし、既存の入力インタフェースの動作を考慮しつつデータ登録を行うのは、比較的難しい作業になります。そのため、OpenObserveは、複数のデータシッパーからログを入力することができます。
以下の6つのデータジッパーからログを入力することが可能です。
|
|
ログの検索
キーワードによる全文検索や、フィールドの値、時間帯での絞り込み検索を行うことが可能です。キーワードやフィールドの検索は、独自のSQLによる特殊なクエリ構文を用いて検索を行います。検索結果をクリックすると、該当のログの詳細を確認することができ、JSON形式の元のデータも確認が可能です。
ダッシュボード
ログをグラフ化してダッシュボードとして登録することができます。以下の図は、いくつかのグラフを登録したダッシュボードの例です。ダッシュボードでは、検索時間帯を変更して情報の参照を行えます。
以下のような表現が用意されており、様々な種類から選択が可能です。
|
|
ログ監視
ログを監視してアラートを送信する機能があります。アラートは、HTTPリクエストとして実行が可能です。監視設定をする際には、HTTPリクエストの本文や監視の送信先、監視条件を定義します。アラートの条件では、監視方式やアラートの期間や頻度、1度アラートが発生した後の次のアラートまでの時間などを設定することができます。
データの解析・フィールド分解
OpenObserveは、ファンクションという機能でVRLと呼ばれるデータ解析用のプログラム言語を使って、受け取ったデータの解析やフィールド分解を行うことができます。例えば、サーバのアクセス ログをVRLを利用して解析することなどが可能です。
ユーザ管理
OpenObserveは、複数のユーザで利用することが可能です。管理者と一般ユーザで権限の違いがありますが、その違いは、ユーザを追加する権限を持つかどうかであり、一般ユーザでもほぼすべての機能が利用可能です。そのため、現状はデータの参照権限を分けるなどの運用を行うことができません。
ログの管理
OpenObserveは、Streamという単位でログを管理します。単位ごとに全文検索の対象にするか否かを設定することが可能です。そして、Stream毎にログの保存期間を決めることができ、設定した日数を過ぎた場合、自動的にログは削除されます。
Observabilityの仕様
オブザーバービリティ(Observability)ツールは、システムの状態を観測するためにオブザーバービリティを標準化している仕様をもとに生成されています。これをOpenTelemetryといいます。OpenTelemetryは、CNCF(Cloud Native Computing Foundation) が管理するプロジェクトのひとつで、オブザーバービリティ標準仕様を策定しています。また仕様に基づいたプログラム実装やエージェントツールを提供しています。OpenTelemetryは、機能として、データの収集・整形・エクスポートを行います。ここで収集されたデータを、OpenObserveで受け取り、可視化することができます。
デージーネットの取り組み
弊社では、OpenObserveの性能検証やログ管理システムのGraylogとの比較検証を行いました。結果はOpenObserve調査報告書に掲載しています。この結果を踏まえ、OpenObserveは、コストを抑えたログ保存のシステムとして提案できることがわかりました。弊社では、その他に、ZabbixやPrometheusなど様々な監視システムの提供を行っています。今後は、これらの監視ソフトウェアを含むITソリューションを利用してお客様のシステム要件やご要望に合わせ比較し、より便利で適切なログ管理システムや監視システムの提案を行っていきます。
「情報の一覧」
OpenObserve調査報告書
この記事は、ログ管理ソフトウェアOpenObserveついて調べた内容を整理して書いたものです。目次を参考に、機能や性能検証など、導入の検討の時にはぜひご確認ください。インストールからログインまでの作業も解説しています。