既存ファイル収集、データ移行、バッチデータ処理などのユースケースでは、従来の増分ログ収集では既存の静的ファイルを一度に収集できません。サーバーテキストログのワンタイム収集機能を使用すると、コンソールまたは API を介して収集設定をマシングループに一括でデプロイできます。これにより、指定された静的ファイルの内容が一度収集され、タスクは自動的に終了します。
適用範囲
LoongCollector バージョン 3.3 以降。
LoongCollector は Linux および Windows でのホスト収集をサポートしますが、コンテナ収集はサポートしません。
収集設定
事前準備:プロジェクトと Logstore を作成します。プロジェクトは、異なるサービスのログを分離するリソース管理ユニットです。Logstore はログを保存します。
マシングループの設定 (LoongCollector のインストール):サーバータイプに基づいて LoongCollector をインストールし、マシングループに追加します。マシングループを使用して、収集ノードの管理、設定の配布、サーバーの健全性の監視を行います。
グローバル設定と入力設定:収集設定に名前を付け、ログソースと範囲を指定します。
ログの処理と構造化:ログ形式に基づいて処理設定を行います。
複数行ログ:Java スタックトレースや Python トレースバックなど、複数行にまたがるログエントリを処理します。行頭正規表現を使用して各ログエントリの開始を識別し、後続の行を単一のレコードにマージします。
構造化解析:パーサープラグイン (正規表現、区切り文字、NGINX モードなど) を設定して、生文字列を構造化されたキーと値のペアに解析します。これにより、各フィールドを個別にクエリおよび分析できます。
ログフィルタリング:収集ブラックリストとコンテンツフィルタリングルールを設定して、関連するログのみを選択し、冗長なデータ転送とストレージを削減します。
ログ分類:ログトピックを設定して、異なるサービス、サーバー、またはソースパスからのログを柔軟に分類します。
クエリと分析の設定:フルテキストインデックスはデフォルトで有効になっており、キーワード検索をサポートします。構造化フィールドの場合、フィールドインデックスを有効にして検索効率を向上させ、正確なクエリと分析をサポートします。
収集結果の検証:設定完了後、ログが正常に収集されたことを確認します。ログが収集されない、ハートビートの失敗、解析エラーなどの問題が発生した場合は、「よくある質問」をご参照ください。
前提条件
ログを収集する前に、ログを管理および保存するためのプロジェクトと Logstore を作成する必要があります。これらのリソースがすでにある場合は、このステップをスキップして「マシングループの設定 (LoongCollector のインストール)」に進んでください。
プロジェクトの作成
Logstore の作成
ステップ 1:マシングループの設定
前提条件を完了した後、異なるタイプのサーバーに LoongCollector をインストールし、マシングループに追加します。
これらのインストール手順は、ログソースが Log Service プロジェクトと同じ Alibaba Cloud アカウントおよびリージョンにある ECS インスタンスの場合にのみ適用されます。
ご利用の ECS インスタンスとプロジェクトが同じアカウントまたはリージョンにない場合、またはログソースがオンプレミスサーバーである場合は、「LoongCollector のインストールと設定」をご参照ください。
操作手順:
[
Logstores] ページで、対象の Logstore 名の横にある [
] をクリックして展開します。をクリックします。[Logtail ワンタイム設定] タブで、Logtail 設定の追加 をクリックします。
データのインポート ダイアログボックスで、[ワンタイムファイル収集 - ホスト] カードにある 今すぐ統合 をクリックします。
[サーバグループ設定] ページで、次のパラメーターを設定します:
使用シナリオ: ホストシナリオ
インストール環境:ECS
マシングループの選択:対象サーバー上の LoongCollector とマシングループのステータスに基づいてアクションを選択します:
LoongCollector がインストールされ、マシングループに追加されている場合は、[ソースサーバーグループ] リストから選択し、[適用されたサーバーグループ] リストに追加します。新しく作成する必要はありません。
LoongCollector がインストールされていない場合は、[マシングループの作成 をクリックします:
以下の手順は、LoongCollector をワンクリックでインストールし、マシングループを作成するプロセスを説明しています。
システムは、プロジェクトと同じリージョンにある ECS インスタンスを自動的にリストアップします。ログを収集したいインスタンスを 1 つ以上選択します。
マシングループとしてインストールおよび作成する をクリックします。システムは選択された ECS インスタンスに LoongCollector を自動的にインストールします。
マシングループの [名前 を入力し、[OK をクリックします。
説明インストールが失敗するか、保留状態のままの場合は、ECS インスタンスがプロジェクトと同じリージョンにあることを確認してください。
LoongCollector がすでにインストールされているサーバーを既存のマシングループに追加するには、「既存のマシングループにサーバーを追加するにはどうすればよいですか?」をご参照ください。
ハートビートステータスの確認:[次へ をクリックします。[マシングループのハートビートステータス] セクションが表示されたら、[ハートビート を確認します。ステータスが OK の場合、マシングループは正常に接続されています。[次へ をクリックして Logtail 構成ページに進みます。
ステータスが FAIL の場合、最初のハートビートを確立するのに時間がかかることがあります。約 2 分待ってからハートビートステータスを更新してください。更新後もステータスが FAIL の場合は、「マシングループのハートビート接続に失敗する」を参照して、さらなるトラブルシューティングを行ってください。
ステップ 2:ワンタイムファイル収集ルールの設定
LoongCollector のインストールとマシングループの設定が完了したら、[Logtail 設定 ページに移動して、ログ収集と処理ルールを定義します。
1. グローバル設定と入力設定
収集設定の名前を定義し、ログ収集のソースと範囲を指定します。
グローバル設定:
設定名:収集設定のカスタム名を指定します。名前はプロジェクト内で一意である必要があり、作成後に変更することはできません。命名規則は次のとおりです:
小文字、数字、ハイフン (-)、アンダースコア (_) のみを含めることができます。
小文字または数字で開始および終了する必要があります。
実行タイムアウト時間:デフォルトは 600 秒 (10 分) で、タイムアウトは 600 秒から 604,800 秒 (10 分から 7 日) の間で設定できます。収集タスクがこのタイムアウトを超えると、強制的に停止され、残りのデータは収集されません。
重要設定の更新に関する注意:設定を更新すると、その有効期間がリセットされます。タスクの重複実行や予期しないデータレポートを防ぐために、マシングループの範囲が正しく、前回のタスク実行時間が [実行タイムアウト時間 を超えていないことを確認してください。
[更新時に強制的に再実行]:デフォルトではオフです。
オフ:
実行タイムアウト時間 または 入力設定 以外の収集設定パラメーターを更新すると、システムはタスクを再起動するのではなく、現在の収集の進捗を再開します。これにより、収集が中断されることはありません。
実行タイムアウト時間 または 入力設定 を変更すると、システムは収集タスクを再実行します。
オン:収集設定を更新すると、タスクは強制的に再起動します。これにより、すべてのデータが最新の設定に従って処理およびレポートされることが保証されます。注意:更新前に収集されたデータは削除されません。以前に収集されたデータをクリアするには、「Simple Log Service のソフトデリート」をご参照ください。
入力設定:
タイプ:1 回限りのファイル収集 (LoongCollector 3.3 以降のバージョンで利用可能)。
ファイルパス:ログが収集されるパス。
説明LoongCollector は、設定を取得する際に収集するファイルのリストとそのサイズを決定します。この時点以降に新しく作成されたファイルや既存のファイルに追加された内容は収集しません。
Linux:パスはスラッシュ (
/) で始まる必要があります。例えば、/data/mylogs/**/*.logは/data/mylogsのすべてのサブディレクトリにある.log拡張子を持つすべてのファイルを収集します。Windows:パスはドライブ文字で始まる必要があります。例えば、
C:\Program Files\Intel\**\*.Log。
ディレクトリ監視の最大深度: ファイルパス 内のワイルドカード
**がマッチできるディレクトリの最大深度です。デフォルト値は 0 で、これは現在のディレクトリのみが監視されることを意味します。
2. ログの処理と構造化
ログ処理ルールを設定して、生の非構造化ログを構造化された検索可能なデータに変換し、クエリと分析の効率を向上させます。まず [ログサンプルを追加] することをお勧めします。
Logtail 設定 ページの 設定の処理 エリアで、ログサンプルの追加 をクリックしてログの内容を入力します。システムはこのサンプルを使用してログフォーマットを識別し、正規表現と解析ルールの生成を支援します。これにより、設定プロセスが簡素化されます。
シナリオ 1:複数行ログの処理
Java 例外スタックトレースや JSON オブジェクトなどのログエントリは、しばしば複数行にわたります。デフォルトの収集モードでは、このようなエントリは複数の不完全なレコードに分割され、コンテキストが失われます。これを防ぐには、複数行モードを有効にし、行頭正規表現を設定して、同じログエントリに属する連続した行を単一の完全なログにマージします。
例:
生ログ | デフォルトモード | 複数行モード |
| クエリ結果では、各ログエントリに IP アドレス | Simple Log Service コンソールでは、 |
操作手順:[Logtail 設定 ページの [設定の処理 エリアで、[マルチラインモード を有効にします:
タイプ: カスタム または マルチライン JSON を選択します。
カスタム:一貫性のない形式のログにはこのオプションを使用します。各ログエントリの開始を識別するために、[行先頭の正規表現 を設定する必要があります。
行先頭の正規表現:この式は自動的に生成するか、手動で入力できます。正規表現はデータの完全な行に一致する必要があります。例えば、サンプルログの式は
\[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*です。式を自動的に生成するには、[ヘルプ をクリックし、[ログサンプル テキストボックスで目的のログコンテンツを選択し、[正規表現の生成 をクリックします。
式を手動で入力するには、手動で入力 をクリックし、式を入力してから 検証 をクリックします。
マルチライン JSON:生ログが標準の JSON 形式である場合、Simple Log Service は単一の JSON ログエントリ内の改行を自動的に処理します。
分割失敗の処理方法:
Discard:テキストブロックが行頭ルールに一致しない場合、破棄されます。
単一行を保持:ルールに一致しないテキストは、代わりに単一行モードで処理され、各行が個別のログとして扱われます。
シナリオ 2:構造化ログの処理
NGINX アクセスログやアプリケーション出力など、非構造化ログや半構造化ログのクエリと分析は非効率的になることがあります。Simple Log Service は、さまざまな形式の生ログを自動的に構造化データに変換するさまざまなデータ処理プラグインを提供します。これにより、後続の分析、モニタリング、アラート機能のための強固な基盤が提供されます。
例:
生ログ | 構造化ログ |
| |
手順: Logtail 設定 ページの 設定の処理 エリアで:
プロセッサプラグインの追加: 処理プラグインの追加 をクリックし、ログフォーマットに基づいて 正規表現、デリミタ、または JSON 解析 などのプラグインを設定します。 この例では NGINX ログを使用し、 を選択します。
NGINX ログの設定:NGINX サーバーの設定ファイル (nginx.conf) から
log_format定義全体をコピーし、このテキストボックスに貼り付けます。例:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$request_time $request_length ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent"';重要ここでのフォーマット定義は、サーバーでログを生成するために使用されるフォーマットと完全に一致する必要があります。そうでない場合、解析は失敗します。
共通パラメーター:以下のパラメーターは複数のデータプロセッサプラグインで共通しており、同じ目的を果たします。
元のフィールド:解析するソースフィールドを指定します。デフォルトは
contentで、収集されたログエントリ全体です。解析失敗時に元のフィールドを保持:推奨。プラグインがログの解析に失敗した場合、例えばフォーマットの不一致により、このオプションは指定された元のフィールドに元のログコンテンツを保持します。
解析成功時に元のフィールドを保持:このオプションは、解析が成功した後でも元のログコンテンツを保持します。
3. ログフィルタリング
DEBUG や INFO エントリなど、価値の低いまたは無関係なログを大量に収集すると、ストレージを浪費し、コストを増加させ、クエリ効率を低下させ、データ漏えいのリスクをもたらします。これらの問題に対処するために、効率的で安全なログ収集のために詳細なフィルタリングルールを使用します。
コンテンツフィルタリング
フィールドの内容に基づいてログをフィルタリングします。例えば、level が WARNING または ERROR のログのみを収集します。
例:
生ログ |
|
| |
手順:Logtail 設定 ページの 設定の処理 エリアで:
[処理プラグインの追加 をクリックし、 を選択します:
Field Name:フィルタリングするログフィールド。
フィールド値:フィルタリングに使用される正規表現。全文一致のみがサポートされており、部分的なキーワード一致はサポートされていません。
収集ブラックリスト
ブラックリストを使用して、指定されたディレクトリやファイルを除外し、無関係または機密性の高いログのアップロードを防ぎます。
手順: Logtail 設定 ページで、 エリアに移動し、ブラックリストの収集 を有効にし、追加 をクリックします。
ディレクトリとファイル名には、完全一致とワイルドカード一致がサポートされています。サポートされているワイルドカードは、アスタリスク (*) と疑問符 (?) のみです。
ファイルパスのブラックリスト:無視するファイルパス。例:
/home/admin/private*.log:収集時に/home/admin/ディレクトリ内のprivateで始まり.logで終わるすべてのファイルを無視します。/home/admin/private*/*_inner.log:/home/admin/ディレクトリ内のprivateで始まるディレクトリにある_inner.logで終わるファイルを無視します。
ファイルのブラックリスト:収集中に無視するファイル名。例:
app_inner.log:収集時にapp_inner.logという名前のすべてのファイルを無視します。
ディレクトリのブラックリスト:ディレクトリパスはスラッシュ (
/) で終わることはできません。例:/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ディレクトリ内のファイルは収集されます。
4. ログの分類
/apps/app-A/run.log や /apps/app-B/run.log のように、複数のアプリケーションやインスタンスからのログが同じ形式を共有しているがパスが異なる場合、収集後にそのソースを区別するのが困難になることがあります。ログトピックを設定することで、さまざまなアプリケーション、サービス、またはパスからのログを論理的に区別できます。これにより、統一されたストレージ送信先内で効率的な分類と正確なクエリが可能になります。
操作手順: エリアで、トピック生成方法を選択します。以下のタイプがサポートされています:
マシングループトピック:収集設定を複数のマシングループに適用すると、LoongCollector はサーバーのマシングループ名を
__topic__フィールドの値として自動的に使用します。これは、ホストごとにログを分類するのに役立ちます。カスタム:
customized://<custom-topic-name>の形式を使用します。例:customized://app-login。この方法は、固定のビジネス識別子を持つ静的なトピックに適しています。ファイルパス抽出:ログファイルの完全なパスからキー情報を抽出し、ログソースを動的にタグ付けします。これは、複数のユーザーやアプリケーションが同じログファイル名を共有しているが、異なるパスに存在する場合に役立ちます。例えば、複数のユーザーやサービスが異なるトップレベルディレクトリにログを書き込むが、同じサブディレクトリパスとファイル名を使用している場合、ファイル名だけではソースを区別できません:
/data/logs ├── userA │ └── serviceA │ └── service.log ├── userB │ └── serviceA │ └── service.log └── userC └── serviceA └── service.logこの場合、ファイルパス抽出を設定し、正規表現を使用して完全なパスからキー情報を抽出できます。一致した結果は、ログトピックとして Logstore にアップロードされます。
ファイルパス抽出ルール
正規表現を設定すると、システムはキャプチャグループの数と名前に基づいて出力フィールドの形式を自動的に決定します。ルールは次のとおりです:
ファイルパスの正規表現では、スラッシュ (
/) をエスケープする必要があります。キャプチャグループのタイプ
ユースケース
生成されるフィールド
正規表現の例
一致したパスのサンプル
生成されたフィールドのサンプル
単一のキャプチャグループ (1 つの
(.*?)のみ)ユーザー名や環境など、ソースを区別するために 1 つのディメンションのみが必要な場合。
__topic__フィールドを生成します。\/logs\/(.*?)\/app\.log/logs/userA/app.log__topic__: userA複数のキャプチャグループ - 名前なし (複数の
(.*?))ソースを区別するために複数のディメンションが必要だが、意味的なラベルは不要な場合。
タグフィールド
__tag__:__topic_{i}__を生成します。ここで{i}はキャプチャグループのインデックスです。\/logs\/(.*?)\/(.*?)\/app\.log/logs/userA/svcA/app.log__tag__:__topic_1__:userA;__tag__:__topic_2__:svcA名前付き複数キャプチャグループ (
(?P<name>.*?)を使用)ソースを区別するために複数のディメンションが必要で、クエリと分析を容易にするために明確で意味のあるフィールド名が必要な場合。
タグフィールド
__tag__:{name}を生成します。\/logs\/(?P<user>.*?)\/(?P<service>.*?)\/app\.log/logs/userA/svcA/app.log__tag__:user:userA;__tag__:service:svcA
ステップ 3:クエリと分析
ログ処理とプラグイン設定が完了したら、[次へ をクリックして [クエリと分析の設定 ページに移動します。
フルテキストインデックスはデフォルトで有効になっており、生ログコンテンツのキーワード検索をサポートします。
フィールドでクエリするには、[プレビューデータ] がロードされたら、[自動インデックスの生成 をクリックします。Log Service は、プレビューの最初のエントリに基づいて フィールドインデックスを生成します。
設定が完了したら、[次へ をクリックして収集プロセスを完了します。
ステップ 4:収集結果の検証
構成が有効になると、ターゲット Logstore のクエリと分析ページで、検索と分析 をクリックしてログデータを表示できます。
よくある質問
ワンタイム収集のライフサイクル
ワンタイム収集設定が作成されると、以下のライフサイクルに従います:
設定配布ウィンドウ:LoongCollector (Logtail) は、作成後 5 分以内に設定をプルできます。5 分が経過すると、新しい LoongCollector (Logtail) インスタンスはこの設定を取得できなくなります。
自動設定削除:Log Service は、作成後 7 日で設定を自動的に削除します。
タスク実行:収集タスクは実行タイムアウト内に完了する必要があります。タスクが実行タイムアウトを超えた場合、システムは強制的にタスクを停止します。
ワンタイム収集とレガシーファイル収集の比較
従来の既存ファイル収集方法はもはや推奨されません。既存データをインポートするには、ワンタイムファイル収集を使用してください。手動で設定ファイルを作成する必要があった従来の方法と比較して、ワンタイムファイル収集は設定の効率、信頼性、可観測性を大幅に向上させます。以下の表に詳細な比較を示します:
比較項目 | 従来の方法 | ワンタイムファイル収集 |
設定方法 | 各サーバーに | コンソールまたは API で設定を作成し、マシングループに一括でデプロイします。 |
ファイルマッチング | ファイルパスとファイル名を手動で入力します。 |
|
進捗監視 | ステータスレポートやローカルログはありません。 | チェックポイントを使用して収集の進捗を追跡し、各ファイルの現在のオフセットまでの粒度で管理します。 |
信頼性 | 低。リソース制御やチェックポイントメカニズムのない別のプロセスとして実行されます。 | 高。標準のパイプラインレベルのリソース管理を使用し、他の収集タスクへの影響を避けるためのフロー制御をサポートし、再開可能な転送を可能にします。 |
柔軟性 | 低。既存の収集設定を使用する必要があります。 | 高。収集設定を編成し、タスク中に変更できます。 |
マシングループのハートビートが FAIL になる
ユーザー ID を確認します。ご利用のサーバーが ECS インスタンスでない場合、または ECS インスタンスとプロジェクトが異なる Alibaba Cloud アカウントに属している場合は、指定されたディレクトリに正しいユーザー ID ファイルが存在するかどうかを確認します。存在しない場合は、以下のコマンドのいずれかを使用して手動で作成します。
Linux:
cd /etc/ilogtail/users/ && touch <uid>コマンドを実行してユーザー識別子ファイルを作成します。Windows:
C:\LogtailData\users\ディレクトリに移動し、<uid>という名前の空のファイルを作成します。
マシングループ識別子を確認します:マシングループを作成する際にユーザー定義 ID を使用した場合は、指定されたディレクトリに
user_defined_idファイルが存在するかどうかを確認します。存在する場合は、ファイルの内容がマシングループに設定されているユーザー定義 ID と一致するかどうかを確認します。Linux:
# ユーザー定義 ID を設定します。ディレクトリが存在しない場合は、手動で作成してください。 echo "user-defined-1" > /etc/ilogtail/user_defined_idWindows:
C:\LogtailDataディレクトリにuser_defined_idファイルを作成し、ユーザー定義 ID を書き込みます。(ディレクトリが存在しない場合は、手動で作成してください。)
ユーザー ID とマシングループ識別子の両方が正しい場合は、「LoongCollector (Logtail) のマシングループの問題のトラブルシューティング」でトラブルシューティング手順をご参照ください。
既存のマシングループへのサーバーの追加
新しくデプロイされた ECS インスタンスや自己管理サーバーなどの新しいサーバーを既存のマシングループに追加するには、以下の手順に従ってグループに関連付け、その収集設定を適用します。
ワンタイム収集設定が作成されてから 5 分以上経過した後にサーバーがマシングループに追加された場合、そのサーバーは設定を受信しません。収集設定ページの上部にあるカウントダウンタイマーで残り時間を確認してください。
前提条件
既存のマシングループ。
LoongCollector (Logtail) は新しいサーバーにインストールされています。
操作手順
対象のマシングループの識別子を表示します。
対象のプロジェクトで、左側のナビゲーションウィンドウで
をクリックします。[マシングループ] ページで、対象のマシングループの名前をクリックします。
マシングループ設定ページで、マシングループ識別子を表示します。
識別子のタイプに基づいて、以下のいずれかのアクションを実行します。
説明1 つのマシングループに Linux サーバーと Windows サーバーの両方を含めることはできません。Linux サーバーと Windows サーバーの両方で同じユーザー定義 ID を設定しないでください。1 つのサーバーに複数のユーザー定義 ID を設定するには、改行で区切ります。
タイプ 1:マシングループ識別子が IP アドレスの場合
サーバーで、以下のコマンドを実行して
app_info.jsonファイルを開き、ipの値を確認します。cat /usr/local/ilogtail/app_info.json対象のマシングループの設定ページで、[変更 をクリックし、サーバーの IP アドレスを入力します。複数の IP アドレスがある場合は、改行で区切ります。
設定が完了したら、[保存 をクリックし、ハートビートステータスを確認します。ステータスが OK の場合、サーバーはマシングループの収集設定を自動的に適用します。
ハートビートステータスが FAIL の場合は、「マシングループのハートビートが FAIL になる」でトラブルシューティングの手順をご参照ください。
タイプ 2:マシングループ識別子がユーザー定義 ID の場合
オペレーティングシステムに基づいて、対象のマシングループに一致するユーザー定義 ID 文字列を指定されたファイルに書き込みます:
ディレクトリが存在しない場合は、手動で作成してください。ファイルパスと名前は Log Service によって固定されており、カスタマイズできません。
Linux:カスタム文字列を
/etc/ilogtail/user_defined_idファイルに書き込みます。Windows:カスタム文字列を
C:\LogtailData\user_defined_idに書き込みます。
付録:ネイティブ処理プラグイン
正規表現解析
正規表現を使用してログフィールドを抽出し、ログをキーと値のペアに解析します。各フィールドは個別にクエリおよび分析できます。
例:
|
未処理の生ログ |
正規表現解析プラグインの使用 |
|
|
操作手順:[Logtail 構成] ページの [プロセッサ設定] セクションで、[プロセッサを追加] をクリックし、 を選択します:
-
[正規表現]:ログに一致させるために使用する式。自動生成するか、手動で入力します:
-
自動生成:
-
[生成] をクリックします。
-
[ログサンプル] で、抽出するログの内容を選択します。
-
[正規表現を生成] をクリックします。

-
-
手動入力: ログ形式に基づいて[正規表現を手動で入力する]。
設定後、[検証] をクリックして、正規表現がログコンテンツを正しく解析できるかテストします。
-
-
[抽出されたフィールド]:抽出されたログコンテンツ (値) に対応するフィールド名 (キー)。
-
その他のパラメーターについては、「ユースケース 2:構造化ログ」の共通設定パラメーターの説明をご参照ください。
その他のパラメーターについては、「シナリオ 2:構造化ログ」の一般的なパラメーターの説明をご参照ください。
区切り文字解析
区切り文字を使用してログコンテンツを構造化し、複数のキーと値のペアに解析します。単一文字および複数文字の区切り文字の両方がサポートされています。
例:
|
未処理の生ログ |
指定された文字 |
|
|
操作手順:[Logtail 構成] ページの [プロセッサ設定] セクションで、[プロセッサを追加] をクリックし、 を選択します:
-
[区切り文字]:ログコンテンツを分割するために使用する文字を指定します。
例:CSV ファイルの場合、[カスタム] を選択し、カンマ (,) を入力します。
-
[引用符]:フィールド値に区切り文字が含まれている場合、誤った分割を防ぐためにフィールド値を引用符で囲む必要があります。
-
[抽出されたフィールド]:各列のフィールド名 (キー) を表示順に指定します。ルールは次のとおりです:
-
フィールド名には、文字、数字、アンダースコア (_) のみを含めることができます。
-
文字またはアンダースコア (_) で始まる必要があります。
-
最大長:128 バイト。
-
-
その他のパラメーターについては、「ユースケース 2:構造化ログ」の共通設定パラメーターの説明をご参照ください。
その他のパラメーターについては、「シナリオ 2:構造化ログ」の一般的なパラメーターの説明をご参照ください。
JSON 解析
オブジェクトタイプの JSON ログをキーと値のペアに解析して構造化します。
例:
|
未処理の生ログ |
標準 JSON キーと値のペアの自動抽出 |
|
|
手順: [Logtail 設定] ページの [プロセッサー設定] セクションで、[プロセッサーの追加] をクリックし、 を選択します:
-
[元のフィールド]:解析対象の生ログを含むフィールド。デフォルト値は content です。
-
その他のパラメーターについては、「ユースケース 2:構造化ログ」の共通設定パラメーターの説明をご参照ください。
その他のパラメーターについては、「シナリオ 2:構造化ログ」の一般的なパラメーターの説明をご参照ください。
ネストされた JSON 解析
展開深度を指定して、ネストされた JSON ログをキーと値のペアに解析します。
例:
|
未処理の生ログ |
展開深度:0、展開深度をプレフィックスとして使用 |
展開深度:1、展開深度をプレフィックスとして使用 |
|
|
|
操作手順:[Logtail 構成] ページの [プロセッサ設定] セクションで、[プロセッサを追加] をクリックし、 を選択します:
-
[元のフィールド]:展開するソースフィールドの名前を指定します。例:
content。 -
[JSON 展開深度]:JSON オブジェクトの展開深度。0 (デフォルト) は完全な展開、1 は現在のレベルの展開を示します。
-
[展開されたキーを連結する文字]:JSON オブジェクトが展開されたときのフィールド名の区切り文字。デフォルト値はアンダースコア (_) です。
-
[展開されたキーの名前プレフィックス]:JSON 展開後のフィールド名のプレフィックス。
-
[配列の展開]:配列をインデックス付きのキーと値のペアに展開します。
例:
{"k":["a","b"]}は{"k[0]":"a","k[1]":"b"}に展開されます。展開されたフィールドの名前を変更する (例えば、prefix_s_key_k1 を new_field_name に変更する) には、後で フィールド名変更プラグインを追加してマッピングを完了します。
-
その他のパラメーターについては、「ユースケース 2:構造化ログ」の共通設定パラメーターの説明をご参照ください。
その他のパラメーターについては、「シナリオ 2:構造化ログ」の一般的なパラメーターの説明をご参照ください。
JSON 配列解析
json_extract 関数を使用して、JSON 配列から JSON オブジェクトを抽出します。
例:
|
未処理の生ログ |
JSON 配列構造の抽出 |
|
|
操作手順:[Logtail 構成] ページの [プロセッサ設定] セクションで、[処理モード] を [SPL] に切り替え、[SPL ステートメント] を設定し、json_extract 関数を使用して JSON 配列から JSON オブジェクトを抽出します。
例:ログフィールド content の JSON 配列から要素を抽出し、結果を新しいフィールド json1 と json2 に保存します。
* | extend json1 = json_extract(content, '$[0]'), json2 = json_extract(content, '$[1]')Apache ログ解析
Apache ログ設定ファイルの定義に基づいて、ログコンテンツを複数のキーと値のペアに構造化します。
例:
|
未処理の生ログ |
Apache 共通ログ形式 |
|
|
操作手順:[Logtail 構成] ページの [プロセッサ設定] セクションで、[プロセッサを追加] をクリックし、 を選択します:
-
[ログ形式] は [combined] です。
-
[APACHE LogFormat 設定] は、[ログ形式] に基づいて自動的に入力されます。
重要自動入力された内容が、サーバーの Apache 設定ファイル (通常は /etc/apache2/apache2.conf にあります) で定義されている LogFormat と完全に同じであることを確認してください。
-
その他のパラメーターについては、「ユースケース 2:構造化ログ」の共通設定パラメーターの説明をご参照ください。
その他のパラメーターについては、「シナリオ 2:構造化ログ」の一般的なパラメーターの説明をご参照ください。
IIS ログ解析
IIS ログ形式の定義に基づいて、ログコンテンツを複数のキーと値のペアに構造化します。
比較例:
|
生ログ |
Microsoft IIS サーバー固有の形式への適応 |
|
|
手順:[Logtail 設定] ページの [プロセッサー設定] セクションで、[プロセッサーの追加] をクリックし、 を選択します:
-
[ログ形式]:IIS サーバーのログ形式を選択します。
-
[IIS]:Microsoft インターネットインフォメーションサービスのログファイル形式。
-
NCSA: 共通ログ形式。
-
[W3C] は W3C 拡張ログファイル形式を指します。
-
-
[IIS 設定フィールド]:IIS または NCSA を選択すると、SLS はデフォルトの IIS 設定フィールドを使用します。W3C を選択した場合は、フィールドを IIS 設定ファイルの
logExtFileFlagsパラメーターの値に設定する必要があります。例:logExtFileFlags="Date, Time, ClientIP, UserName, SiteName, ComputerName, ServerIP, Method, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent, BytesRecv, TimeTaken, ServerPort, UserAgent, Cookie, Referer, ProtocolVersion, Host, HttpSubStatus" -
その他のパラメーターについては、「ユースケース 2:構造化ログ」の共通設定パラメーターの説明をご参照ください。
その他のパラメーターについては、「シナリオ 2:構造化ログ」の一般的なパラメーターの説明をご参照ください。
データマスキング
ログ内の機密データをマスキングします。
例:
|
未処理の生ログ |
マスキング結果 |
|
|
手順: [Logtail 設定] ページの [プロセッサー設定] セクションで、[プロセッサーの追加] をクリックし、 を選択します:
-
[元のフィールド]:解析前のログコンテンツを含むフィールド。
-
[データマスキング方法]:
-
定数:機密コンテンツを定数文字列に置き換えます。
-
[md5]:機密コンテンツをその MD5 ハッシュに置き換えます。
-
-
[置換文字列]:[データマスキング方法] が [const] に設定されている場合、機密コンテンツを置き換える文字列を入力します。
-
[置換されるコンテンツの前のコンテンツ式]:機密コンテンツを見つけるために使用される式で、RE2 構文を使用して設定されます。
-
[置換されるコンテンツに一致するコンテンツ式]:機密コンテンツに一致するために使用される正規表現。式は RE2 構文で記述する必要があります。
時間解析
ログの時間フィールドを解析し、解析結果をログの __time__ フィールドとして設定します。
例:
|
未処理の生ログ |
時間解析 |
|
|
手順: [Logtail 設定] ページの [プロセッサー設定] セクションで、[プロセッサーの追加] をクリックし、 を選択します:
-
[元のフィールド]:解析前のログコンテンツを含むフィールド。
-
[時間形式]:ログのタイムスタンプに対応する時間形式を設定します。
-
[タイムゾーン]:ログの時間フィールドのタイムゾーンを選択します。デフォルトでは、これは LoongCollector (Logtail) プロセスが実行されている環境のタイムゾーンです。
