テキストログは基本的なログタイプです。このトピックでは、Logtail を使用してログを収集、クエリ、分析し、クエリと分析結果を可視化し、例外ログのアラートを構成する方法について説明します。次の例では、Logtail を使用して Alibaba Cloud Elastic Compute Service (ECS) インスタンスのテキストログを収集します。
制限
デフォルトでは、Logtail は増分ログのみを収集します。履歴ログを収集する場合は、「ログファイルから履歴ログをインポートする」をご参照ください。
前提条件
ECS インスタンスが利用可能です。
Simple Log Service がアクティブ化されています。
背景情報
次の例では、Logtail を使用して、ECS インスタンス上の /var/log/nginx/access.log
テキストファイルに基づいてログを収集します。テキストファイルには、サンプルログが 1 つだけ含まれています。
次のサンプルコードは、/var/log/nginx/access.log
テキストファイルのサンプルログを示しています。
10.0.*.1 - - [20/Mar/2023:12:00:03 +0000] "POST /login HTTP/1.1" 302 0 "http://example.com/login.html" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36"
このトピックでは、このサンプルログを使用して、Simple Log Service の使用方法について説明します。独自のログファイルからログを収集する場合は、ファイルを ECS インスタンスのカスタムディレクトリに保存する必要があります。
ソリューションの概要
このトピックでは、次の操作の実行方法について説明します。
プロジェクトとログストアを作成します。プロジェクトはリソースの管理に使用されます。ログストアはログの保存に使用されます。
Logtail をインストールし、Logtail 構成を作成して、ログをログストアに収集して保存します。
Simple Log Service コンソールで収集されたログをクエリおよび分析します。
クエリと分析結果をダッシュボードのチャートに変換します。
アラートルールを構成してログを監視し、ログのアラートを生成します。
不要な料金が発生しないように、不要になったリソースをクリーンアップします。
1. プロジェクトとログストアを作成する
1.1 プロジェクトを作成する
Simple Log Service コンソール にログインします。
[プロジェクト] セクションで、[プロジェクトの作成] をクリックします。[プロジェクトの作成] パネルで、[リージョン] ドロップダウンリストから ECS インスタンスが属するリージョンを選択し、[プロジェクト名] パラメーターを構成します。その他のパラメーターについてはデフォルト値を保持します。選択するリージョンは、ECS インスタンスが存在するリージョンと同じである必要があります。
1.2 ログストアを作成する
プロジェクトを作成すると、ログストアを作成するように求められます。[ログストアの作成] パネルで、[ログストア名] パラメーターを構成します。その他のパラメーターについてはデフォルト値を保持します。次に、[OK] をクリックします。
2. Logtail 構成関連の設定を構成する
Logtail 構成を作成して ECS インスタンスに Logtail をインストールし、Logtail を使用してログを収集できます。ログは Simple Log Service で作成されたログストアに収集されます。
2.1 ログ収集方法を選択する
[作成済み] ダイアログボックスで、[データ収集ウィザード] をクリックします。
[クイックデータインポート] ダイアログボックスの [自己管理型オープンソース/商用ソフトウェア] タブで、[単一行 - テキストログ] を見つけて、[今すぐ統合] をクリックします。
2.2 マシングループを作成する
[データのインポート] ウィザードの [マシングループの構成] ステップで、[シナリオ] を [サーバー] に設定し、[インストール環境] を [ECS] に設定します。次に、[マシングループの作成] をクリックします。[マシングループの作成] パネルで、Simple Log Service プロジェクトと同じリージョンにある ECS インスタンスを選択し、[インストールしてマシングループを作成] をクリックします。
説明ECS インスタンスは、Simple Log Service プロジェクトと同じリージョンにある必要があります。ECS インスタンスが別のリージョンにある場合、または自己管理型サーバーを使用している場合は、「Logtail を手動でインストールしてサーバーからテキストログを収集する」に記載されている手順に従ってログを収集できます。
[logtail のインストールステータス] 列に [成功] と表示されている場合、Logtail は ECS インスタンスにインストールされています。インストールに失敗した場合は、[インストールタスクの再作成] をクリックします。Simple Log Service プロジェクトと同じリージョンにある ECS インスタンスを再選択し、Logtail を再インストールします。
Logtail がインストールされたら、[名前] パラメーターを構成し、[OK] をクリックします。システムによって IP アドレスが自動的に割り当てられるため、[IP アドレス] パラメーターを構成する必要はありません。
マシングループのハートビートステータスを確認します。マシングループの作成には約 2 分かかります。マシングループが作成されていない場合、マシングループのハートビートステータスは FAIL になります。2 分後、[自動再試行] をクリックして、ハートビートステータスが OK に変わるまでマシングループのハートビートステータスを更新します。マシングループのハートビートステータスが FAIL であるという問題のトラブルシューティング方法の詳細については、「ホスト環境における Logtail マシングループに関連するエラーをトラブルシューティングするにはどうすればよいですか。」をご参照ください。
2.3 Logtail 構成を作成する
次の図に基づいて Logtail 構成を作成します。[構成名] パラメーターを構成し、[ファイルパス] パラメーターを /var/log/nginx
/**/*.log
に設定し、このトピックの背景情報セクションに記載されているサンプルログを追加します。次に、[次へ] をクリックします。
デフォルトでは、1 つのログファイルは収集のために 1 つの Logtail 構成のみと一致させることができます。複数の Logtail 構成を使用して同じログファイルパスからログを収集する場合は、「ファイル内のログの複数のコピーを収集するにはどうすればよいですか。」をご参照ください。
2.4 データクエリと分析の設定を構成する
Logtail 構成の作成には約 1 分かかります。[自動更新] が完了した後、データをプレビューできる場合、Logtail 構成が作成されます。次に、[次へ] をクリックします。Logtail 構成関連の設定は完了です。次に、Logtail は Logtail 構成に基づいて、[シンプルモード] で単一行ログを Simple Log Service に収集します。収集されたログを他のモードで解析することもできます。詳細については、「Logtail 構成を作成する」をご参照ください。
3. ログをクエリおよび分析する
[データのインポート] ウィザードの [終了] ステップで、[ログのクエリ] をクリックします。作成されたログストアのクエリと分析ページに移動します。インデックスが作成されていないため、エラーメッセージが表示される場合があります。エラーメッセージページを閉じて 1 分間待機すると、/var/log/nginx/access.log
ファイルから収集されたログを表示できます。
検索ボックスに HTTP
などの任意の文字を入力し、クエリ時間範囲を指定して、[検索と分析] をクリックします。任意の文字を含むログを取得できます。複数のログを /var/log/nginx/access.log
テキストファイルに追加して、ログをクエリできます。次の図は、「背景情報」セクションに記載されているサンプルログを /var/log/nginx/access.log
テキストファイルに繰り返し追加した後に取得されたクエリと分析結果を示しています。インデックスとステートメント構文を使用してログをクエリおよび分析できます。クエリと分析機能を効果的に使用する方法の詳細については、「インデックスモードでログをクエリおよび分析する」をご参照ください。
4. ダッシュボードでデータを可視化する
左側のナビゲーションウィンドウで、[ダッシュボード] > [ダッシュボード] を選択し、[ダッシュボードの追加] をクリックします。
[新しいダッシュボードに追加] ダイアログボックスで、ダッシュボードのレイアウトモードを選択します。デフォルトでは、[レイアウトモード] パラメーターは [グリッドレイアウト] に設定されています。[ダッシュボード名] パラメーターを構成します。次に、[OK] をクリックします。
ダッシュボードで、[チャートの追加] をクリックします。
[検索と分析] タブで ([チャートの編集] ページの左下隅にあります)、ドロップダウンリストから [ログストア (SQL)] を選択し、管理するログストアをドロップダウンリストから選択して、検索ボックスに
select count(*) as pv
と入力してログの数をクエリし、カウントフィールドの名前を pv に変更します。この例では、[チャートの編集] ページの右側にある [チャートの種類] セクションで [単一値チャート Pro] をクリックします。次に、[チャートの編集] ページの上部にある [適用] をクリックして、構成の効果を確認します。次の図は、チャートの構成結果を示しています。データの可視化結果が期待どおりであれば、[チャートの編集] ページの右上隅にある [OK] をクリックします。次に、ダッシュボードページの右上隅にある [保存] をクリックします。ダッシュボードには複数の種類のチャートを作成できます。ダッシュボードでデータをフィルタリングしたり、ダッシュボードを外部の可視化ツールに接続したりできます。詳細については、「可視化の概要」をご参照ください。
5. ログを監視し、アラートを構成する
左側のナビゲーションウィンドウで、[アラート] をクリックします。[アラートセンター] ページの [アラートルール] タブで、[アラートの作成] をクリックします。
[アラートの作成] パネルで、[クエリ統計] セクションの [作成] をクリックして、クエリルール設定を構成します。
[ログストア] ドロップダウンリストから作成されたログストアを選択し、[クエリ] フィールドの
*|SELECT *
デフォルトステートメントを*
に置き換え、次の図に基づいて [プレビュー] をクリックします。クエリするログが表示されます。[確認] をクリックして設定を保存します。この設定は、過去 15 分以内に生成された、作成されたログストアのログをクエリするために使用されます。説明*
ステートメントは、すべてのログをクエリするために使用されます。*|SELECT *
ステートメントは、すべてのログをクエリおよび分析するために使用されます。ログを分析する前に、ログフィールドのインデックスを構成し、フィールドの [分析を有効にする] をオンにする必要があります。この例では、フィールドインデックスは作成されていません。ログを分析するには、「インデックスを作成する」をご参照ください。[OK] をクリックしてアラートルールを保存します。アラートルールが作成され、15 分ごとに生成されるすべてのログがクエリされます。ログの数が 1 より大きい場合、重大度が中程度のアラートがトリガーされます。
作成されたアラートルールをクリックします。[アラート履歴] セクションには、アラートルールによってトリガーされたアラートに関する情報が表示されます。ダッシュボードに表示されるログの数は 5 で、これは作成されたアラートルールのトリガー条件と一致します。ただし、アラートはトリガーされません。「背景情報」セクションに記載されているサンプルログを
/var/log/nginx/access.log
テキストログに 2 回追加すると、ダッシュボードに表示されるログの数は 7 になり、アラートがトリガーされます。[チェック頻度] パラメーターは [固定間隔 15 分] に設定されており、[クエリ統計] ダイアログボックスの [詳細設定] タブの [時間範囲] パラメーターは [15 分 (相対)] に設定されています。この場合、増分ログの数がトリガー条件を満たしている場合にのみ、アラートがトリガーされます。この問題を解決するには、[チェック頻度] または [時間範囲] パラメーターで指定されたクエリ時間範囲を変更できます。アラート機能の詳細については、「アラート」および「Simple Log Service でアラートルールを構成する」をご参照ください。
6. プロジェクトとログストアを削除する
上記の操作を実行した後、実際のビジネスシナリオで Simple Log Service を使用できます。ビジネス要件に基づいて、作成されたリソースを削除または保持できます。ただし、リソースを保持する場合は、リソースに対して課金されます。ログストアが存在する場合、ログストアが使用されているかどうかに関係なく、アクティブなシャードに対して課金されます。作成されたリソースが不要になった場合は、手動でリソースを削除できます。請求の詳細については、「請求の概要」をご参照ください。
プロジェクトページで、削除するログストアを見つけ、ログストア内の Logtail 構成を削除してから、ログストアを削除します。
または、プロジェクトリストで削除するプロジェクトを見つけ、[アクション] 列の [削除] をクリックして、プロジェクトのすべてのリソースを削除します。
拡張シナリオ
他のタイプのログを収集します。
Simple Log Service の機能に精通したら、ログと関数計算に基づいて関数の実行をトリガーするトリガーを構成できます。詳細については、「Alibaba Cloud サービスのイベントトリガーを構成する」および「Simple Log Service トリガー」をご参照ください。
次のステップ
ダッシュボードを作成する リアルタイムのデータ分析結果を表示します。
データ変換 機能を使用して、ログデータを変換、クレンジング、およびフィルタリングします。
よくある質問
ログを収集した後、Simple Log Service の表示時間が元のログ時間と一致しないのはなぜですか?
ログを収集した後、Simple Log Service の表示時間が元のログ時間と一致しない場合があるのは、サービスがデフォルトで独自のタイムスタンプを生成するためです。Simple Log Service の時間が元のログ時間と一致するようにするには、時間解析プラグイン を構成する必要があります。
プロジェクトとログストアのみを作成した場合、課金されますか?
デフォルトでは、ログストアを作成するとシャードリソースが予約されます。アクティブなシャードに対して課金されます。詳細については、「アクティブなシャードに対して課金されるのはなぜですか?」をご参照ください。
ログが収集に失敗した場合はどうすればよいですか?
Logtail を使用してログを収集する場合、Logtail のハートビート障害、収集エラー、または無効な Logtail 構成が原因でログの収集に失敗する場合があります。詳細については、「Logtail を使用してログを収集するときにエラーが発生した場合はどうすればよいですか?」をご参照ください。
ログストアのクエリと分析ページでログをクエリできるが、ログを分析できない場合はどうすればよいですか?
ログを分析する場合は、ログフィールドのインデックスを構成し、フィールドの [分析を有効にする] をオンにする必要があります。詳細については、「インデックスを作成する」をご参照ください。
Simple Log Service を非アクティブ化して請求を停止するにはどうすればよいですか?
Simple Log Service がアクティブ化されると、非アクティブ化することはできません。Simple Log Service が不要になった場合は、すべてのプロジェクトを削除できます。詳細については、「請求を停止する」をご参照ください。