シンプルモードは、各ログを単一の未解析エントリとして収集することで、データインジェストを効率化します。このトピックでは、Simple Log Service コンソールでシンプルモードの Logtail 構成を作成する方法について説明します。
前提条件
-
プロジェクトと Logstore が作成されていること。詳細については、「プロジェクトの管理」および「基本的な Logstore の作成」をご参照ください。
-
Logtail がインストールされているサーバーが、リモートサーバーのポート 80 および 443 にアクセスできること。
-
ソースサーバーが継続的にログを生成していること。
重要Logtail は増分ログのみを収集します。Logtail 構成を適用した後にログファイルが更新されない場合、Logtail はそのファイルからログを収集しません。詳細については、「ログファイルの読み取り」をご参照ください。
背景情報
シンプルモードでは、Logtail はログの内容を content フィールドに格納し、ログからフィールドを抽出しません。各ログエントリの時刻は、収集時に Logtail が実行されているホストのシステム時刻になります。例:
-
生ログ
127.0.0.1 - - [05/Jan/2023:11:40:39 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" -
Simple Log Service に表示されるログエントリ (収集されたログには
contentフィールドが含まれ、その値は生ログ行全体となり、タイムスタンプは収集時のシステム時刻です):__time__: 1672893639 content: 127.0.0.1 - - [05/Jan/2023:11:40:39 +0800] "GET /index.html HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
シンプルモードは、次の種類のテキストログの収集をサポートしています。
-
単一行テキストログ
ログファイル内の各行が個別のログエントリになります。
-
複数行テキストログ
単一のログエントリが複数行にまたがります。このモードでは、ログディレクトリとファイル名に加えて、ログサンプルと先頭行正規表現を提供する必要があります。Logtail はこの正規表現を使用して、新しいログエントリの開始を識別します。Logtail は、正規表現に一致しない行を、次に一致する先頭行が見つかるまで現在のエントリに追加します。
操作手順
デフォルトでは、1つのログファイルは1つの Logtail 構成にしか一致しません。同じファイルから複数回ログを収集するには、「ファイルから複数回ログを収集する」をご参照ください。
Log Serviceコンソールにログインします。
-
データのインポート セクションで、[複数行テキストログ] を選択します。
このトピックでは、複数行テキストログを例に説明します。単一行テキストログを収集する場合は、[単一行テキストログ] を選択してください。
-
宛先プロジェクトと Logstore を選択し、次へ をクリックします。
-
マシングループを作成します。
-
マシン グループがある場合は、既存のサーバーグループの使用 をクリックします。
-
マシングループがない場合は、次の手順で作成します。この例では、ECS インスタンスを使用します。
-
ECS インスタンス タブで、ターゲット ECS インスタンスを選択し、作成 をクリックします。
詳細については、「ECS インスタンスへの Logtail のインストール」をご参照ください。
重要お使いのサーバーが別の Alibaba Cloud アカウントの ECS インスタンス、他のクラウドプロバイダーのサーバー、または独自のデータセンター内のサーバーである場合は、Logtail を手動でインストールする必要があります。詳細については、「Linux サーバーへの Logtail のインストール」または「Windows サーバーへの Logtail のインストール」をご参照ください。
Logtail を手動でインストールした後、サーバー上でユーザー識別子を設定する必要があります。詳細については、「ユーザー識別子の設定」をご参照ください。
-
インストールが完了したら、完全なインストール をクリックします。
-
マシングループの作成 ページで、名前 を入力し、次へ をクリックします。
Simple Log Service は、IP アドレスベースのマシングループとカスタム識別子ベースのマシングループをサポートしています。パラメータの詳細については、「IP アドレスベースのマシングループの作成」および「カスタム識別子ベースのマシングループの作成」をご参照ください。
-
-
-
ソースサーバーグループ から対象のマシン グループを選択して 適用されたサーバーグループ に移動し、次へ をクリックします。
重要マシングループを作成した直後に適用すると、接続がまだ確立されていないため、ハートビートステータスが [FAIL] と表示されることがあります。 自動再試行 をクリックしてください。 問題が解決しない場合は、「Logtail マシングループのハートビート障害のトラブルシューティング」をご参照ください。
-
Logtail 設定を作成し、次へ をクリックします。
パラメーター
説明
設定名
Logtail 構成の名前。プロジェクト内で一意である必要があります。構成を作成した後は名前を変更できません。
また、他の設定のインポート をクリックして既存の Logtail 設定を使用することもできます。
ログパス
サーバー上のログのディレクトリとファイル名を指定します。
-
Linux システムのログパスは、スラッシュ (/) で始まる必要があります (例:/apsara/nuwa/.../app.Log)。
-
ログパスが Windows システム上にある場合は、ドライブ文字で始まる必要があります (例:C:\Program Files\Intel\...\*.Log)。
ディレクトリ名とファイル名には、フルネームとワイルドカードの両方がサポートされています。ファイル名のパターンの詳細については、「ワイルドカードマッチング」をご参照ください。Logtail は、指定されたディレクトリパスを再帰的に検索して、一致するすべてのファイルを見つけます。例:
-
/apsara/nuwa/**/*.log は、/apsara/nuwa ディレクトリとそのサブディレクトリ内の .log で終わるファイルを表します。
-
/var/logs/app_*/**/*.log は、/var/logs ディレクトリ配下の app_* パターンに一致するすべてのディレクトリ (およびその再帰的なサブディレクトリ) 内の、拡張子が .log のすべてのファイルを表します。
-
/var/log/nginx/**/access* は、/var/log/nginx ディレクトリとその再帰的なサブディレクトリ内の、access で始まるファイルを表します。
説明ログパスのワイルドカードは、アスタリスク (
*) とクエスチョンマーク (?) のみをサポートしています。-
アスタリスク (
*) は、任意の文字列に一致します。 -
クエスチョンマーク (
?) は、任意の一文字に一致します。
ブラックリスト
ブラックリスト を有効にすると、特定のディレクトリまたはファイルを収集から除外できます。フルパスとワイルドカードの両方がサポートされています。例:
-
ディレクトリによるフィルタリング を選択してパスを /home/admin/dir1 に設定した場合、収集時に /home/admin/dir1 ディレクトリ内のすべてのコンテンツが無視されます。
-
ディレクトリによるフィルタリング を選択し、パスを /home/admin/dir* に設定すると、収集時に /home/admin/ ディレクトリ配下にある
dirで始まるすべてのサブディレクトリの内容が無視されます。 -
ディレクトリによるフィルタリング を選択し、パスを /home/admin/*/dir に設定します。この設定では、収集時に /home/admin/ ディレクトリ内の、
dirという名前の第 2 レベルのサブディレクトリにあるすべてのコンテンツが無視されます。たとえば、/home/admin/a/dir ディレクトリのコンテンツは無視され、/home/admin/a/b/dir ディレクトリのコンテンツは収集されます。
-
ファイルによるフィルタリング を選択し、パスを /home/admin/private*.log に設定します。この設定により、収集時に /home/admin/ ディレクトリ内で private で始まり .log で終わるすべてのファイルが無視されます。
-
ファイルによるフィルタリング を選択し、パスを /home/admin/private*/*_inner.log に設定すると、収集時に /home/admin/ ディレクトリ配下の
privateで始まるディレクトリにある_inner.logで終わるファイルが無視されます。たとえば、/home/admin/private/app_inner.log ファイルは無視され、/home/admin/private/app.log ファイルは収集されます。
説明-
ディレクトリのワイルドカードは、アスタリスク (
*) とクエスチョンマーク (?) のみをサポートしています。-
アスタリスク (
*) は、任意の文字列に一致します。 -
クエスチョンマーク (
?) は、任意の一文字に一致します。
-
-
[ログパス] でワイルドカードを使用してサブディレクトリを除外する場合、除外を正しく適用するには、ブラックリストにそのサブディレクトリのフルパスを指定する必要があります。
例えば、[ログパス] を /home/admin/app*/log/*.log に設定し、/home/admin/app1* ディレクトリ配下のすべてのサブディレクトリを除外したい場合は、ディレクトリによるフィルタリング を選択してパスを /home/admin/app1*/** に設定し、ブラックリストを構成する必要があります。パスを /home/admin/app1* に設定した場合、ブラックリストは有効になりません。
-
ブラックリストとの照合はコンピューティングリソースを消費します。ブラックリストのエントリ数は 10 個未満にすることを推奨します。
-
ディレクトリパスはスラッシュ (/) で終わることはできません。たとえば、パスを /home/admin/dir1/ に設定した場合、ディレクトリのブラックリストは有効になりません。
Docker ファイル
ログファイルが Docker コンテナ内にある場合、[Docker ファイル] を有効にし、内部パスとコンテナタグを設定します。 Logtail は自動的にコンテナの作成と破棄を監視し、タグに基づいてコンテナをフィルタリングし、指定されたコンテナからログを収集します。 詳細については、「コンソールを使用して DaemonSet モードのコンテナからテキストログを収集する」をご参照ください。
モード
収集モード。デフォルトは [シンプルモード - 複数行] です。別のモードを選択できます。
ログサンプル
実際のユースケースからログサンプルを提供します。Simple Log Service はこのサンプルを使用して、先頭行正規表現を自動的に生成します。例:
[2020-10-01T10:30:01,000] [INFO] java.lang.Exception: exception happened at TestPrintStackTrace.f(TestPrintStackTrace.java:3) at TestPrintStackTrace.g(TestPrintStackTrace.java:7) at TestPrintStackTrace.main(TestPrintStackTrace.java:16)このパラメーターは、シンプルモードで単一行テキストログを収集する場合には必要ありません。
先頭行正規表現
Logtail は先頭行正規表現を使用して、ログエントリの開始を識別します。正規表現に一致しない行は、前のエントリに追加されます。Simple Log Service は正規表現を自動生成することも、手動で入力することもできます。
-
自動生成
ログサンプルを入力した後、ヘルプ をクリックすると、先頭行の正規表現が生成されます。
-
手動入力
ログ サンプルを入力した後、手動で入力 をクリックして独自の式を入力します。式を入力した後、検証 をクリックして検証します。詳細については、「正規表現をテストする方法」をご参照ください。
このパラメーターは、シンプルモードで単一行テキストログを収集する場合には必要ありません。
解析失敗ログの破棄
解析に失敗したログを破棄するかどうかを指定します。
-
[パースに失敗したログを破棄] を有効にした場合、パースに失敗したログは Log Service にアップロードされません。
-
[解析に失敗したログを破棄] スイッチをオフにすると、ログの解析に失敗した場合、未加工ログは raw_log フィールドの値として Log Service にアップロードされます。
最大監視ディレクトリ階層
指定したログディレクトリ内で監視するサブディレクトリの最大階層。値の範囲は 0 から 1,000 です。値が 0 の場合は、トップレベルのディレクトリのみが監視されます。
必要に応じて詳細設定を構成します。特別な要件がない場合は、デフォルト設定のままにすることを推奨します。
パラメーター
説明
プラグイン処理の有効化
ログが複雑すぎる、または非構造化であり、NGINX、完全な正規表現、JSON などの標準の解析モードで処理できない場合、プラグイン処理の有効化 を有効にし、Logtail プラグインを追加してログを処理できます。
Simple Log Service は、選択した収集モードに基づいてデフォルトのプラグイン構成を生成します。複数のプロセッサーを追加することで、さらにプラグインを追加できます。詳細については、「データ処理のための Logtail プラグインの概要」をご参照ください。
重要プラグイン処理の有効化 を有効にすると、「生ログのアップロード」、「タイムゾーン」、「解析失敗ログの破棄」、「フィルター設定」などの機能が利用できなくなります。
生ログのアップロード
[生ログのアップロード] スイッチをオンにすると、解析済みログとともに、生ログが [raw] フィールドの値として Log Service にアップロードされます。
トピック生成モード
ログのトピックを生成する方法を指定します。詳細については、「ログトピック」をご参照ください。
-
[Topic 生成しない]:これはデフォルトのオプションです。トピックは空の文字列に設定されます。ログをクエリするときにトピックを指定する必要はありません。
-
[マシングループのトピック属性]:マシングループのトピック属性を使用します。これは、異なるサーバーによって生成されたログを区別するのに役立ちます。
-
[ファイルパスの正規表現]: 正規表現を使用して、ログファイルパスからトピックを抽出します。 式は [カスタム正規表現] フィールドで指定する必要があります。 これは、異なるユーザーまたはインスタンスからのログを区別するのに役立ちます。
ログファイルのエンコーディング
ログファイルのエンコーディング形式。有効な値は
utf8とgbkです。タイムゾーン
収集時のログのタイムスタンプのタイムゾーン。
-
マシンタイムゾーン:デフォルト値。Logtail が実行されているホストまたはコンテナのタイムゾーンを使用します。
-
カスタム:タイムゾーンを手動で選択できます。
タイムアウト
指定された期間内にログファイルが更新されない場合、Logtail は監視がタイムアウトしたと見なします。
-
タイムアウトしない:すべてのログファイルをタイムアウトせずに継続的に監視します。
-
30 分でタイムアウト:ログファイルが 30 分間更新されない場合、Logtail はファイルの監視を停止します。
30分 を選択した場合、[最大タイムアウトディレクトリ深度] も 1~3 の値に設定する必要があります。
フィルター設定
フィルター条件を満たすログのみが収集されます。フィルター条件には、ターゲットフィールドの名前を指定する Key フィールドと、フィルタリングのための正規表現を指定する Regex フィールドが含まれます。これらの条件間には論理 AND が適用されます。
重要-
シンプルモードでは、[content] フィールドのみが生成されます。フィルター条件を設定する場合は、[キー] を [content] にのみ設定できます。
-
この設定では、フィールドの値全体が正規表現に一致する必要があります。部分一致を行うには、
.*キーワード.*のように正規表現内でワイルドカードを使用します。
以下に例を示します:
-
一致するログの収集。
-
[キー]を [level] に、[正規表現]を [WARNING|ERROR] に設定します。 これにより、level フィールドが WARNING または ERROR であるログのみが収集されます。
-
[キー] を [content] に、[正規表現] を [.05\/Jan\/2023.] に設定します。これにより、content フィールドに 05/Jan/2023 が含まれるログのみが収集されます。
-
-
ログの除外。
-
level フィールドに INFO または DEBUG が含まれるログを除外するには、[キー] を [level] に、[正規表現] を [^(?!.*(INFO|DEBUG)).*] に設定します。
-
[キー] を [level] に、[正規表現] を [^(?!(INFO|DEBUG)$).*] に設定します。これにより、level フィールドの値が INFO または DEBUG のログは収集されません。
-
[キー] を [url] に、[正規表現] を [.*^(?!.*(healthcheck)).*] に設定して、url フィールドに
healthcheckが含まれるログを除外します。
-
正規表現の設定方法の詳細については、「正規表現入門」をご参照ください。
初回収集サイズ
[最初のコレクションのサイズ] は、新しいファイルからデータを収集する開始点を決定します。デフォルトのサイズは 1,024 KB です。
-
ファイルが 1,024 KB 未満の場合、収集はファイルの先頭から開始されます。
-
ファイルが 1,024 KB より大きい場合、収集はファイルの末尾から 1,024 KB の位置から開始されます。
最初のコレクションのサイズ を変更できます。値は 0 から 10,485,760 の範囲で指定できます。単位: KB。
高度な設定
高度な Logtail 設定を指定します。詳細については、「高度なパラメーター」をご参照ください。
たとえば、この Logtail 構成を使用して、別の構成にすでに一致しているファイルからログを収集し、集計間隔を指定するには、次の構成を追加します:
{ "force_multiconfig": true, "batch_send_interval": 3 }次へ をクリックして Logtail 設定を作成します。Log Service はログの収集を開始します。
説明-
Logtail 構成が有効になるまで最大 3 分かかる場合があります。
-
収集エラーが発生した場合は、「Logtail の収集エラーの表示方法」および「一般的な収集エラー」をご参照ください。
-
-
データをプレビューしてインデックスを作成し、次へ をクリックします。
デフォルトでは、Log Service は全文インデックスを有効にします。また、収集されたログに基づいて手動でフィールドインデックスを作成するか、自動インデックスの生成 をクリックして Log Service に自動で作成させることもできます。詳細については、「インデックスの作成」をご参照ください。
重要ログをクエリおよび分析するには、全文インデックスまたはフィールドインデックスのいずれかを有効にする必要があります。両方を有効にした場合、クエリにはフィールドインデックスが使用されます。
-
ログ照会 をクリックして、Logstore のクエリと分析ページに移動します。
インデックスが有効になるまで約 1 分かかる場合があります。その後、Rawデータ タブで収集されたログを表示できます。詳細については、「ログクエリと分析のクイックスタート」をご参照ください。
トラブルシューティング
Logtail を設定してログを収集した後、プレビューページまたはクエリページにデータが表示されない場合は、「Logtail でログを収集できない場合のトラブルシューティング」をご参照ください。