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

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

最終更新日:Sep 06, 2024

転置インデックスは、キーワードと論理ポインタで構成されるデータストレージ構造です。 論理ポインタは、実際のデータにマッピングすることができる。 キーワードを使用して、ログ内の特定のテキストのデータ行をすばやく見つけることができます。 インデックスはデータカタログに似ています。 インデックスを作成した後にのみ、ログをクエリおよび分析できます。 このトピックでは、Simple Log Serviceでサポートされているインデックスの定義と種類について説明します。 このトピックでは、インデックスの作成方法と例についても説明します。

前提条件

  • ログを分析する前に、標準ログストアにログを保存する必要があります。 詳細については、「データ収集の概要」および「Logstoreの管理」をご参照ください。

  • RAM (Resource Access Management) ユーザーを使用してインデックスを作成する場合は、RAMユーザーに必要な権限が付与されていることを確認してください。 権限を付与する方法の詳細については、「RAMユーザーへの権限付与」をご参照ください。 ポリシーの詳細については、「概要」をご参照ください。

インデックスの定義とタイプ

定義

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

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/192.0.2.0 Safari/537.2

ログを検索するには、ログを別々の検索可能な単語に分割する必要があります。 区切り文字を使用してログを分割できます。 区切り文字は、ログが分割される位置を決定します。 この例では、次の区切り文字を使用して前のログを分割できます。\n\t\r,;[]{}()&^ *#@ ~ =<>/\?: '" ログは、Mozilla5.0WindowsNT6.1AppleWebKit537.2KHTMLlikeGeckoChrome192.0.2.0Safari537.2に分割されます。

Simple Log Serviceは、ログ分割後に取得された単語に基づいてインデックスを作成します。 インデックスを使用すると、多数のログから特定の情報をすばやく見つけることができます。

インデックスタイプ

インデックスは、全文インデックスフィールドインデックスに分類されます。 中国語コンテンツは区切り文字を使用して分割できません。 ただし、中国語のコンテンツを分割する場合は、「中国語を含める」をオンにできます。 その後、Simple Log Serviceは、中国語の文法に基づいて中国語のコンテンツを自動的に分割します。

  • フルテキストインデックス: Simple Log Serviceは、区切り文字を使用して、ログをテキストタイプの複数の単語に分割します。 キーワードを使用してログを照会できます。 たとえば、ChromeまたはSafariの検索文に基づいて、ChromeまたはSafariを含むログを照会できます。 詳細については、「検索構文」をご参照ください。

    全文索引

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

    字段索引

    説明

    Simple Log Serviceにログを収集する場合、またはSimple Log Serviceから他のクラウドサービスにログを送信する場合、Simple Log Serviceはログソースやタイムスタンプなどのフィールドをキー値形式でログに追加します。 これらのフィールドは、Simple Log Serviceの予約フィールドと見なされます。

    フィールドインデックスを作成した後、次の検索文またはクエリ文を使用してデータをクエリできます。

    • 検索文: request_method:GET and status in [200 299] この検索文は、成功したGETリクエストを記録するログを照会するために使用されます。 ステータスコードの範囲が200から299のGETリクエストは成功と見なされます。 検索文: request_method:GET not region:cn-hangzhou この検索文は、中国 (杭州) リージョン以外のリージョンからのGETリクエストを記録するログを照会するために使用されます。

    • クエリ文: * | SELECT status_code FROM web_logs

    • クエリ文: level: ERROR | SELECT status_code FROM web_logs

インデックスの作成に使用されるポリシー

設定されたインデックスは、新しいログに対してのみ有効です。 履歴ログをクエリおよび分析するには、ログのインデックスを再作成する必要があります。 インデックスの作成後、インデックスは約1分以内に有効になります。 フィールドインデックスの設定例の詳細については、「JSONログの照会と分析」および「Webサイトログの照会と分析」をご参照ください。.

重要

クエリと分析の結果は、インデックスの構成によって異なります。 ビジネス要件に基づいてインデックスを作成する必要があります。 フルテキストインデックスとフィールドインデックスの両方を作成する場合、フィールドインデックスが優先されます。

  • フルテキストインデックスのみが設定されている場合は、検索構文のみを使用してログを照会できます。 詳細については、「検索構文」をご参照ください。

  • フィールドインデックスが設定されている場合、ログのクエリと分析に使用できるクエリステートメントは、ログ内のフィールドのデータ型によって異なります。

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

    • テキストタイプのフィールド: 全文ベースの検索文、フィールドベースの検索文、および分析文を使用して、データを照会および分析できます。 フルテキストインデックスが有効になっていない場合、フルテキストベースの検索文は、text型のすべてのフィールドのデータを照会します。 フルテキストインデックスが有効になっている場合、フルテキストベースの検索文はすべてのログからデータを照会します。

インデックス設定例

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

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

    • フィールドインデックスのみが設定され、フィールドタイプがDoubleとLongの場合、request_timeフィールド値が100を超えるログが返されます。

    • フルテキストインデックスとフィールドインデックスの両方が設定されており、フィールドタイプがDoubleとLongの場合、設定されたフルテキストインデックスはrequest_timeフィールドには有効にならず、request_timeフィールドの値が100を超えるログが返されます。

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

    • フィールドインデックスのみが設定され、フィールドタイプがDoubleとLongの場合、ログは返されません。

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

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

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

    • フルテキストインデックスのみが設定されている場合、ログは返されません。

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

