すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:Apache設定モードでログを収集する

最終更新日:Aug 18, 2023

Log Serviceを使用すると、Apacheログを収集し、複数の次元でログを分析できます。 Apacheログは、Webサイトに関するO&M情報を記録します。 Logtail設定を作成してログを収集できます。 このトピックでは、Log Serviceコンソールを使用してApache設定モードでLogtail設定を作成する方法について説明します。

前提条件

  • プロジェクトと Logstore が作成されていること。 詳細については、「プロジェクトの作成」および「Logstoreの作成」をご参照ください。

  • Logtailがインストールされているサーバーは、リモートサーバーのポート80とポート443に接続できます。

  • ログを収集するサーバーは、継続的にログを生成します。

    重要

    Logtailは増分ログのみを収集します。 適用されたLogtail設定がサーバーに配信された後にサーバー上のログファイルが更新されない場合、Logtailはファイルからログを収集しません。 詳細については、「ログファイルの読み取り」をご参照ください。

背景情報

Apacheログを収集する前に、ログ表示形式、ログファイルディレクトリ、およびログファイル名を指定する必要があります。 たとえば、CustomLog "/var/log/apache2/access_log" combinedと入力した場合、ログは結合ログ形式で表示され、ログファイルディレクトリは /var/log/apache2/access_logです。

  • Log formats

    • 組み合わせたログ形式:

      LogFormat "% h % l % u % t \" % r\"%>s % b \" %{Referer}i\" \" %{User-Agent}i\"" combined
    • 一般的なログ形式:

      LogFormat "% h % l % u % t \" % r\"%>s % b"
    • カスタムログ形式:

      LogFormat "% h % l % u % t \" % r\"% R \" %>s % b \"%{Referer}i\" \"%{User-Agent}i\" % D % f % k % p % q % r % T % I % O "カスタマイズ

    次の表に、ログ形式のフィールドを示します。 詳細については、「mod_log_config」をご参照ください。

    フィールド

    キー

    説明

    %a

    client_addr

    クライアントのIPアドレス。

    %A

    local_addr

    ローカルIPアドレス。

    %b

    response_size_bytes

    レスポンスのバイト数。 バイトが送信されない場合、このフィールドにハイフン (-) が表示されます。

    %B

    response_bytes

    レスポンスのバイト数。 バイトが送信されない場合、このフィールドに数字0が表示されます。

    %D

    request_time_msec

    リクエストの処理に必要な時間。 単位:マイクロ秒。

    %f

    filename

    ファイル名。

    %h

    remote_addr

    リモートホストの名前。

    %H

    request_protocol_supple

    リクエストプロトコル。

    %I

    bytes_received

    サーバーが受信したバイト数。 このフィールドは、mod_logioモジュールを有効にした後にのみログに記録されます。

    %k

    keep_alive

    接続で処理されるキープアライブリクエストの数。

    %l

    remote_ident

    識別のためにリモートホストによって提供される情報。

    %m

    request_method_supple

    HTTP リクエストの方式。

    %O

    bytes_sent

    サーバーによって送信されるバイト数。 このフィールドは、mod_logioモジュールを有効にした後にのみログに記録されます。

    %p

    remote_port

    サーバーのポート番号。

    %P

    child_process

    子プロセスのID。

    %q

    request_query

    クエリ文字列。 クエリ文字列が存在しない場合、空の文字列が表示されます。

    %r

    request

    リクエストの最初の行。 この行は、HTTPリクエストメソッド、アドレス、およびHTTPバージョンで構成されます。

    %R

    response_handler

    サーバーで応答を生成するハンドラーの型。

    %s

    status

    レスポンスの初期HTTPステータス。

    %>s

    status

    レスポンスの最終的なHTTPステータス。

    %t

    time_local

    サーバーがリクエストを受信した時点。

    %T

    request_time_sec

    リクエストの処理に必要な時間。 単位は秒です。

    %u

    remote_user

    クライアントがリクエストを送信するために使用するユーザー名。

    %U

    request_uri_supple

    リクエスト内のURI。 URIにはクエリ文字列は含まれません。

    %v

    server_name

    サーバーの名前。

    %V

    server_name_canonical

    サーバーの名前。 名前は、UseCanonicalNameディレクティブを使用して指定します。

    %{User-Agent}i

    http_user_agent

    クライアントに関する情報。

    "%{Rererer}i"

    http_referer

    ソースwebページのURL。

  • 生ログ

    192.168.1.2 - - [02/Feb/2022:17:44:13 0800] "GET /favicon.ico HTTP/1.1" 404 209 "http:// localhost/x1.html" Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML、Geckoのような) Chrome/48.XX.XX.97 "537.36 Safari
  • Log ServiceCollect logs in Apache configuration modeに収集されたログ

