テキストログは基本的なログタイプです。このトピックでは、Logtail を使用してログを収集、クエリ、分析し、クエリと分析結果を可視化し、例外ログのアラートを設定する方法について説明します。次の例では、Logtail を使用して Alibaba Cloud Elastic Compute Service (ECS) インスタンスのテキストログを収集します。
制限
デフォルトでは、Logtail は増分ログのみを収集します。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
に設定し、この Topic の背景情報セクションに記載されているサンプルログを追加します。次に、[次へ] をクリックします。
デフォルトでは、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 が不要になった場合は、すべてのプロジェクトを削除できます。詳細については、「請求を停止する」をご参照ください。