このトピックでは、異なるサーバーまたはユーザーから収集されたテキストログを区別するためにログトピックを設定する方法について説明します。
ログトピックタイプ
マシングループのトピック
このタイプは、異なるサーバーによって生成されたログを区別するために使用されます。 異なるサーバーによって生成されたログへのパスが同じである場合、またはログを格納するファイルの名前が同じである場合、サーバーを異なるマシングループに追加できます。 これにより、マシングループトピックでログを区別できます。 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サーバーにインストールする必要があります。
ログトピックの設定方法
コンソール
サーバーを別のマシングループに追加します。
サーバーのユーザー識別子を設定します。 詳細については、「ユーザー識別子の設定」をご参照ください。 使用するSimple Log ServiceプロジェクトとElastic Compute Service (ECS) インスタンスが同じAlibaba Cloudアカウントに属している場合、ユーザー識別子を設定する必要はありません。 詳細については、「クイックリファレンス」をご参照ください。
IPアドレスベースのマシングループまたはカスタム識別子ベースのマシングループを作成します。
IPアドレスベースのマシングループの作成: システムは各サーバーのIPアドレスを識別し、特定のサーバーをマシングループに追加します。
カスタム識別子ベースのマシングループの作成: システムは各サーバーのカスタム識別子を識別し、特定のサーバーをマシングループに追加します。
Logtail設定を作成します。 次の図に基づいてパラメーターを設定します。 詳細については、「サーバーからのテキストログの収集」をご参照ください。
API
CreateConfig操作を呼び出して、Logtail設定を作成できます。 ログトピックに関連するパラメーターの詳細については、Logtail設定のtopicFormat
パラメーターをご参照ください。
ログトピックによるログクエリ
Logstoreのクエリと分析ページで、__topic __: userA
と __tag __:__ topic_1 __: userA
を指定して、ログトピックごとにログをクエリします。 検索構文の詳細については、「検索構文」をご参照ください。