ログは、ログトピックに基づいて識別できます。 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がログを収集するときにログが生成されたユーザーまたはインスタンスを特定できません。
ログファイルのパスから値を抽出する
/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
ログファイルのパスから複数の値を抽出する
たとえば、ログファイルパスは /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
- 正規表現
静的トピックの生成
[トピック生成モード] を [ファイルパス正規表現] に設定し、[カスタム正規表現] フィールドで [カスタマイズ: // + カスタムトピック名]
を指定できます。 このようにして、カスタム静的トピックが使用されます。