解析可能なクラウドネイティブなログ監視を実現

解析可能なインラインv1bを備えたDockerクラウドネイティブの可観測性

可観測性とは、システムの出力からシステムの内部状態を理解する方法です。 これは、ログ、メトリック、トレースという 3 つの主要な指標に基づいています。 メトリックとトレースは数値であるため、グラフィックスを使用してそのデータを簡単に視覚化できます。 残念ながら、ログはテキストが重く、視覚化や観察が比較的困難です。 

データの種類とその基盤となる性質に関係なく、実用的なログデータは、問題を解決し、よりスマートなビジネス上の意思決定を行うのに役立ちます。 そして、それがパーサブルの出番です。

画像1

解析可能なものの紹介

SaaSの可観測性エコシステムは繁栄していますが、オープンソースの開発者向けの可観測性プラットフォームにはほとんどまたはまったく動きがありません。 それが私たちがパーサブルで対処しようとしていることです。 

Parseable は、ログデータの取り込みとクエリを行うために作成された オープンソースの開発者中心のプラットフォーム です。 効率的で使いやすく、柔軟性が高いように設計されています。 これを実現するために、Parseableはクラウドネイティブのコンテナ化されたアーキテクチャアプローチを使用して、シンプルで依存関係のないプラットフォームを作成します。 

具体的には、Parseableは内部で Apache ArrowParquet を使用して、ログデータとクエリを非常に高速で効率的に保存します。 S3 またはその他の互換性のあるストレージプラットフォームを使用して、ステートレスを維持しながらシームレスなストレージをサポートします。

解析可能なサーバーアーキテクチャを表示するグラフ。

解析可能なユニークな点は何ですか?

Parseableを他の可観測性プラットフォームと一線を画すいくつかのエキサイティングな機能を次に示します。

  • ログデータを照会するためのSQL互換APIを維持します。
  • Parquet オープン データ 形式は、完全なデータ所有権とデータ分析の幅広い可能性を可能にします。
  • 単一のバイナリおよびコンテナベースのデプロイモデル(UIを含む)により、数秒とは言わないまでも数分でデプロイできます。 
  • インデックス作成不要の設計は、インデックス付きシステムのパフォーマンスに匹敵すると同時に、CPU 使用率とストレージオーバーヘッドを低減します。 
  • これは、低遅延と高スループットでRustで書かれています。

解析可能はどのように機能しますか?

解析可能は、HTTP REST API エンドポイントを公開します。 これにより、Parseable サーバー上のログストリームの取り込み、クエリ、および管理が可能になります。 API には、次の 3 つの主要なカテゴリがあります。

  • ログストリームの作成、取り込み、管理
  • ログストリームのクエリと検索
  • 全体的な健康状態

API リファレンス情報と例は、 Postman の解析可能なパブリック ワークスペースで入手できます。

Parseableは、HTTP出力エージェントを介して、FluentBit、LogStash、Vector syslog などの標準のロギングエージェントと互換性があります。 また、ログのクエリと分析のための組み込みの直感的なGUIも提供します。

なぜ解析可能なDocker拡張機能を使用するのですか?

Docker拡張機能は、ソフトウェアアプリケーションを構築し、日常のワークフローに統合するのに役立ちます。 Parseable拡張機能では、Parseableをデプロイするためのシンプルなワンクリックアプローチを提供することを目指しています。 

拡張機能をインストールして実行すると、任意のログ エージェントから、または アプリケーション から直接 ログ を取り込むことができる、実行中の Parseable サーバーが作成されます。解析可能な UI にもアクセスできます。

全体として、Parseable拡張機能は、開発プラットフォームにより豊富なログ可観測性をもたらします。

解析可能の使用を開始する

前提 条件

Docker デスクトップにアクセスして、Docker 拡張機能が有効になっていることを確認します。 [設定]歯車>[拡張機能] タブをクリックし>[Docker拡張機能を有効にする]チェックボックスをオンにします。

Docker 拡張機能を使用した Docker デスクトップ拡張機能の設定と、有効な Docker 拡張機能システム コンテナーの表示。

解析可能な Docker 拡張機能のインストール

