すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:ログストア間のログの照会と分析

最終更新日:Dec 13, 2024

Storeviewsを使用すると、複数のLogstoreまたはMetricstoreにわたるログに対してJOINクエリと分析を実行できます。 このトピックでは、LogstoreのStoreviewを作成し、LogstoreのStoreviewでログを照会および分析する方法について説明します。

LogstoreのStoreviewを作成する

前提条件

プロジェクトと標準のログストアがSimple Log Serviceで作成され、ログが収集されます。 詳細については、参照プロジェクトの作成,Logstoreの作成、およびログの収集.

手順

  1. Simple Log Serviceコンソールにログインします。 [プロジェクト] セクションで、管理するプロジェクトをクリックします。

  2. 左側のナビゲーションウィンドウで、[Storeview] > [Storeview for Logstore] を選択します。 表示されるページで、[今すぐ作成] またはimageアイコンをクリックして、LogstoreのStoreviewを作成します。

    image

  3. [Storeviewの作成] ダイアログボックスで、[Storeview Name] パラメーターを設定し、Storeviewに関連付けるLogstoreを追加して、[OK] をクリックします。 Storeviewを作成するには約1分かかります。 image

    説明
    • Simple Log Serviceプロジェクトごとに最大10個のLogstoreを作成できます。

    • Storeview for Logstoreに最大50個のLogstoreを関連付けることができます。

    • Storeview for Logstore内のすべてのLogstoreは、同じAlibaba Cloudアカウントに属している必要があります。

    警告

    国境を越えたJOINクエリが必要な場合は、「国境を越えたデータ転送のコンプライアンス保証」を読んで同意する必要があります。 [OK] をクリックします。

ログクエリ

LogstoreのStoreviewは、クロスLogstoreクエリをサポートしています。 たとえば、logstore-1やlogstore-2などの2つのLogstoreは、Storeview For Logstoreに関連付けられ、フィールドaを含みます。 * | select a from log where a > 1文を指定した場合、logstore-1およびlogstore-2が1より大きいフィールドaの値が返されます。

キーワードを使用して、2つのLogstoreを含むStoreview for Logstoreのログを照会し、Logstoreのログ内容が同じである場合、異なるLogstoreの結果が返されます。 タグフィールドを使用して、ログのソースLogstoreを識別できます。

image

ログ分析

LogstoreのStoreviewは、Logstore間のデータ集約と統計分析をサポートします。 たとえば、logstore-1やlogstore-2などの2つのLogstoreは、LogstoreのStoreviewに関連付けられ、フィールドaを含みます。 * | select a, count(1) group by aステートメントを指定すると、logstore-1とlogstore-2のフィールドaの値の総数が返されます。

集計分析では、フィールドキーは一貫している必要があります。 ログの内容が同じでキー名が異なる場合は、事前定義機能を使用して特定のデータをフィルタリングし、フィールドの名前を変更できます。 たとえば、logstore-1のフィールドaとlogstore-2のフィールドbを集約する場合は、フィールドbの名前をaに変更する必要があります。

説明

LogstoreのStoreviewを作成するときに、Simple Log Service Processing Language (SPL) 構文に基づいて、LogstoreのStoreviewで関連するLogstoreを事前定義できます。 SPL構文は、事前定義機能を使用するときにextendwhereキーワードをサポートします。 事前定義機能を使用すると、特定のデータをフィルタリングし、集計分析で一貫性のないフィールド名の問題を解決できます。 集計分析では、フィールドキーが一貫している必要があります。 logstore-1のフィールドaとlogstore-2のフィールドbを集約する場合は、SPLステートメントでextend a = bを指定して、列名が一致するようにする必要があります。

次のシナリオを例として使用します。

  • シナリオ 1

    LogstoreのStoreviewは、同じサービスの異なるLogstoreに関連付けられています。 Logstoreの内容は同じです。 この場合、Logstoreのインデックス設定が同じかどうかを確認する必要があります。 たとえば、ログストアがフルテキストインデックスを使用するか、必須フィールドのインデックス設定が同じである場合などです。 次に、関連付けのためにLogstoreをStoreview for Logstoreに追加する必要があります。

    LogstoreのStoreviewを作成した後、SQL文を使用してLogstoreのStoreviewを分析できます。 次の図は、過去15分間のstatusパラメーターの値に基づいて、2つのログストアのすべてのログの集計結果を示しています。

    image

  • シナリオ 2

    LogstoreのStoreviewは、同じサービスの異なるLogstoreに関連付けられており、Logstoreのログフィールドの名前は異なります。 この場合、事前定義機能を使用し、フィールドに同じ名前を使用するようにSPLステートメントを指定できます。 次の図では、* | extend request_method = methodステートメントを指定して、methodフィールドの名前をrequest_methodに変更します。 [データのプレビュー] をクリックして、定義済みの結果データをプレビューします。

    image.png後続のクエリと分析でrequest_methodフィールドを使用できます。

    image.png

一般的なクエリと分析結果の例

シナリオの説明

Storeview作成時の事前定義済みクエリ

Storeviewクエリと分析ページへの入力クエリ

出力

logstore-1とlogstore-2にはキー列が含まれます。

なし

キー: 123

key:123を含む行が返されます。

logstore-1およびlogstore-2は、列aおよびbを含む。

なし

* | select a where b=1

条件b =1を満たすa列のすべての値が返されます。

logstore-1とlogstore-2には、列のキーとaが含まれます。

キー: 123

* | select a

条件key:123を満たすa列のすべての値が返されます。

logstore-1とlogstore-2には、列のキーとaが含まれます。

キー: 123 | ここでa>1

* | select a

key:123およびa > 1の条件を満たすa列のすべての値が返されます。

logstore-1とlogstore-2には、列のキーとaが含まれます。

キー: 123 | ここでa>1 | extend y=upper(a)

* | select *

y列を含め、条件を満たすすべての列が返されます。

logstore-1は列a、b、およびcを含み、logstore-2は列b、c、およびdを含む。

なし

select a,b,c,d

列a、b、c、dが返されます。 空の値はnullに設定されます。

logstore-1はインデックスフィールドaおよびbを有し、logstore-2はインデックスフィールドbおよびcを有する。

なし

a:*** およびb:*** | select a, count(1) group by a

logstore-2には列は含まれません。 logstore-1のデータのみが計算されます。

不整合の取り扱い

  • 同じクエリステートメントで2つのLogstoreに異なるフィールドタイプを指定した場合、クエリ結果を返すことができます。

  • 分析ステートメントで特定のストアのフィールドを指定した場合、指定したフィールドを含むストアの結果のみが返されます。

  • 複数のストア間のキーインデックス設定に一貫性がない場合、エラーが返され、結果は返されません。

関連ドキュメント

StoreViewを使用したログストア間のログの照会

次のAPI操作を使用して、Storeviewを管理できます。