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

Simple Log Service:インデックスの作成

最終更新日:Jan 15, 2025

Logstoreで収集されたログを照会および分析する場合は、Logstoreのインデックスを作成する必要があります。 このトピックでは、Simple Log Serviceでサポートされているインデックスの定義、タイプ、および課金について説明します。 このトピックでは、インデックスを作成してインデックス機能を無効にする方法についても説明し、インデックス作成の例を示します。

インデックスを作成する必要があるのはなぜですか?

ほとんどの場合、キーワードを使用して生ログからデータを照会できます。 たとえば、curlキーワードを含むcurl/7.74.0ログを取得します。 ログ分割が実行されない場合、ログは全体として考慮され、システムはログをcurlキーワードに関連付けません。 この場合、Simple Log Serviceでログを取得できません。

ログを検索するには、ログを別々の検索可能な単語に分割する必要があります。 区切り文字を使用してログを分割できます。 区切り文字は、ログが分割される位置を決定します。 この例では、次の区切り文字を使用して前のログを分割できます。\n\t\r,;[]{}()&^ *#@ ~ =<>/\?: '" ログはカール7.74.0に分割されます。 Simple Log Serviceは、ログ分割後に取得された単語に基づいてインデックスを作成します。 インデックスが作成されたら、ログを照会および分析できます。

Simple Log Serviceは、フルテキストインデックスとフィールドインデックスをサポートしています。 フルテキストインデックスとフィールドインデックスの両方を作成する場合、フィールドインデックスが優先されます。

インデックスタイプ

フルテキストインデックス

Simple Log Serviceは、区切り文字を使用して、ログをTEXTタイプの複数の単語に分割します。 フルテキストインデックスを作成した後、キーワードを使用してログを照会できます。 たとえば、ChromeまたはSafariの検索文に基づいて、ChromeまたはSafariを含むログを照会できます。

重要
  • 中国語のコンテンツは、区切り文字を使用して分割できません。 ただし、中国語のコンテンツを分割する場合は、Include Chineseをオンにすることができます。 その後、Simple Log Serviceは、中国語の文法に基づいて中国語のコンテンツを自動的に分割します。

  • Logstoreにフルテキストインデックスのみを作成する場合は、フルテキスト検索構文のみを使用してクエリ条件を指定できます。 詳細については、「クエリ構文と関数」をご参照ください。

フィールドインデックス

Simple Log Serviceは、フィールド名でログを区別し、区切り文字を使用してフィールドを分割します。 サポートされているフィールドタイプは、TEXTLONGDOUBLEJSONです。 詳細については、「データ型」をご参照ください。 フィールドインデックスを作成した後、key:value形式でフィールド名とフィールド値を指定してログを照会できます。 SELECTステートメントを使用してログを照会することもできます。 詳細については、「フィールド固有の検索」をご参照ください。

重要
  • フィールドをクエリおよび分析する場合は、フィールドインデックスを作成し、SELECTステートメントを使用する必要があります。 フィールドインデックスは、フルテキストインデックスよりも優先度が高くなります。 フルテキストインデックスとフィールドインデックスの両方を作成する場合、フィールドインデックスが優先されます。

  • TEXTタイプのフィールド: 全文ベースの検索文、フィールドベースの検索文、および分析文を使用して、データを照会および分析できます。 分析ステートメントには、SELECTステートメントが含まれます。

    • フルテキストインデックスが有効になっていない場合、フルテキストベースの検索文は、textタイプのすべてのフィールドからデータを照会します。

    • フルテキストインデックスが有効になっている場合、フルテキストベースの検索文はすべてのログからデータを照会します。

  • LONG型またはDOUBLE型のフィールド: フィールドベースの検索ステートメントと分析ステートメントを使用して、データを照会および分析できます。 分析ステートメントには、SELECTステートメントが含まれます。

インデックスの作成

