このトピックでは、異なるサーバーまたはユーザーから収集されたテキストログを区別するためにログトピックを設定する方法について説明します。
ログトピックの設定
前提条件
マシングループが作成されます。 詳細については、「マシングループの作成」をご参照ください。
手順
ログトピックは、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
を指定して、ログトピックごとにログをクエリします。 詳細については、「検索構文」をご参照ください。