シンプルモードでログを収集すると、ログは解析されません。 各ログは収集され、1つのログとしてlog Serviceにアップロードされます。 このようにして、ログ収集のプロセスが簡略化される。 このトピックでは、Log Serviceコンソールを使用してシンプルモードでLogtail設定を作成する方法について説明します。
前提条件
プロジェクトと Logstore が作成済みである必要があります。 詳細については、「プロジェクトの作成」および「Logstore の作成」をご参照ください。
Logtailがインストールされているサーバーは、リモートサーバーのポート80とポート443に接続できます。
ログを収集するサーバーは、継続的にログを生成します。
重要Logtailは増分ログのみを収集します。 適用されたLogtail設定がサーバーに配信された後にサーバー上のログファイルが更新されない場合、Logtailはファイルからログを収集しません。 詳細については、「ログファイルの読み取り」をご参照ください。
背景情報
シンプルモードでログを収集すると、Logtailはログの内容をcontentフィールドに保存します。 Logtailはログからフィールドを抽出しません。 ログのタイムスタンプは、ログが収集されたシステム時刻です。 システム時刻は、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"
Log Serviceに収集されたログ
シンプルモードでは、次の種類のテキストログを収集できます。
単一行テキストログ
各ログは1行を含む。 ログファイル内のログは、改行で区切ります。 単一行のテキストログを収集する場合は、ログファイルのディレクトリと名前を指定するだけで済みます。 このようにして、Logtailは指定されたディレクトリと名前に一致するファイルから行ごとにログを収集できます。
複数行のテキストログ
各ログには複数の行が含まれます。 複数行のテキストログを収集する場合は、ログファイルのディレクトリと名前を指定する必要があります。 また、サンプルログを入力し、ログの最初の行の先頭に一致するように正規表現を設定する必要があります。 正規表現がログの内容と一致する場合、Logtailはログを識別し、正規表現と一致しない内容をログの一部と見なします。 Logtailは、次の一致時に新しいログを識別します。
手順
デフォルトでは、ログファイルからログを収集するために使用できるLogtail設定は1つだけです。 複数のLogtail設定を使用してログファイルからログを収集する方法の詳細については、ファイル内のログの複数のコピーを収集するにはどうすればよいですか?
[データのインポート] セクションで、[複数行テキストログ] をクリックします。
この例では、複数行のテキストログを収集する方法を示します。 単一行のテキストログを収集する場合は、[単一行-テキストログ] をクリックします。
プロジェクトとLogstoreを選択します。 そして、[次へ] をクリックします。
マシングループを作成します。
マシングループが利用可能な場合は、[既存のマシングループを使用] をクリックします。
使用可能なマシングループがない場合は、次の手順を実行してマシングループを作成します。 この例では、Elastic Compute Service (ECS) インスタンスが使用されています。
[ECSインスタンス] タブで、[手動でインスタンスを選択] を選択します。 次に、使用するECSインスタンスを選択し、[作成] をクリックします。
詳細については、「ECSインスタンスへのLogtailのインストール」をご参照ください。
重要Log Serviceとは異なるAlibaba Cloudアカウント、データセンター内のサーバー、またはサードパーティのクラウドサービスプロバイダーのサーバーに属するECSインスタンスからログを収集する場合は、Logtailを手動でインストールする必要があります。 詳細については、「LinuxサーバーにLogtailをインストールする」または「WindowsサーバーにLogtailをインストールする」をご参照ください。
Logtailを手動でインストールした後、サーバーのユーザー識別子を設定する必要があります。 詳細については、「ユーザー識別子の設定」をご参照ください。
Logtailをインストールしたら、[インストールの完了] をクリックします。
[マシングループの作成] ステップで、[名前] パラメーターを設定し、[次へ] をクリックします。
Log Serviceでは、IPアドレスベースのマシングループとカスタム識別子ベースのマシングループを作成できます。 詳細については、「IPアドレスベースのマシングループの作成」および「カスタム識別子ベースのマシングループの作成」をご参照ください。
[ソースサーバーグループ] から新しいマシングループを選択し、マシングループを [応用サーバーグループ] に移動します。 [次へ] をクリックします。
重要マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[自動再試行] をクリックします。 問題が解決しない場合は、Logtailでハートビート接続が検出されない場合はどうすればよいですか?
Logtail設定を作成し、[次へ] をクリックします。
パラメーター
説明
設定名
Logtail設定の名前を入力します。 名前はプロジェクト内で一意である必要があります。 Logtail設定を作成した後、Logtail設定の名前を変更することはできません。
[その他の構成のインポート] をクリックすると、既存のLogtail構成をインポートできます。
ログのパス
サーバー上のログの場所に基づいて、ログファイルのディレクトリと名前を指定します。
Linuxオペレーティングシステムでログパスを指定する場合、パスはスラッシュ (/) で始まる必要があります。 例: /apsara/nuwa/.../app.Log
Windowsオペレーティングシステムでログパスを指定する場合、パスはドライブ文字で始まる必要があります。 例: C:\Program Files\Intel\...\*.Log
正確なディレクトリと正確な名前を指定できます。 ワイルドカード文字を使用して、ディレクトリと名前を指定することもできます。 詳細については、「ワイルドカードの一致」をご参照ください。 Log Serviceは、指定されたディレクトリのすべてのレベルで、指定された条件に一致するログファイルをスキャンします。 例:
を指定した場合/apsara/nuwa/**/*.logLog Serviceは、名前の接尾辞が. ログで、/apsara/nuwaディレクトリとディレクトリの再帰サブディレクトリ。
を指定した場合/var/logs/app_*/*.logLog Serviceは、次の条件を満たすログファイルからログを収集します。. ログ. ファイルは、/var/logsディレクトリ下のサブディレクトリ、またはサブディレクトリの再帰サブディレクトリに格納されます。 サブディレクトリの名前は、app_* パターンと一致します。
/var/log/nginx/**/access * を指定した場合、Log Serviceは、名前が /var/log/nginxディレクトリのaccessで始まるログファイルと、ディレクトリの再帰的なサブディレクトリからログを収集します。
説明このパラメーターを設定すると、アスタリスク (*) または疑問符 (?) のみをワイルドカード文字として使用できます。
アスタリスク (*) を使用して、複数の文字を一致させることができます。
疑問符 (?) を使用して、1つの文字を一致させることができます。
ブラックリスト
[ブラックリスト] をオンにする場合は、ブラックリストを設定して、Log Serviceがログを収集するときにスキップするディレクトリまたはファイルを指定する必要があります。 正確なディレクトリとファイル名を指定できます。 ワイルドカード文字を使用して、ディレクトリとファイル名を指定することもできます。 例:
[フィルタータイプ] 列のドロップダウンリストから [ディレクトリでフィルターする] を選択し、コンテンツに /home/admin/dir1と入力すると、/home/admin/dir1ディレクトリ内のすべてのファイルがスキップされます。
[フィルタータイプ] 列のドロップダウンリストから [ディレクトリでフィルターする] を選択し、[コンテンツ] に /home/admin/dir * と入力すると、/home/admin/ ディレクトリの名前の先頭にdirが付いているすべてのサブディレクトリのファイルがスキップされます。
[フィルタータイプ] 列のドロップダウンリストから [ディレクトリでフィルターする] を選択し、コンテンツに /home/admin/*/dirと入力した場合、/home/admin/ ディレクトリの各サブディレクトリにあるすべてのファイルがスキップされます。
たとえば、/home/admin/a/dirディレクトリのファイルはスキップされますが、/home/admin/a/b/dirディレクトリのファイルはスキップされません。
[フィルターの種類] 列のドロップダウンリストから [ファイルでフィルター] を選択し、コンテンツに /home/admin/private *.logと入力した場合、名前の接頭辞がprivate、接尾辞が /home/admin/ ディレクトリへのログインはスキップされます。
[フィルタータイプ] 列のドロップダウンリストから [ファイルでフィルター] を選択し、[コンテンツ] に /home/admin/private */*_inner.logと入力した場合、/home/admin/ ディレクトリのプレフィックスがprivateであるサブディレクトリ内の_inner.logという名前のファイルはすべてスキップされます。
たとえば、/home/admin/private/app_inner.logファイルはスキップされますが、/home/admin/private/app.logファイルはスキップされません。
説明このパラメーターを設定すると、アスタリスク (*) または疑問符 (?) のみをワイルドカード文字として使用できます。
アスタリスク (*) を使用して、複数の文字を一致させることができます。
疑問符 (?) を使用して、1つの文字を一致させることができます。
ワイルドカード文字を使用してログパスを設定し、指定したディレクトリ内の一部のディレクトリをスキップする場合は、ブラックリストを設定して完全なディレクトリを入力する必要があります。
たとえば、ログパスを /home/admin/app * /Log /*.logに設定し、/home/admin/app1 * ディレクトリ内のすべてのサブディレクトリをスキップする場合は、[ディレクトリでフィルター] を選択し、/home/admin/app1 */** と入力してブラックリストを設定する必要があります。 /home/admin/app1 * と入力した場合、ブラックリストは有効になりません。
ブラックリストが使用されているとき、計算オーバーヘッドが生成される。 ブラックリストには最大10エントリを追加することを推奨します。
スラッシュ (/) で終わるディレクトリパスは指定できません。 たとえば、パスを /home/admin/dir1/ に設定した場合、ディレクトリのブラックリストは有効になりません。
Docker ファイル
Dockerコンテナからログを収集する場合は、Dockerファイルをオンにして、コンテナのディレクトリとタグを指定する必要があります。 Logtailはコンテナを監視して、コンテナが作成されたか破棄されたかを確認し、タグでコンテナをフィルタリングし、フィルタリング結果のコンテナからログを収集します。 詳細については、「Simple Log Serviceコンソールを使用してDaemonSetモードでコンテナテキストログを収集する」をご参照ください。
モード
収集モードを選択します。 デフォルト値: Simple Mode - Multi-line モードを変更できます。
ログのサンプル
実際のシナリオから収集されたサンプルログを入力します。 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)
単一行のテキストログをシンプルモードで収集する場合は、このパラメーターを設定する必要はありません。
Regex to Match First Line
ログの最初の行の先頭に一致するように正規表現を設定します。 Logtailは正規表現を使用してログの最初の行の先頭と一致し、正規表現と一致しないコンテンツをログの一部と見なします。 Log Serviceは、正規表現を自動的に生成したり、手動で指定した正規表現を使用したりできます。
自動生成
サンプルの複数行テキストログを入力したら、[自動生成] をクリックします。 Log Serviceは、ログの最初の行の先頭に一致する正規表現を自動的に生成します。
手動設定
サンプルの複数行テキストログを入力した後、[手動] をクリックし、ログの最初の行の先頭に一致する正規表現を手動で指定します。 次に、[検証] をクリックして、正規表現が有効かどうかを確認します。 詳細については、次をご参照ください: 正規表現をテストするにはどうすればよいですか?
単一行のテキストログをシンプルモードで収集する場合は、このパラメーターを設定する必要はありません。
ドロップログの解析に失敗
解析に失敗したログを削除するかどうかを指定します。
[ログの解析に失敗した削除] をオンにした場合、解析に失敗したログはLog Serviceにアップロードされません。
[ログの解析に失敗した削除] をオフにした場合、解析に失敗したログは、__raw__ フィールドの値としてLog Serviceにアップロードされます。
監視ディレクトリの最大深度
監視するサブディレクトリのレベルの最大数を指定します。 サブディレクトリは、指定したログファイルディレクトリにあります。 有効な値: 0 ~ 1000 値が0の場合は、指定したログファイルディレクトリのみを監視することを指定します。
ビジネス要件に基づいて詳細設定を構成できます。 詳細設定は変更しないことをお勧めします。 詳細設定のパラメーターを次の表に示します。
パラメーター
説明
プラグイン処理の有効化
ログが複雑で、NGINXモード、フル正規表現モード、JSONモードなどのモードで解析できない場合は、[プラグイン処理の有効化] をオンにして、ログを解析するLogtailプラグインを追加できます。
Log Serviceは、選択した収集モードに基づいてデフォルトのプラグイン設定を生成します。 processorsフィールドを設定することで、他のプラグイン設定を既定のプラグイン設定に追加できます。 詳細については、「データ処理用Logtailプラグインの概要」をご参照ください。
重要[プラグイン処理の有効化] をオンにすると、[生ログのアップロード] 、[タイムゾーン] 、[ログの解析に失敗したドロップ] 、[フィルタ設定] 、[エントリのアップロードが不完全 (デリミターモード)] などのパラメーターが使用できなくなります。
生ログのアップロード
[生ログのアップロード] をオンにすると、各生ログは、生ログから解析されたログとともに、__Raw__ フィールドの値としてLog Serviceにアップロードされます。
Topic の生成方法
トピック生成モードを選択します。 詳細については、「ログトピック」をご参照ください。
Null-トピックを生成しない: このモードでは、トピックフィールドは空の文字列に設定されます。 ログを照会するときに、トピックを指定する必要はありません。 デフォルト値です。
マシングループトピック属性: このモードでは、トピックはマシングループレベルで設定されます。 異なるサーバーによって生成されたログを区別する場合は、このモードを選択します。
ファイルパス正規表現: このモードでは、カスタム正規表現フィールドで正規表現を指定する必要があります。 ログパスの正規表現に一致する部分がトピックとして使用されます。 異なるユーザーまたはインスタンスによって生成されたログを区別する場合は、このモードを選択します。
ログファイルのエンコーディング
ログファイルのエンコード形式。 有効な値: utf8とgbk。
タイムゾーン
ログを収集するタイムゾーンを選択します。 有効な値:
システムタイムゾーン: この値を選択すると、Logtailがインストールされているサーバーまたはコンテナーのタイムゾーンが使用されます。
カスタム: この値を選択する場合、ビジネス要件に基づいてタイムゾーンを選択する必要があります。
タイムアウト
ログファイルが指定された期間内に更新されない場合、Logtailはモニタリングがタイムアウトしたと見なします。
Never: すべてのログファイルは継続的に監視され、監視がタイムアウトすることはありません。
30 分タイムアウト: ログファイルが30分以内に更新されない場合、Logtailはモニタリングがタイムアウトしたと見なし、ファイルをモニタリングしなくなります。
30 Minute Timeoutを選択した場合、Maximum Timeout Directory Depthパラメーターを設定する必要があります。 有効な値: 1 ~ 3。
フィルターの設定
ログの収集に使用するフィルター条件を指定します。 フィルター条件は、KeyとRegexで構成されます。 Keyは必須フィールドの名前を指定し、Regexはフィルタリングに使用される正規表現を指定します。 フィルター条件間の論理演算子はANDです。
重要シンプルモードでは、コンテンツフィールドのみが生成されます。 フィルター条件を指定する場合、Keyはcontentのみに設定できます。
指定する正規表現は、フルテキスト照合のみをサポートします。 キーワードマッチングはサポートされていません。
例:
指定されたフィルター条件に一致するログを収集します。
Keyをlevelに設定し、RegexをWARNING | ERRORに設定した場合、levelの値がWARNINGまたはERRORであるログのみが収集されます。
設定した場合キーへコンテンツとセット正規表現へ. * 05\/Jan\/2023.*の値がのログのみコンテンツ含まれている05/Jan/2023収集されます。
指定されたフィルター条件に一致しないログを除外します。
Keyをlevelに設定し、Regexを ^(?!.*(INFO | DEBUG)).* に設定した場合、levelの値にINFOまたはDEBUGが含まれるログは除外されます。
Keyをlevelに設定し、Regexを ^(?!(INFO | DEBUG)$).* に設定した場合、levelの値がINFOまたはDEBUGであるログは除外されます。
設定した場合キーへurlとセット正規表現へ. * ^(?!.*(healthcheck)).*の値がのログurl含まれているhealthcheckは除外されます。
正規表現を指定する方法の詳細については、「正規表現の使い方」をご参照ください。
最初のコレクションのサイズ
Logtailがファイルからログを最初に収集するときに、Logtailがログファイルから収集できるデータのサイズを指定します。 First Collection Sizeのデフォルト値は1024です。 (単位:KB)
ファイルサイズが1,024 KB未満の場合、Logtailはファイルの先頭からデータを収集します。
ファイルサイズが1,024 KBを超える場合、Logtailはファイル内の最後の1,024 KBのデータを収集します。
ビジネス要件に基づいて、最初のコレクションサイズを指定できます。 有効な値: 0 ~ 10485760 (単位:KB)
その他の設定
Logtailの拡張設定を指定します。 詳細については、「advanced」をご参照ください。
たとえば、現在のLogtail設定を使用して、異なるLogtail設定に一致するログファイルからログを収集し、ログが集計されてlog Serviceに送信される間隔を指定する場合は、現在のLogtailの拡張設定を指定できます。
{ "force_multiconfig": true, "batch_send_interval": 3 }
[次へ] をクリックしてLogtail設定の作成を完了します。 その後、Log Serviceはログの収集を開始します。
説明Logtail設定を有効にするには、最大3分かかります。
Logtailを使用してログを収集するときにエラーが発生した場合は、Logtail収集エラーの表示方法? とSimple Log Serviceがログを収集するときに発生する可能性のある一般的なエラーのトラブルシューティング方法を教えてください。
データをプレビューし、インデックスを設定し、[次へ] をクリックします。
デフォルトでは、Log Serviceでフルテキストインデックスが有効になっています。 手動モードまたは自動モードで収集したログに基づいてフィールドインデックスを設定することもできます。 自動モードでフィールドインデックスを設定するには、[自動インデックス生成] をクリックします。 これにより、Log Serviceは自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。
重要ログをクエリおよび分析する場合は、フルテキストインデックス作成またはフィールドインデックス作成を有効にする必要があります。 フルテキストインデックスとフィールドインデックスの両方を有効にすると、フィールドインデックスのみが使用されます。
[ログクエリ] をクリックします。 Logstoreのクエリと分析ページにリダイレクトされます。
インデックスが有効になるまで約1分待つ必要があります。 次に、収集したログを [生ログ] タブで表示できます。 詳細については、「ログの照会と分析」をご参照ください。
トラブルシューティング
Logtailを使用してログを収集した後、プレビューページまたはクエリページにデータが表示されない場合は、Logtailを使用してログを収集するときにエラーが発生した場合はどうすればよいですか?