重要
  • クエリと分析の結果は、インデックスの構成によって異なります。 ビジネス要件に基づいてインデックスを作成する必要があります。 インデックスの作成後、インデックスは約1分以内に有効になります。

  • 新しいインデックスは、新しいログに対してのみ有効です。 履歴ログをクエリするには、ログのインデックスを再作成する必要があります。 詳細については、「Logstoreのログの再インデックス」をご参照ください。

  • Simple Log Serviceは、特定の予約フィールドのインデックスを自動的に作成します。 詳細については、「予約フィールド」をご参照ください。

    Simple Log Serviceは、__topic__ および __source__ の予約フィールドのインデックスを作成するときに、区切り文字を空のままにします。 したがって、2つのフィールドをクエリするキーワードを指定する場合、完全一致のみがサポートされます。

  • __tag__ というプレフィックスが付いたフィールドは、フルテキストインデックスをサポートしていません。 __tag ___というプレフィックスが付いたフィールドをクエリおよび分析する場合は、フィールドインデックスを作成する必要があります。 サンプルクエリ文: * | select "__tag __:__ receive_time__"

  • request_timeなど、同じ名前の2つのフィールドがログに含まれている場合、Simple log Serviceはいずれかのフィールドをrequest_time_0として表示します。 2つのフィールドは、Simple Log Serviceにrequest_timeとして保存されます。 フィールドのインデックスのクエリ、分析、出荷、変換、または作成を行う場合は、request_timeを使用する必要があります。