インデックストラフィック

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

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

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

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

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

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

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

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

課金説明

ログストアは、従量課金データおよび従量課金機能の課金モードをサポートしています。 詳細については、「Logstoreの管理」、「従量課金機能の課金項目」、および「従量課金データの課金項目」をご参照ください。

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

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

  • インデックスの再作成は料金を発生しません。

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

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

  • インデックスを作成すると、トラフィックが生成されます。 インデックストラフィックの課金の詳細については、「課金項目」の「ログデータのインデックストラフィック」および「クエリLogstoresのログインデックストラフィック」をご参照ください。 インデックストラフィックを削減する方法の詳細については、このトピックの参照セクションを参照してください。

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

手順

ステップ1: インデックスの作成

  1. クエリと分析ページに移動します。

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

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

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

    4. 表示されるページで、[インデックス属性] > [属性] を選択します。 インデックスが作成されない場合は、[有効化] をクリックします。

      配置索引

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

    警告

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

    自动更新索引

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

    インデックスパラメーターを設定します。 フィールドを分析する場合は、フィールドインデックスを作成する必要があります。 分析のために、クエリ文にSELECT文を含める必要があります。 フィールドインデックスは、フルテキストインデックスよりも優先度が高くなります。 インデックスの作成後、インデックスは1分以内に有効になります。

    重要
    • 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を使用する必要があります。

    フルテキストインデックスとフィールドインデックスのパラメーター

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

    パラメーター

    説明

    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 * を使用してファジーマッチを実行します。

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

    フィールドインデックス

    オプションです。 [自動インデックス生成] をクリックします。 Simple Log Serviceは、データ収集のプレビュー結果の最初のログに基づいて、フィールドインデックスを自動的に生成します。

    自动生成索引

    検索と分析パネルの下部にあるimage.pngアイコンをクリックし、次のパラメーターを設定します。

    パラメーター

    説明

    フィールド名

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

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

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

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

    データ型

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

    フィールドのデータ型をlongまたはdoubleに設定した場合、そのフィールドに大文字小文字の区別中国語を含める、または区切り文字を設定できません。

    エイリアス

    フィールドのエイリアスを設定します。 たとえば、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 * を使用してファジーマッチを実行します。

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

    中国語を含める

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

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

    • 重要

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

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

    分析の有効化

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

ステップ2: ログの再インデックス

Simple Log Serviceは、履歴データのインデックスを設定または変更するために使用できるインデックス再作成機能を提供します。 最新のインデックス作成ルールに基づいて、Logstoreで指定した時間範囲のログを再インデックスできます。 詳細については、「Logstoreのログの再インデックス」および「関数の概要」をご参照ください。

次のステップ

ログの照会と分析

ログのクエリと分析方法の詳細については、「ログのクエリと分析」をご参照ください。 クエリと分析の例の詳細については、「Webサイトログのクエリと分析」、「JSONログのクエリと分析」、「NGINXモニタリングログの収集、クエリ、分析」、および「SLBのレイヤー7アクセスログの分析」をご参照ください。

フィールド値の最大長の指定

分析用に保持できるフィールド値のデフォルトの最大長は2,048バイトで、これは2 KBに相当します。 [Maximum Statistics Field Length] の値を変更できます。 有効値: 64 ~ 16384 単位:バイト

重要

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

设置字段最大长度

LogReduce

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

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

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

関連ドキュメント

よくある質問

ログがSimple Log Serviceにインポートされた後にログを照会できない場合はどうすればよいですか?

  • 指定した区切り文字が要件を満たしているかどうかを確認します。

  • 設定されたインデックスは、新しいログに対してのみ有効です。 履歴ログを照会および分析する場合は、ログのインデックスを再作成する必要があります。 詳細については、「Logstoreのログの再インデックス」をご参照ください。

2つの条件を使用してログをクエリするにはどうすればよいですか?

2つの条件を使用してログを照会する場合は、一度に2つのステートメントを指定します。 たとえば、LogstoreでステータスがOKでもUnknownでもないログを照会する場合は、not OK not Unknownを指定してログを取得できます。

複数のキーワードを含むログを照会するにはどうすればよいですか?

たとえば、http_user_agentフィールド値にGeckoが含まれるログを照会する場合は、次のいずれかの方法を使用できます。

  • フレーズ検索: http_user_agent:#"jikeGecko" 。 詳細については、「フレーズ検索」をご参照ください。

  • LIKE句: * | Select * where http_user_agent like '% like Gecko %'

スペースを含むキーワードを使用してログをクエリするにはどうすればよいですか?

たとえば、POSバージョンキーワードを使用してログを照会すると、POSまたはバージョンを含むログが返されます。 "POS version" キーワードを使用してログを照会すると、POSバージョンを含むログが返されます。

関連する API 操作

  • CreateIndex: Logstoreのインデックスを作成します。

  • DeleteIndex: Logstoreのインデックスを削除します。

  • GetIndex: Logstoreのインデックスを照会します。

  • UpdateIndex: Logstoreのインデックスを更新します。