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

Simple Log Service:ログトピック

最終更新日:Sep 18, 2024

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

ログトピックタイプ

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

このタイプは、異なるサーバーによって生成されたログを区別するために使用されます。 異なるサーバーによって生成されたログへのパスが同じである場合、またはログを格納するファイルの名前が同じである場合、サーバーを異なるマシングループに追加できます。 これにより、マシングループトピックでログを区別できます。 Logtailが異なるマシングループ内のサーバーのログをSimple Log Serviceにアップロードすると、Logtailはマシングループのトピックをログトピックとしてログに含めます。 ログトピックを使用してログを照会できます。

ファイルパスの抽出

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

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

説明

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

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

/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

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

説明

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

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

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

    • 正規表現

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

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

    • 正規表現

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

      __tag__:user: userA
      __tag__:service: serviceA

カスタム

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

重要

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

ログトピックの設定方法

コンソール

  1. サーバーを別のマシングループに追加します。

    1. サーバーのユーザー識別子を設定します。 詳細については、「ユーザー識別子の設定」をご参照ください。 使用するSimple Log ServiceプロジェクトとElastic Compute Service (ECS) インスタンスが同じAlibaba Cloudアカウントに属している場合、ユーザー識別子を設定する必要はありません。 詳細については、「クイックリファレンス」をご参照ください。

    2. IPアドレスベースのマシングループまたはカスタム識別子ベースのマシングループを作成します。

  2. Logtail設定を作成します。 次の図に基づいてパラメーターを設定します。 詳細については、「サーバーからのテキストログの収集」をご参照ください。

    image

API

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

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

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