コンソール

  1. Simple Log Serviceコンソールにログインします。

  2. [プロジェクト] セクションで、管理するプロジェクトをクリックします。

  3. [ログストレージ] > [ログストア] タブで、管理するログストアをクリックします。

  4. Logstoreの [クエリと分析] ページで、[有効化] をクリックします。

    説明

    [有効] をクリックしてから約1分後に最新のデータを照会できます。

    image

  5. 必要に応じて、 自動更新をオフにします。

    Logstoreがクラウドサービス専用のLogstoreまたは内部Logstoreである場合、自動更新は自動的にオンになります。 この場合、Logstoreの組み込みインデックスは自動的に最新バージョンに更新されます。 上記のシナリオでインデックスを作成する場合は、[検索と分析] パネルで [自動更新] をオフにします。

    警告

    クラウドサービス専用のLogstoreのインデックスを削除すると、Logstoreで有効になっているレポートやアラートなどの機能が影響を受ける可能性があります。

    自动更新索引

  6. インデックスを作成します。

    フルテキストインデックスの作成

    [有効化] をクリックすると、[フルテキストインデックス] が自動的にオンになります。 ビジネス要件に基づいて、LogReduce大文字小文字の区別、および中国語を含めるをオンにできます。 デフォルトの区切り文字またはカスタムの区切り文字を使用できます。

    下表に、各パラメーターを説明します。

    image

    Parameters

    パラメーター

    説明

    LogReduce

    LogReduceをオンにすると、Simple Log Serviceは収集中に非常に類似したテキストログを自動的にクラスター化し、ログからパターンを抽出します。 このようにして、ログを包括的に理解することができます。 詳細は、「LogReduce」をご参照ください。

    大文字と小文字

    検索が大文字と小文字を区別するかどうかを指定します。

    • 大文字と小文字を区別するをオンにすると、検索は大文字と小文字を区別します。 たとえば、ログにinternalErrorが含まれている場合、internalErrorキーワードのみを使用してログを検索できます。

    • 大文字と小文字の区別をオフにすると、検索は大文字と小文字を区別しません。 たとえば、ログにinternalErrorが含まれている場合、INTERNALERRORまたはinternalerrorキーワードを使用してログを検索できます。

    中国語を含める

    検索で中国語コンテンツと英語コンテンツを区別するかどうかを指定します。

    • [中国語を含める] をオンにしてログに漢字が含まれている場合、中国語のコンテンツは中国語の文法に基づいて分割されます。 英語のコンテンツは、指定された区切り文字を使用して分割されます。

      重要

      中国語のコンテンツが分割されると、書き込み速度が低下します。 作業は慎重に行ってください。

    • [中国語を含める] をオフにすると、ログのすべてのコンテンツが指定された区切り文字を使用して分割されます。

    デリミタ

    ログの内容を複数の単語に分割するために使用される区切り文字。 デフォルトでは、Simple Log Serviceは, '";=()[]{}?@&<>/:\n\t\rの区切り文字を使用します。 デフォルトの区切り文字がビジネス要件を満たしていない場合は、カスタム区切り文字を指定できます。 すべてのASCIIコードを区切り文字として指定できます。

    Delimiterを空のままにすると、Simple Log Serviceはログ全体を全体として考慮します。 この場合、完全な文字列を使用するか、ファジーマッチを実行することによってのみ、ログを検索できます。

    たとえば、ログの内容は /url/pic/abc.gifです。

    • 区切り文字を指定しない場合、ログの内容は単一の単語 /url/pic/abc.gifと見なされます。 ログを検索するには、/url/pic/abc.gifキーワードを使用するか、/url/pic/* を使用してファジーマッチを実行します。

    • 区切り文字をスラッシュ (/) に設定すると、ログの内容はurlpicabc.gifの3つの単語に分割されます。 urlabc.gif、または /url/pic/abc.gifキーワードを使用してログを検索するか、pi * を使用してファジーマッチを実行します。

    • Delimiterパラメーターをスラッシュ (/) とピリオド (.) に設定すると、ログの内容はurlpicabcgifの4つの単語に分割されます。 上記のいずれかの単語を使用するか、またはファジーマッチを実行して、ログを検索できます。

    フィールドインデックスの作成

    [有効にする] をクリックした後、検索と分析パネルで [自動インデックス生成] をクリックします。 Simple Log Serviceは、データ収集のプレビュー結果の最初のログに基づいて、フィールドインデックスを自動的に生成します。 カスタムフィールドインデックスを作成する場合は、プラス記号 (+) をクリックします。 詳細は、「パラメーター」をご参照ください。

    初めて検索と分析パネルを開くと、次の設定が表示されます。image

    下表に、各パラメーターを説明します。

    image

    Parameters

    パラメーター

    説明

    フィールド名

    ログフィールドの名前。 例: client_ip

    名前には、英数字、およびアンダースコア (_) のみを使用できます。 文字またはアンダースコア (_) で始まる必要があります。

    重要
    • パブリックIPアドレスやUNIXタイムスタンプなど、__tag__ フィールドのインデックスを作成する場合は、フィールド名パラメーターを __tag __: KEY形式の値に設定する必要があります。 例: __tag __:__ receive_time__ 詳細については、「予約済みフィールド」をご参照ください。

    • __tag__ フィールドは数値インデックスをサポートしません。 __tag__ フィールドのインデックスを作成するときは、Typeパラメーターをtextに設定する必要があります。

    タイプ

    フィールド値のデータ型。 有効な値: textlongdoublejson。 詳細については、「データ型」をご参照ください。

    フィールドのデータ型をlongまたはdoubleに設定した場合、フィールドに大文字小文字の区別Include Chinese、またはDelimiterパラメーターを設定できません。

    エイリアス

    フィールドのエイリアスを設定します。 たとえば、client_ipフィールドのエイリアスをipに設定できます。

    エイリアスには、英数字、およびアンダースコア (_) のみを使用できます。 文字またはアンダースコア (_) で始まる必要があります。

    重要

    フィールドのエイリアスは、分析ステートメントでのみ使用できます。 検索文でフィールドの元の名前を使用する必要があります。 分析ステートメントには、SELECTステートメントが含まれます。 詳細については、「列エイリアス」をご参照ください。

    大文字と小文字

    検索が大文字と小文字を区別するかどうかを指定します。

    • 大文字と小文字を区別するをオンにすると、検索は大文字と小文字を区別します。 たとえば、ログにinternalErrorが含まれている場合、internalErrorキーワードのみを使用してログを検索できます。

    • 大文字と小文字の区別をオフにすると、検索は大文字と小文字を区別しません。 たとえば、ログにinternalErrorが含まれている場合、INTERNALERRORまたはinternalerrorキーワードを使用してログを検索できます。

    デリミタ

    ログの内容を複数の単語に分割するために使用される区切り文字。 デフォルトでは、Simple Log Serviceは, '";=()[]{}?@&<>/:\n\t\rの区切り文字を使用します。 デフォルトの区切り文字がビジネス要件を満たしていない場合は、カスタム区切り文字を指定できます。 すべてのASCIIコードを区切り文字として指定できます。

    Delimiterを空のままにすると、Simple Log Serviceはログ全体を全体として考慮します。 この場合、完全な文字列を使用するか、ファジーマッチを実行することによってのみ、ログを検索できます。

    たとえば、ログの内容は /url/pic/abc.gifです。

    • 区切り文字を指定しない場合、ログの内容は単一の単語 /url/pic/abc.gifと見なされます。 ログを検索するには、/url/pic/abc.gifキーワードを使用するか、/url/pic/* を使用してファジーマッチを実行します。

    • 区切り文字をスラッシュ (/) に設定すると、ログの内容はurlpicabc.gifの3つの単語に分割されます。 urlabc.gif、または /url/pic/abc.gifキーワードを使用してログを検索するか、pi * を使用してファジーマッチを実行します。

    • Delimiterパラメーターをスラッシュ (/) とピリオド (.) に設定すると、ログの内容はurlpicabcgifの4つの単語に分割されます。 上記のいずれかの単語を使用するか、またはファジーマッチを実行して、ログを検索できます。

    中国語を含める

    検索で中国語コンテンツと英語コンテンツを区別するかどうかを指定します。

    • [中国語を含める] をオンにしてログに漢字が含まれている場合、中国語のコンテンツは中国語の文法に基づいて分割されます。 英語のコンテンツは、指定された区切り文字を使用して分割されます。

      重要

      中国語のコンテンツが分割されると、書き込み速度が低下します。 作業は慎重に行ってください。

    • [中国語を含める] をオフにすると、ログのすべてのコンテンツが指定された区切り文字を使用して分割されます。

    分析の有効化

    フィールドの [分析の有効化] をオンにした場合にのみ、フィールドの統計分析を実行できます。

  7. 必要に応じて、 フィールド値の最大長を指定します。

    デフォルトでは、SQL分析のプロセスで切り捨てられた後に文字列が取得されます。 分析用に保持できるフィールド値のデフォルトの最大長は2,048バイトで、これは2 KBに相当します。 [検索と分析] パネルの下部にある [最大統計フィールドの長さ] パラメーターの値を変更できます。 有効値: 64 ~ 16384 単位はバイトです。 新しいインデックスは、新しいログに対してのみ有効です。

    重要

    フィールド値の長さがこのパラメーターの値を超える場合、フィールド値は切り捨てられ、余分な部分は分析に関与しません。

    设置字段最大长度

API

Simple Log Serviceでは、API操作を呼び出してインデックスを管理できます。 詳細については、以下のトピックをご参照ください。

SDK

Simple Log Serviceでは、複数のプログラミング言語のSDKを使用してインデックスを管理できます。 次のセクションでは、一般的に使用されるSDKについて説明します。 詳細については、「Simple Log Service SDKの概要」をご参照ください。

Java

Simple Log Service SDK for Javaを使用してインデックスを管理できます。 詳細については、「Simple Log Service SDK For Javaを使用したインデックスの管理」をご参照ください。

Python

Simple Log Service SDK for Pythonを使用してインデックスを管理できます。 詳細については、「Simple Log Service SDK For Pythonを使用したインデックスの管理」をご参照ください。

Simple Log ServiceはAlibaba Cloud SDKとも互換性があります。 詳細については、「簡易ログService_SDK Center_Alibaba Cloud OpenAPI Explorer」をご参照ください。

CLI

Simple Log Service CLIを使用してインデックスを管理できます。 詳細については、以下のトピックをご参照ください。

インデックスの更新

手順

管理するLogstoreの [クエリと分析] ページで、[インデックス属性] > [属性] を選択します。 クエリと分析の結果は、インデックスの構成によって異なります。 ビジネス要件に基づいてインデックスを更新する必要があります。 インデックスが更新された後、新しいインデックスは約1分以内に有効になります。

image

インデックス作成機能の無効化

重要

Logstoreのインデックス作成機能を無効にすると、Logstoreのデータ保持期間が経過すると、履歴インデックスが占有しているストレージ領域が自動的に解放されます。

手順

管理するLogstoreの [クエリと分析] ページで、[インデックス属性] > [無効化] を選択します。

image

インデックス設定例

例 1

ログにはrequest_timeフィールドが含まれ、request_time>100フィールドベースの検索文が実行されます。

  • フルテキストインデックスのみを作成すると、request_time> 、および100を含むログが返されます。 より大きい記号 (>) は区切り文字ではありません。

  • フィールドインデックスのみが作成され、フィールドタイプがDOUBLEおよびLONGの場合、request_timeフィールド値が100を超えるログが返されます。

  • フルテキストインデックスとフィールドインデックスの両方が作成され、フィールドタイプがDOUBLEおよびLONGの場合、フルテキストインデックスはrequest_timeフィールドに対して有効にならず、request_timeフィールド値が100を超えるログが返されます。

例 2

ログにはrequest_timeフィールドが含まれ、request_time全文ベースの検索文が実行されます。

  • フィールドインデックスのみが作成され、フィールドタイプがDOUBLEおよびLONGの場合、ログは返されません。

  • フルテキストインデックスのみが作成された場合、request_timeフィールドを含むログが返されます。 この場合、ステートメントはすべてのログからデータを照会します。

  • フィールドインデックスのみが作成され、フィールドタイプがTEXTの場合、request_timeフィールドを含むログが返されます。 この場合、ステートメントはTEXT型のすべてのフィールドからデータを照会します。

例 3

ログにstatusフィールドが含まれ、* | SELECT status, count(*) AS PV GROUP BY statusクエリ文が実行されます。

  • フルテキストインデックスのみが作成された場合、ログは返されません。

  • statusフィールドにインデックスを作成すると、さまざまなステータスコードのページビュー (PV) の合計数が返されます。

インデックストラフィックの説明

フルテキストインデックス

すべてのフィールド名とフィールド値はテキストとして保存されます。 この場合、フィールド名とフィールド値の両方がインデックストラフィックの計算に含まれます。

フィールドインデックス

インデックストラフィックの計算に使用される方法は、フィールドのデータ型によって異なります。

  • TEXT型: フィールド名とフィールド値はどちらもインデックストラフィックの計算に含まれます。

  • LONGおよびDOUBLEタイプ: フィールド名はインデックストラフィックの計算に含まれません。 各フィールド値は、インデックストラフィックで8バイトとしてカウントされます。

    たとえば、LONG型のstatusフィールドにインデックスを作成し、フィールド値が200の場合、文字列statusはインデックストラフィックの計算に含まれず、200値はインデックストラフィックで8バイトとしてカウントされます。

  • JSON型: フィールド名とフィールド値はどちらもインデックストラフィックの計算に含まれます。 そこには、インデックス化されていないサブフィールドも含まれます。 詳細については、「」をご参照ください。インデックス化されていないJSONサブフィールドに対してインデックストラフィックが生成されるのはなぜですか?

    • サブフィールドがインデックスされていない場合、インデックストラフィックは、サブフィールドのデータタイプをTEXTとみなすことによって計算される。

    • サブフィールドがインデックス付けされている場合、インデックストラフィックは、サブフィールドのデータタイプに基づいて計算される。 データ型は、TEXTLONG、またはDOUBLEです。

課金の概要

従量課金データ課金モードを使用するログストア

従量課金モードを使用するログストア

  • インデックスはストレージスペースを占有します。 ストレージタイプの詳細については、「インテリジェント階層ストレージの設定」をご参照ください。

  • インデックスを作成すると、トラフィックが生成されます。 クエリログストア項目のログデータのインデックストラフィックとログデータのインデックストラフィックに基づいて、インデックストラフィックに対して課金されます。 詳細については、「機能課金の課金項目」をご参照ください。 インデックストラフィックを削減する方法の詳細については、インデックスのトラフィック料金を削減するにはどうすればよいですか? をご参照ください。

  • インデックスの再作成は料金を生成します。 インデックスの再作成中に、インデックスの作成時と同じ請求可能なアイテムと価格に基づいて課金されます。

次のステップ

よくある質問