手順

  1. Log Serviceコンソールにログインします。

  2. [データのインポート] セクションで、[Apache - Text Log] をクリックします。

  3. プロジェクトとLogstoreを選択します。 そして、[次へ] をクリックします。

  4. マシングループを作成します。

    • マシングループが利用可能な場合は、[既存のマシングループを使用] をクリックします。

    • 使用可能なマシングループがない場合は、次の手順を実行してマシングループを作成します。 この例では、Elastic Compute Service (ECS) インスタンスが使用されています。

      1. [ECSインスタンス] タブで、[手動でインスタンスを選択] を選択します。 次に、使用するECSインスタンスを選択し、[作成] をクリックします。

        詳細については、「ECSインスタンスへのLogtailのインストール」をご参照ください。

        重要

        Log Serviceとは異なるAlibaba Cloudアカウント、データセンター内のサーバー、またはサードパーティのクラウドサービスプロバイダーのサーバーに属するECSインスタンスからログを収集する場合は、Logtailを手動でインストールする必要があります。 詳細については、「LinuxサーバーにLogtailをインストールする」または「WindowsサーバーにLogtailをインストールする」をご参照ください。

        Logtailを手動でインストールした後、サーバーのユーザー識別子を設定する必要があります。 詳細については、「ユーザー識別子の設定」をご参照ください。

      2. Logtailをインストールしたら、[インストールの完了] をクリックします。

      3. [マシングループの作成] ステップで、[名前] パラメーターを設定し、[次へ] をクリックします。

        Log Serviceでは、IPアドレスベースのマシングループとカスタム識別子ベースのマシングループを作成できます。 詳細については、「IPアドレスベースのマシングループの作成」および「カスタム識別子ベースのマシングループの作成」をご参照ください。

  5. [ソースサーバーグループ] から新しいマシングループを選択し、マシングループを [応用サーバーグループ] に移動します。 [次へ] をクリックします。

    重要

    マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがLog Serviceに接続されていない場合に発生します。 この問題を解決するには、[自動再試行] をクリックします。 問題が解決しない場合は、「Logtailでハートビート接続が検出されない場合の対処方法」をご参照ください。

  6. Logtail設定ステップで、Logtail設定を作成します。

    Collect logs in Apache configuration mode

    パラメーター

    説明

    設定名

    Logtail設定の名前を入力します。 名前はプロジェクト内で一意である必要があります。 Logtail設定を作成した後、Logtail設定の名前を変更することはできません。

    [その他の構成のインポート] をクリックすると、既存のLogtail構成をインポートできます。

    ログのパス

    サーバー上のログの場所に基づいて、ログファイルのディレクトリと名前を指定します。

    • Linuxオペレーティングシステムでログパスを指定する場合、パスはスラッシュ (/) で始まる必要があります。 例: /apsara/nuwa/.../app.Log

    • Windowsオペレーティングシステムでログパスを指定する場合、パスはドライブ文字で始まる必要があります。 例: C:\Program Files\Intel\...\*.Log

    正確なディレクトリと正確な名前を指定できます。 ワイルドカード文字を使用して、ディレクトリと名前を指定することもできます。 詳細については、「ワイルドカードの一致」をご参照ください。 Log Serviceは、指定されたディレクトリのすべてのレベルで、指定された条件に一致するログファイルをスキャンします。 例:

    • /apsara/nuwa/**/*.logを指定した場合、Log Serviceは名前にが付いているログファイルからログを収集します。/apsara/nuwaディレクトリとディレクトリの再帰サブディレクトリにログインします。

    • /var/logs/app_*/*.logを指定した場合、Log 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モードでコンテナテキストログを収集する」をご参照ください。

    モード

    収集モードを選択します。 デフォルト値: Apache Configuration Mode モードを変更できます。

    ログフォーマット

    Apache設定ファイルで指定されているログ形式を選択します。 有効な値: common、combined、Custom。

    APACHE Logformatの設定

    Apache設定ファイルで指定されているログ設定セクションを入力します。 ほとんどの場合、このセクションはLogFormatから始まります。

    • ログ形式commonまたはcombinedに設定した場合、システムは自動的にこのフィールドに値を挿入します。 値がApache設定ファイルで指定された値と同じかどうかを確認します。

    • ログ形式[カスタム] に設定した場合、ビジネス要件に基づいて値を指定します。 たとえば、LogFormat "% h % l % u % t \" % r\"%>s % b \" % {リファラー} i\"% {ユーザーエージェント} i\" % {ユーザーエージェント} I \"% D % f % k % p % q % R % T % i % O" と入力します

    APACHEキー名

    Log Serviceは、Apache Logformat設定フィールドの値からAPACHEキーを自動的に読み取ります。

    ドロップログの解析に失敗

    解析に失敗したログを削除するかどうかを指定します。

    • [ログの解析に失敗した削除] をオンにした場合、解析に失敗したログはLog Serviceにアップロードされません。

    • [ログの解析に失敗した削除] をオフにした場合、解析に失敗したログは、__raw__ フィールドの値としてLog Serviceにアップロードされます。

    監視ディレクトリの最大深度

    監視するサブディレクトリのレベルの最大数を指定します。 サブディレクトリは、指定したログファイルディレクトリにあります。 有効な値: 0 ~ 1000 値が0の場合は、指定したログファイルディレクトリのみを監視することを指定します。

    ビジネス要件に基づいて詳細設定を構成できます。 詳細設定は変更しないことをお勧めします。 詳細設定のパラメーターを次の表に示します。

    パラメーター

    説明

    プラグイン処理の有効化

    ログが複雑で、NGINXモード、フル正規表現モード、JSONモードなどのモードで解析できない場合は、[プラグイン処理の有効化] をオンにして、ログを解析するLogtailプラグインを追加できます。

    Log Serviceは、選択した収集モードに基づいてデフォルトのプラグイン設定を生成します。 processorsフィールドを設定することで、他のプラグイン設定を既定のプラグイン設定に追加できます。 詳細については、「概要」をご参照ください。

    重要

    [プラグイン処理の有効化] をオンにすると、[生ログのアップロード] 、[タイムゾーン] 、[ログの解析に失敗したドロップ] 、[フィルタ設定] 、[エントリのアップロードが不完全 (デリミターモード)] などのパラメーターが使用できなくなります。

    生ログのアップロード

    [生ログのアップロード] をオンにすると、各生ログは、生ログから解析されたログとともに、__Raw__ フィールドの値としてLog Serviceにアップロードされます。

    Topic の生成方法

    トピック生成モードを選択します。 詳細については、「ログトピック」をご参照ください。

    • Null-トピックを生成しない: このモードでは、トピックフィールドは空の文字列に設定されます。 ログを照会するときに、トピックを指定する必要はありません。 デフォルト値です。

    • マシングループトピック属性: このモードでは、トピックはマシングループレベルで設定されます。 異なるサーバーによって生成されたログを区別する場合は、このモードを選択します。

    • ファイルパス正規表現: このモードでは、カスタム正規表現フィールドで正規表現を指定する必要があります。 ログパスの正規表現に一致する部分がトピックとして使用されます。 異なるユーザーまたはインスタンスによって生成されたログを区別する場合は、このモードを選択します。

    ログファイルのエンコーディング

    ログファイルのエンコード形式。 有効な値: utf8とgbk。

    タイムゾーン

    ログを収集するタイムゾーンを選択します。 有効な値:

    • システムタイムゾーン: この値を選択すると、Logtailがインストールされているサーバーまたはコンテナーのタイムゾーンが使用されます。

    • カスタム: この値を選択する場合、ビジネス要件に基づいてタイムゾーンを選択する必要があります。

    タイムアウト

    ログファイルが指定された期間内に更新されない場合、Logtailはモニタリングがタイムアウトしたと見なします。

    • Never: すべてのログファイルは継続的に監視され、監視がタイムアウトすることはありません。

    • 30 分タイムアウト: ログファイルが30分以内に更新されない場合、Logtailはモニタリングがタイムアウトしたと見なし、ファイルをモニタリングしなくなります。

      30 Minute Timeoutを選択した場合、Maximum Timeout Directory Depthパラメーターを設定する必要があります。 有効な値: 1 ~ 3。

    フィルターの設定

    ログの収集に使用するフィルター条件を指定します。 フィルター条件は、KeyRegexで構成されます。 Keyは必須フィールドの名前を指定し、Regexはフィルタリングに使用される正規表現を指定します。 フィルター条件間の論理演算子はANDです。

    重要
    • シンプルモードでは、コンテンツフィールドのみが生成されます。 フィルター条件を指定する場合、Keycontentのみに設定できます。

    • 指定する正規表現は、フルテキスト照合のみをサポートします。 キーワードマッチングはサポートされていません。

    例:

    • 指定されたフィルター条件に一致するログを収集します。

      • Keylevelに設定し、RegexWARNING | ERRORに設定した場合、levelの値がWARNINGまたはERRORであるログのみが収集されます。

      • Keycontentに設定し、Regexに設定した場合。* 05\/Jan\/2023.* の場合、contentの値に05/Jan/2023が含まれるログのみが収集されます。

    • 指定されたフィルター条件に一致しないログを除外します。

      • Keylevelに設定し、Regex^(?!.*(INFO | DEBUG)).* に設定した場合、levelの値にINFOまたはDEBUGが含まれるログは除外されます。

      • Keylevelに設定し、Regex^(?!(INFO | DEBUG)$).* に設定した場合、levelの値がINFOまたはDEBUGであるログは除外されます。

      • Keyurlに設定し、Regexに設定した場合。* ^(?!.*(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はログの収集を開始します。

    説明
  7. データをプレビューし、インデックスを設定し、[次へ] をクリックします。

    デフォルトでは、Log Serviceでフルテキストインデックスが有効になっています。 手動モードまたは自動モードで収集したログに基づいてフィールドインデックスを設定することもできます。 自動モードでフィールドインデックスを設定するには、[自動インデックス生成] をクリックします。 これにより、Log Serviceは自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。

    重要

    ログをクエリおよび分析する場合は、フルテキストインデックス作成またはフィールドインデックス作成を有効にする必要があります。 フルテキストインデックスとフィールドインデックスの両方を有効にすると、フィールドインデックスのみが使用されます。

  8. [ログクエリ] をクリックします。 Logstoreのクエリと分析ページにリダイレクトされます。

    インデックスが有効になるまで約1分待つ必要があります。 次に、収集したログを [生ログ] タブで表示できます。 詳細については、「ログの照会と分析」をご参照ください。

トラブルシューティング

Logtailを使用してログを収集した後、プレビューページまたはクエリページにデータが表示されない場合は、「」に記載されている手順に基づいてエラーをトラブルシューティングできます。