ログは、ログトピックに基づいて識別できます。 Log ServiceコンソールでLogtail設定を作成するときに、トピック生成モードを指定できます。 ログをアップロードするときに、API操作を呼び出すか、SDKを使用してログトピックを指定できます。 このトピックでは、Log Serviceコンソールで指定できるトピック生成モードについて説明します。

Null - Do not generate topic

[トピック生成モード][Null-トピックを生成しない] に設定した場合、ログトピックは生成されません。

Machine Group Topic Attributes

このモードは、異なるサーバーによって生成されたログを区別するために使用されます。 異なるサーバーによって生成されたログへのパスが同じである場合、またはログを格納するファイルの名前が同じである場合、ログトピックに基づいてログを区別できます。

サーバーを異なるマシングループに追加し、マシングループに異なるトピック属性を設定できます。 次に、Logtail設定を作成するときに、[トピック生成モード][マシングループトピック属性] に設定できます。 Logtailが異なるマシングループのサーバーのログをLog Serviceにアップロードすると、Logtailにはマシングループのトピック属性がログトピックとして含まれます。 ログトピックを使用してログを照会できます。

File Path RegEx

このモードは、異なるユーザーまたはインスタンスに対して生成されるログを区別するために使用されます。 異なるユーザーまたはインスタンスに対して生成されたログが異なるディレクトリに保存されているが、これらのディレクトリに重複するサブディレクトリ名またはログファイル名が存在する場合、Logtailは、Logtailがログを収集するときにログが生成されたユーザーまたはインスタンスを特定できません。

ログファイルのパスから値を抽出する

Logtail設定を作成するときに、[トピック生成モード][ファイルパス正規表現] に設定し、ログファイルパスに一致する正規表現を指定してから、キャプチャグループを使用して抽出するコンテンツをキャプチャできます。 完全なログファイルパスと一致する正規表現を指定する必要があります。 1つのキャプチャグループのみがサポートされています。 LogtailがさまざまなユーザーまたはインスタンスのログをLog Serviceにアップロードすると、Logtailにはユーザーまたはインスタンスの名前がログトピックとして含まれます。 ログトピックを使用してログを照会できます。
説明 ログファイルのパスを一致させるために使用される正規表現のスラッシュ (/) をエスケープする必要があります。
たとえば、異なるユーザーに対して生成されたログは、異なるディレクトリに保存されます。 ただし, ディレクトリにはログファイル名が重複しています。 例:
/logs
   - /userA/serviceA
     -service.log
   - /userB/serviceA
     -service.log
   - /userC/serviceA
     -service.log

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

  • 正規表現
    \/(.*)\/serviceA\/.*
  • 抽出結果
    __topic __: userA
    __topic __: userB
    __topic __: userC

ログファイルのパスから複数の値を抽出する

1つのログトピックでログのソースを識別できない場合は、指定した正規表現で複数のキャプチャグループを構成できます。 このようにして、Logtailはログファイルパスから複数の値を抽出し、その値をログタグとして使用してログのソースを識別できます。 キャプチャグループには、名前付きキャプチャグループと名前なしキャプチャグループが含まれます。 名前付きキャプチャグループは? P<name> 形式。 指定された正規表現のキャプチャグループがすべて名前付きキャプチャグループの場合、タグフィールドは __tag __:{ name} 形式で生成されます。 If the capturing groups in the specified regular expression are all unnamed capturing groups, tag fields are generated in the __tag__:__topic_{i}__ format. {i} は、名前のないキャプチャグループの序数を示します。
説明 指定された正規表現に複数のキャプチャグループが含まれている場合、__topic__ フィールドは生成されません。

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

  • 例1: 正規表現で名前のないキャプチャリンググループを使用して複数の値を抽出します。
    • 正規表現
      \/logs\/(.*?)\/(.*?)\/service.log
    • 抽出結果
      __タグ __:__ topic_1 __: userA
      __タグ __:__ topic_2 __: serviceA
  • 例2: 正規表現で名前付きキャプチャグループを使用して複数の値を抽出します。
    • 正規表現
      \/logs\/(?P<user>.*?)\/(?P<service>.*?)\/service.log
    • 抽出結果
      __tag __: ユーザー: userA
      __tag __: service: serviceA

静的トピックの生成

[トピック生成モード][ファイルパス正規表現] に設定し、[カスタム正規表現] フィールドで [カスタマイズ: // + カスタムトピック名] を指定できます。 このようにして、カスタム静的トピックが使用されます。

説明 この設定は、Logtail V0.16.21以降がインストールされているLinuxサーバーでサポートされます。