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 ログの収集
- Logstoreページで、データインポートウィザードアイコンをクリックします。
- データタイプを選択します。
APACHE アクセスログを選択します。
- データソースを設定します。
- 構成名およびログパスを入力します。
- ログフォーマットを選択します。
- ログフォーマットをカスタマイズする場合は、APACHE のログフォーマット構成に入力します。
Apache 標準の設定ファイルのログフォーマット設定欄に入力します。通常、設定ファイルは「LogFormat」で始まります。注 ログフォーマットドロップダウンリストより一般または結合を選択した場合には、APACHE のログフォーマット設定欄に該当するログフォーマットが自動的に入力されます。入力された内容が、ローカルの Apache 設定ファイルに定義されているフォーマットと同じであることを確認します。
- APACHE キー名を確認します。
Log Service によって、お客様の Apache キーが自動的に読み込まれます。現在のページの APACHE キー名を確認します。
- (オプション)詳細オプションを設定します。
パラメーター 説明 生ログのアップロード 生ログをアップロードするかどうかを指定します。 このスイッチをオンにすると、未処理のログコンテンツが _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
のログは収集されません。
- 次へをクリックします。
- マシングループを選択し、マシングループに適用をクリックします。
マシングループをまだ作成していない場合は、マシングループの作成をクリックしてマシングループを作成します。
Logtail 設定をマシングループに適用すると、Log Service は設定に従って Apache ログを収集します。データインポートウィザードの手順に従って、インデックスおよびログ送信を設定します。