Parseableを拡張機能マーケットプレイスに導入するために取り組んでいますが、現在はCLIからダウンロードする必要があります。 ターミナルを起動し、次のコマンドを実行して GitHub リポジトリのクローンを作成し、解析可能な拡張機能をインストールします。

git clone https://github.com/parseablehq/parseable-docker-extension

cd parseable-docker-extension
make install-extension

解析可能な拡張機能は、Docker ダッシュボードの左側のサイドバーの [拡張機能] 見出しの下に表示されます。

解析可能の使用

ログイン資格情報と拡張機能の使用方法を詳述したDockerデスクトップの解析可能な拡張機能ページ。

Parseable では、初期セットアップ時に次の構成設定と環境変数を入力する必要があります。

  • ローカルポート番号(解析可能なリスニングに使用するポート番号)
  • ローカルストレージパス(解析可能なステージデータが格納されているコンテナ内のパス)
  • ローカル・ボリューム・パス (ローカル・ストレージ・パスがマウントされているパス)
  • S3/MinIO URL
  • S3/最小 IO バケット名
  • S3/最小IO アクセス キー
  • S3/最小IO 秘密鍵
  • S3/最小IO リージョン

必要なすべての構成の詳細を入力したら、[デプロイ] をクリックします。

必要な環境変数を表示する docker デスクトップの解析可能なユーザー インターフェイス。

拡張機能ウィンドウ内に URL http://localhost:8000 が表示されます。

解析可能なコンテナーの正常なデプロイを表示する Docker デスクトップ。

次に、Dockerデスクトップはブラウザのログインページにリダイレクトします。 資格情報は、[ログイン資格情報] セクションで指定したものと同じです (既定のユーザー/パスワード: 解析可能、解析可能)。

ユーザーに資格情報の追加を求める解析可能なログイン ページ。

ログインすると、ログストリームを選択するオプションを含むログページが表示されます。 拡張機能 UI に埋め込まれたデフォルトの MinIO バケットを使用した場合、一部のデモ データが既に存在します。 または、独自の S3 互換バケットを使用している場合は、Parseable API を使用してログストリーム を作成し 、ログ ストリームにログを送信します

完了したら、ログストリームとログが必要な時間範囲を選択できます。 フィルターや検索フィールドを追加することもできます。

フィルター、時間範囲、およびストリームオプションを提供する解析可能なログストリーム。

Parseable は現在、ラベル、メタデータ、および特定の列値によるデータ フィルター処理をサポートしています。 たとえば、列を選択し、その列の演算子または値を指定できます。 このフィルターに一致するログ データ行のみが表示されます。 複数列のデータ型をサポートすることで、これの改善に取り組んでいます。

詳細な列フィルターを含む解析可能なストリーム ログ。

このプロセス全体には約1分かかります。 実際の動作を確認するには、次のクイックウォークスルービデオをご覧ください。

今日解析可能をお試しください!

この投稿では、Parseableとその主な機能を簡単に紹介しました。また、拡張機能を使用して 1 回のクリックでローカルで実行する方法についても学習しました。 最後に、実行中の解析可能なインスタンスにログを取り込み、解析可能な UI を使用してそれらのログをクエリする方法について説明しました。 

しかし、今日、自分でParseableを試乗することができます! CLI ワークフローに従って、この拡張機能を直接インストールします。 さらに、拡張機能マーケットプレイスでのParseableの発売に注目してください—それは近日公開されます!

詳細については、 Slack の Parseable コミュニティに参加して、 リポジトリにスターを追加して情報を広めるのを手伝ってください。

この記事と、ログ データの取り込みとクエリに対するこの新しいアプローチを楽しんでいただけたでしょうか。 Docker 拡張機能を使用すると、このシングルクリック アプローチが可能になります。

解析可能な Docker 拡張機能に貢献する

私たちは、開発者とユーザーにとってParseableをより強力にすることに取り組んでいます—そして私たちは助けを必要としています! 解析可能な Docker 拡張機能 プロジェクトへの貢献者を積極的に探しています。 

現在のコードはシンプルで簡単に使い始めることができ、私たちは常に潜在的な貢献者に手を差し伸べるために周りにいます。 これは素晴らしい最初のプロジェクトになる可能性があるので、あなたのアイデアを自由に共有してください。