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

Simple Log Service:ログトピック

最終更新日:Dec 05, 2024

このトピックでは、異なるサーバーまたはユーザーから収集されたテキストログを区別するためにログトピックを設定する方法について説明します。

ログトピックの設定

前提条件

手順

ログトピックは、Simple log ServiceコンソールまたはAPI操作を呼び出して設定できます。

コンソール

  • [Logtail設定] ページで、[その他のグローバル設定] をクリックし、[ログトピックの種類] ドロップダウンリストからログトピックの種類を選択します。 Log Topic Typeパラメーターの値を次に示します。

    • マシングループトピック: このタイプを選択した場合、マシングループを作成するときにマシングループトピックパラメーターを設定する必要があります。 詳細については、「マシングループの作成」をご参照ください。

    • ファイルパスの抽出: このタイプを選択する場合は、正規表現を指定する必要があります。

    • カスタム: このタイプを選択した場合、静的ログトピックを使用するには、customized:// + Custom topic nameを指定する必要があります。

  • Simple Log ServiceコンソールでLogtail設定を作成します。 詳細については、「サーバーからのテキストログの収集」をご参照ください。

API

CreateConfig操作を呼び出して、Logtail設定を作成できます。 ログトピックに関連するパラメーターの詳細については、Logtail設定topicFormatパラメーターをご参照ください。

ログトピックタイプ

  • マシングループのトピック

    Simple Log Serviceでは、1つのLogtail設定を複数のマシングループに適用できます。 このタイプは、異なるマシングループのサーバーによって生成されるログを区別するために使用されます。 Logtailが異なるマシングループのサーバーのログをSimple Log Serviceにアップロードすると、Logtailはmachine Group Topicパラメーターで指定されたトピックをログトピックとしてログに含めます。 ログトピックを使用してログを照会できます。

  • ファイルパスの抽出

    このタイプは、異なるユーザーまたは異なるアプリケーションによって生成されるログを区別するために使用されます。 異なるユーザーまたはアプリケーションのログが異なるルートディレクトリに保存されているが、ディレクトリに重複する名前のサブディレクトリまたはファイルが含まれている場合、Logtailは、Logtailがログを収集するときに、特定のログが生成されるユーザーまたはアプリケーションを特定できません。

    Logtail構成で正規表現を指定して、完全なログファイルパスと一致させることができます。 この場合、Logtailは、ログをSimple log Serviceにアップロードするときに、ログの一致結果に見つかったユーザーまたはアプリケーションの名前をログトピックとして含めます。 ログトピックを使用してログを照会できます。

    説明

    ログファイルのパスを一致させるために使用される正規表現でスラッシュ (/) をエスケープする必要があります。

    シナリオ1: 異なるユーザーに対して生成されたログは、異なるルートディレクトリに保存されます。 ただし、ログのファイルは同じです。 例:

    /data/logs
    ├── userA
    │   └── serviceA
    │       └── service.log
    ├── userB
    │   └── serviceA
    │       └── service.log
    └── userC
        └── serviceA
            └── service.log

    Logtail設定でログファイルパスとして /data/logsを指定し、ログファイル名としてservice.logを指定した場合、Logtailはservice.logという名前のすべてのファイルからLogstoreにログを収集します。 特定のログが生成されたユーザーを特定できません。 次の正規表現を指定して、各ログファイルパスから値を抽出できます。 各値は、一意のログトピックとして使用されます。

    • 正規表現

      \/data\/logs\/(.*)\/serviceA\/.*
    • 抽出結果

      __topic__: userA
      __topic__: userB
      __topic__: userC

    シナリオ2: 単一のログトピックを使用してログのソースを特定できない場合、ログファイルのパスを照合してキー情報を抽出するために使用される正規表現で複数のキャプチャグループを指定できます。 キャプチャグループには、名前付きキャプチャグループと名前なしキャプチャグループが含まれます。 名前付きキャプチャグループは (?P<name>) 形式です。 指定された正規表現のキャプチャグループがすべて名前付きキャプチャグループの場合、タグフィールドは __tag __:{ name} 形式で生成されます。 指定された正規表現のキャプチャグループがすべて名前のないキャプチャグループの場合、タグフィールドは __tag __:__ topic_{i }__ 形式で生成されます。 {i} は、名前のないキャプチャグループの序数を示します。

    説明

    正規表現に複数のキャプチャグループが含まれている場合、__topic__ フィールドは生成されません。

    たとえば、ログファイルパスは /data/logs/userA/serviceA/service.logです。 次のいずれかの正規表現を指定して、ログファイルパスから複数の値を抽出できます。

    • 例1: 正規表現で名前のないキャプチャリンググループを使用して複数の値を抽出します。

      • 正規表現

        \/data\/logs\/(.*?)\/(.*?)\/service.log
      • 抽出結果

        __tag__:__topic_1__: userA
        __tag__:__topic_2__: serviceA
    • 例2: 正規表現で名前付きキャプチャグループを使用して複数の値を抽出します。

      • 正規表現

        \/data\/logs\/(?P<user>.*?)\/(?P<service>.*?)\/service.log
      • 抽出結果

        __tag__:user: userA
        __tag__:service: serviceA
  • Custom

    静的ログトピックを使用するには、customized:// + Custom topic nameを指定します。

    重要

    カスタムログトピックは、Logtail V0.16.21以降でのみサポートされます。 この場合、LogtailはLinuxサーバーにインストールする必要があります。

ログトピックによるログクエリ

Logstoreのクエリと分析ページで、__topic __: userA__tag __:__ topic_1 __: userAを指定して、ログトピックごとにログをクエリします。 詳細については、「検索構文」をご参照ください。