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. (オプション)詳細オプションを設定します。
      パラメーター 説明
      生ログのアップロード 生ログをアップロードするかどうかを指定します。 このスイッチをオンにすると、未処理のログコンテンツが _raw__ フィールドとしてアップロードされ、解析されたログコンテンツが表示されます。
      トピック生成モード
      • Null - トピックを生成しない:トピックが null 文字列に設定されるように指定するデフォルト値。 トピックを入力せずにログを照会できます。
      • マシン グループ トピック属性:異なるフロントエンド サーバーで生成されたログデータと区別するために、マシン グループに基づいてトピックを設定します。
      • ファイル パス正規表現カスタム正規表現を使用して、ログパスの一部をトピックとして抽出します。 ユーザーとインスタンスによって生成されたログデータを区別するために使用されるモードです。
      カスタム正規表現 トピック生成モードを [ファイルパスの正規表現] に設定する場合、カスタム正規表現を入力する必要があります。
      ログファイルエンコーディング
      • utf8:UTF-8 エンコーディングを指定します。
      • gbk:GBK エンコーディングを指定します。
      監視ディレクトリの最大深度 ログソースからログを収集するときの監視ディレクトリの最大深度つまり、管理対象のディレクトリのレベルの最大数 有効値: [0, 1000] 0 は、現在のディレクトリのみが監視されていることを示します。
      Timeout 指定した期間内にファイルの更新がないときに、ログファイルがタイムアウトしたとシステムが考慮するかどうかを指定します。 Timeout は以下のように設定できます。
      • タイムアウトにならない:すべてのログファイルはタイムアウトなしで監視が継続されるように指定します。
      • 30 分タイムアウト:ログファイルが 30 分以内に更新されない場合、ログファイルがタイムアウトしたと見なし、ファイルの監視を停止するように指定します。
      フィルター設定 収集前にログが 完全に満たす 必要のあるフィルター条件
      例:
      • 条件を満たすログの収集Key:level Regex:WARNING|ERROR は、レベルが「WARNING」または「ERROR」のログのみを収集することを表します。
      • 条件に適合しないログをフィルターします
        • Key:level Regex:^(?!.*(INFO|DEBUG)).* は、レベルが「INFO」または「DEBUG」のログが収集されていないことを表します。
        • Set a condition Key:url Regex:.*^(?!.*(healthcheck)).* は、url に heartcheck のあるログは収集されないことを表します。 たとえば、key が url、value が /inner/healthcheck/jiankong.html のログは収集されません。
      その他の例については、「regex-exclude-word」 と 「regex-exclude-pattern」をご参照ください。
  4. 次へをクリックします。
  5. マシングループを選択し、マシングループに適用をクリックします。

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

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