Redisを使用してログ分析を強化するアプリケーションを構築する方法
ITインフラストラクチャのサイズが大きくなり、複雑になるにつれて、すべてが適切に管理されていることを確認するために、より多くの注意を払わなければならない場合があります。
クラウドの台頭以来、これは特に関連性が高くなっています。これは、現在、多くの異なる場所に豊富な技術情報が分散していることを考えるとです。
しかし、包括的なログ分析を実行できるようになることは、退屈で、時間がかかり、非常に退屈なものになる可能性があります。
この負担から自分を解放するためのシンプルで効果的な方法は、ログの監視を容易にするように設計されたソフトウェアまたはアプリケーションを使用することです。これは、AlexisGardinが彼のアプリケーションであるLogubで行ったこととまったく同じです。
他の多くのSaaSソリューションとは異なり、Logubはこれらのアクションをオンプレミスおよびオープンソースで実行できます。以下の手順に従うことで、アプリケーションログを収集、調査、分析するアプリケーションを作成できます。
このアプリケーションの中心は、比類のない効率でさまざまな場所のログを探索および分析するRediSearchの機能への依存でした。 Alexisがこのアプリケーションをどのようにまとめたかを見てみましょう。
ただし、詳しく説明する前に、RedisLaunchpadでチェックアウトできるエキサイティングなアプリケーションも用意されていることをお知らせください。
- 何を構築しますか?
- 何が必要ですか?
- アーキテクチャ
- はじめに
- データの保存方法
- データのクエリ方法
- 検索バーはどのように機能しますか?
- Logubをプロジェクトに統合する方法は?
- 結論
1。 何を構築しますか?
ログアプリケーションを収集、分析、探索するために、Redisを利用した特別なアプリを作成します。以下の手順では、このアプリケーションを構築するために必要なものと、必要なコンポーネントについてA〜Zを説明します。
Redisを初めて使用する場合でも、この強力なデータベースを理解する方法を正確に説明します。始める準備はできていますか?
さて、まっすぐ飛び込みましょう。
2。 何が必要ですか?
- Fluentd : ログを処理するためのクロスプラットフォームのオープンソースデータ収集ソフトウェアとして使用されます。
- Fluent用のRedis出力プラグイン: fluent-plugin-redisは、redisに出力するための流暢なプラグインです。RediSearch:
- ドッカー : 開発者がアプリケーションをコンテナにパッケージ化するためのプラットフォームとして使用されます。
- Dockerの作成 : マルチコンテナDockerアプリケーションの定義と実行に使用されます。
3。 アーキテクチャ
ログが表示されるまでに1分ほどかかる場合があります。右側のサイドバーでログをフィルタリングすると、ページのログを表示できます。または、上部の検索バーからフィルターまたは全文クエリで検索します。ログをクリックすると、詳細が表示され、ビジネスプロパティのインデックスを作成するオプションが表示されます。これらのビジネスプロパティは、後でフィルターとして使用できます。
メインページに戻ると、生成したばかりのログを検索してみることができます。注: コンテナでのログの生成とLogubでの表示の間には、約1分の待ち時間があります。この遅延は、ログを収集、フォーマット、およびデータベースに取り込むプロセスが原因で発生します。
5。 どのように機能しますか?
データの保存方法
データはFluentdRedisプラグインを使用して保存されます。各ログをHSETとともに保存します。例:HSETレベルのDEBUGメッセージ「HelloWorld」スレッドメイン
データのクエリ方法
これは、ログを操作してRedisから取得するために使用するオブジェクトです。このアクションを実行すると、LogubUIでログを表示できるようになります。ログに複雑なクエリを作成するには、RediSearchを使用できます。
RediSearchスキーマを動的に変更できるため、「リスト」データ構造を使用して、インデックスが作成されているスキーマを追跡できます。
上記のコマンドを使用すると、ユーザー入力に基づいてプレーンテキストのRediSearchクエリを作成できます。 RediSearchライブラリの上に構築された小さなQueryBuilderがたくさんあります。これは、ログで包括的かつ効率的な検索を実行するためにLogubUIによって送信されるのと同じコマンドです。
ステップ2:検索バーの操作方法
タグによる検索または全文検索が可能です。以下は、行き詰まった場合にモデルとして使用できるいくつかの例です。
- env:dev Ut ea vero voluptate *は、開発環境内のすべてのログを検索し、Ut eaverovoluptateで始まるメッセージを表示します
- -env:prod Ut ea vero voluptate *は、Ut ea vero voluptateで始まるメッセージを含むprodを除く、すべての環境のすべてのログを検索します
- originRequest:France originRequest:USAは、フランスまたは米国に値が設定されたフィールドoriginRequestを持つすべてのログを検索します
- 「dog」「cat」は、「dog」と「cat」という単語を含むすべてのログを検索します
- -「dog」「cat」は、「dog」を含まないが「cat」を含むすべてのログを検索します
アプリで優れたテスト体験をするために、遊び場で独自のログを作成し、ビジネスプロパティを追加してから、実験を行って、その感触をつかむことを強くお勧めします。
ステップ3:Logubをプロジェクトに統合する方法
Logubを操作するには、以下のDockerイメージのリストが必要です。
- ログを収集してRedisに送信するLogubFluentdイメージ– Logub Fluentd Image
- RediSearchモジュールRedisModImageを使用したRedis画像
- ログ探索機能を提供するLogubコントローラーイメージ–LogubContollerイメージ
- ログを探索およびクエリするためのログUI–ログUIイメージ
ログログ形式
今のところ、Logubは特定のログ形式を1つだけ処理できます。将来的には、この形式は拡張され、よりカスタマイズ可能になります。
これがLogub形式です
これらのフィールドは必須ではないことに注意してください。
ビジネスプロパティを追加する場合は、「mdc」をキーとして持つネストされたJSONオブジェクトを追加する必要があります。例:
Logubでのログの公開
Loghubでログを探索するには、コンテナーでDockerFluentdログドライバーを使用する必要があります。これが顧客統合の構成例です。
ステップ4:LogubでRedisを設定する
RediSearch
Logubは、RediSearchの機能を使用してアプリケーションログを処理します。ログがRedisデータベースに保持される場合、ログには3種類のフィールドが付随します。
- システムプロパティ: DockerとFluentdがログを送信するときに提供する情報です(環境、コンテナー名など)。
- 基本的なプロパティ: ログに含まれる基本情報(タイムスタンプ、サービスなど)です。これらのプロパティは、RediSearchで自動的にインデックスが作成されます。
- ビジネスプロパティ: logubユーザーが特定のフィールドに指定します。ここでのユーザーは、Key-Value(マップ)形式を尊重する必要があります。 RediSearchの高度な機能のおかげで、これらの「ビジネスプロパティ」について調査したい場合は、これらの「ビジネスプロパティ」にインデックスを付けることができます。
ここに、Fluentdがフラット化してRedisデータベースに保持されたときにツールがどのように機能するかを説明するログの例があります。 Logub APIを使用すると、ユーザーまたは会社はmdcオブジェクトの1つまたはすべてのフィールドにインデックスを付けることができます。
このプロジェクトでは、タグデータ型 広く使用されています。多くの場合、ログは、ログを検索するときにビジネスプロパティに基づいて検索されます(顧客IDなど)。さらに、TextFieldデータ型も使用します ログメッセージ用。これにより、ユーザーはこのフィールドで全文検索を実行できます。
検索プロセスの簡略化されたスキーマは次のとおりです。
ユーザーがインデックスフィールドを追跡するために、リストタイプを使用する「スキーマ」オブジェクトを追加することもできます。 Redisの。 このアプリケーションを作成したのは誰ですか?アレクシスガーディン
Alexisは、現在Zendocで働いている革新的なソフトウェアエンジニアです。彼のGitHubページにアクセスして、彼が関わっている他のプロジェクトを確認してください。
-
PC で iOS アプリを実行する方法
この記事では、PC で iOS アプリを実行する方法について説明します。すべての iPhone は高価であり、ほとんどの iPhone を購入する余裕がないことを知っている必要があります。 iPhone には、誰もが使いたくなる最高のアプリケーションがいくつか用意されています。 iPhoneは高いからといって、体験できない人がほとんどです。しかし今では、iPhone を購入しなくても、誰もがこれらのアプリを体験できます。どうすればできますか? iOS アプリケーションを使用するには、PC にエミュレータ アプリケーションが必要です。したがって、エミュレーターは、PC で iOS アプリを体験す
-
Power Automate を使用して Microsoft Teams のステータスを更新する方法
Microsoft Teams の状態を自動的に設定する機能は、勤務時間を分割するのに役立つため、自宅で仕事をしているときに PC に縛られていると感じることはありません。もちろん、いつでも Microsoft Teams にアクセスして自分のステータスを手動で変更できますが、アプリを開かずに Microsoft Teams のステータスを変更できる機能があればもっと良いと思いませんか? Microsoft 365 向けに構築された Power Automate を使用すると、自動化によってタスクとワークフローが合理化され、時間を節約できます。ワークフローや「フロー」を作成または自動化したこ