Apache のログフォーマットおよびディレクトリは、/etc/apache2/httpd.conf設定ファイルに指定します。

ログフォーマット

Apache ログの設定ファイルには、出力フォーマットがデフォルトで 2 つ定義されています (結合フォーマットおよび一般フォーマット)。なお、必要に応じてログの出力フォーマットをカスタマイズすることもできます。

  • 結合フォーマット
    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\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %f %k %p %q %R %T %I %O" customized

Apache のログ設定ファイルに、ログの出力フォーマット、ファイルパス、およびログ名を指定する必要があります。たとえば、次のログ設定ファイルは、結合フォーマットを出力するように指定されており、ログのパスおよび名前は、/var/log/apache2/access_logです。

CustomLog "/var/log/apache2/access_log" combined

フィールドの説明

フォーマット キー名 説明
%a client_addr クライアント IP アドレス
%A local_addr ローカルプライベート IP アドレス
%b response_size_bytes レスポンスのサイズ (バイト)。空の場合は、ハイフン (-) となります。
%B response_bytes レスポンスのサイズ (バイト)。空の場合は、ハイフン (-) となります。
%D request_time_msec リクエストの時間 (マイクロ秒単位)
%h remote_addr リモートホスト名
%H request_protocol_supple リクエストプロトコル
%l remote_ident identd のクライアント側のログ名
%m request_method_supple リクエストメソッド
%p remote_port サーバーのポート
%P child_process 子プロセス ID
%q request_query クエリ文字列。クエリ文字列が存在しない場合は、このフィールドが空文字列となります。
"%r" request メソッド名、IP アドレス、および http プロトコルを含むリクエストのコンテンツ
%s status HTTP ステータスコード
%>s status 最終の HTTP ステータスコード
%f filename ファイル名
%k keep_alive keep alive リクエストの数
%R response_handler サーバーのハンドラ
%t time_local サーバー時間
%T request_time_sec リクエストの時間 (秒単位)
%u remote_user クライアントのユーザー名
%U request_uri_supple リクエストした URL のパス (クエリを含まない)
%v server_name サーバー名
%V server_name_canonical UseCanonicalName 設定に従ったサーバー名
%I bytes_received サーバーの受信バイト数 (mod_logio モジュールが有効な場合のみ)
%O bytes_sent サーバーの送信バイト数 (mod_logio モジュールが有効な場合のみ)
%{User-Agent}i http_user_agent クライアント情報
"%{Rererer}i" http_referer ソースページ

サンプルログ

192.168.1.2 - - [02/Feb/2016: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, like Gecko) Chrome/48.0.2564.97 Safari/537.36" 

Logtail を使用した Apache ログの収集

  1. Logstoreページで、データインポートウィザードアイコンをクリックします。
  2. データタイプを選択します。

    APACHE アクセスログを選択します。

  3. データソースを設定します。
    1. 構成名およびログパスを入力します。
    2. ログフォーマットを選択します。
    3. ログフォーマットをカスタマイズする場合は、APACHE のログフォーマット構成に入力します。
      Apache 標準の設定ファイルのログフォーマット設定欄に入力します。通常、設定ファイルは「LogFormat」で始まります。
      ログフォーマットドロップダウンリストより一般または結合を選択した場合には、APACHE のログフォーマット設定欄に該当するログフォーマットが自動的に入力されます。入力された内容が、ローカルの Apache 設定ファイルに定義されているフォーマットと同じであることを確認します。

    4. APACHE キー名を確認します。

      Log Service によって、お客様の Apache キーが自動的に読み込まれます。現在のページの APACHE キー名を確認します。

    5. (オプション)詳細オプションを設定します。
      構成項目 詳細
      ローカルキャッシュ ローカルキャッシュを有効にするかどうかを選択します。 この機能を有効にすると、ログサービスが利用できないときにログがマシンのローカルディレクトリにキャッシュされ、サービスの復旧後にログサービスに引き続き送信されます。 デフォルトでは、最大で1GBのログをキャッシュできます。
      オリジナルログのアップロード オリジナルログをアップロードするかどうかを選択します。有効にすると、デフォルトで新しいフィールドが追加され、オリジナルログがアップロードされます。
      トピック生成モード
      • Null - トピックを生成しない:デフォルトオプションであり、トピックをヌル文字列として設定し、トピックを入力せずにログを照会できることを示します。
      • マシングループのトピック属性:異なるフロントエンドサーバーで生成されたログデータを明確に区別するために使用されます。
      • ファイルパスレギュラー:このオプションを選択すると、正規表現を使用してパスからコンテンツをトピックとして抽出するには、カスタム正規表現を入力する必要があります。 ユーザーとインスタンスによって生成されたログデータを区別するために使用されます。 ユーザーとインスタンスによって生成されたログデータを区別するために使用されます。
      カスタム正規表現 トピック生成モードとしてファイルパスレギュラーを選択すると、カスタム正規表現を入力する必要があります。
      ログファイルエンコーディング
      • utf8: UTF-8エンコーディングを使用。
      • gbk: GBKエンコーディングを使用
      最大モニターディレクトリの深さ ログソースからログを収集するときに監視するディレクトリの最大深度を指定します。要するに、最大でモニターできるログレベルを指定します。 範囲は0~1000で、0を指定した場合は、現行ディレクトリレベルのみをモニターすることになります。
      タイムアウト 指定された時間内に更新がない場合、ログファイルはタイムアウトします。 タイムアウトの次の設定を構成できます。
      • タイムアウトにならない:すべてのログファイルを永続的にモニターし、ログファイルがタイムアウトしないように指定します。
      • 30分のタイムアウト:ログファイルが30分以内に更新がないければタイムアウトになり、モニターされなくなります。
      フィルター構成 フィルター条件に完全に準拠したログのみ、収集できます。
      たとえば:
      • 条件に一致するログを収集します:Key: level Regex:WARNING|ERRORは、レベルがWARNINGまたはERRORのログのみを収集することを示します。
      • 条件に適合しないログをフィルターします
        • Key:level Regex:^(?!. *(INFO|DEBUG))、INFOまたはDEBUGレベルのログを収集しないことを示します。
        • Key:url Regex:. *^(?!.*(healthcheck)). *、urlにヘルスチェックを含むログをフィルターすることを示します。 keyがurlでvalueが/inner/healthcheck/jiankong.htmlのログなどは収集されません。
      同様の事例についてはregex-exclude-wordregex-exclude-patternを参照してください。
  4. 次へをクリックします。
  5. マシングループを選択し、マシングループに適用をクリックします。

    マシングループをまだ作成していない場合は、マシングループの作成をクリックしてマシングループを作成します。

    Logtail 設定をマシングループに適用すると、Log Service は設定に従って Apache ログを収集します。データインポートウィザードの手順に従って、インデックスおよびログ送信を設定します。