Apacheで出力されるログを変更する方法 レスポンスにかかった時間やリファラ、ユーザーエージェントを記録する
[参考記事] ログをリアルタイムに表示させて監視する方法
Apacheのログは標準では次のような設定になっています。
/etc/httpd/conf/httpd.conf
CustomLog logs/access_log common または CustomLog logs/access_log combined
このcommonやcombinedはLogFormatで指定されているフォーマット(書式)で、次のように設定されています。
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent
つまりcommonを指定すると簡易なログ、combinedを指定するとリファラやユーザーエージェントが記録されます。
例えば次のようにするとレスポンスにかかった時間がログに残ります。
LogFormat "%h %l %u %t \"%r\" %>s %b %T" responsetime CustomLog logs/access_log responsetime
カスタムログの書式
フォーマット文字列 | 説明 | ||||||
---|---|---|---|---|---|---|---|
%% | パーセント記号 | ||||||
%a | リモート IP アドレス | ||||||
%A | ローカル IP アドレス | ||||||
%B | レスポンスのバイト数。HTTP ヘッダは除く。 | ||||||
%b | レスポンスのバイト数。HTTP ヘッダは除く。CLF 書式。 すなわち、1 バイトも送られなかったときは 0 ではなく、 '-' になる | ||||||
%{Foobar}C | サーバに送られたリクエスト中のクッキー Foobar の値 | ||||||
%D | リクエストを処理するのにかかった時間、マイクロ秒単位 | ||||||
%{FOOBAR}e | 環境変数 FOOBAR の内容 | ||||||
%f | ファイル名 | ||||||
%h | リモートホスト | ||||||
%H | リクエストプロトコル | ||||||
%{Foobar}i | サーバに送られたリクエストの Foobar: ヘッダの内容 | ||||||
%l | (identd からもし提供されていれば) リモートログ名。 これは mod_ident がサーバに存在して、 IdentityCheck ディレクティブが On に設定されていない限り、 - になります。 | ||||||
%m | リクエストメソッド | ||||||
%{Foobar}n | 他のモジュールからのメモ Foobar の内容 | ||||||
%{Foobar}o | 応答の Foobar: ヘッダの内容 | ||||||
%p | リクエストを扱っているサーバの正式なポート | ||||||
%{format}p | サーバがリクエストを処理しているポートの公式 (訳注: canonical) のポート番号か、 サーバの実際のポート番号か、クライアント側の実際のポート番号かです。 format に使える文字列は canonical, local, remote になります。 | ||||||
%P | リクエストを扱った子プロセスのプロセス ID | ||||||
%{format}P | リクエストを扱ったワーカーのプロセス ID かスレッド ID。 format として有効な値は pid, tid, hextid です。hextid を使うには APR 1.2.0 以降が必要です。 | ||||||
%q | 問い合せ文字列 (存在する場合は前に ? が追加される。 そうでない場合は空文字列) | ||||||
%r | リクエストの最初の行 | ||||||
%s | ステータス。内部でリダイレクトされたリクエストは、元々の リクエストのステータス --- 最後のステータスは %>s | ||||||
%t | リクエストを受付けた時刻。 CLF の時刻の書式 (標準の英語の書式) | ||||||
%{format}t | format で与えられた書式による時刻。format は strftime (3) の 書式である必要がある。(地域化されている可能性がある) | ||||||
%T | リクエストを扱うのにかかった時間、秒単位 | ||||||
%u | リモートユーザ (認証によるもの。ステータス (%s) が 401 のときは意味がないものである可能性がある) | ||||||
%U | リクエストされた URL パス。クエリ文字列は含まない | ||||||
%v | リクエストを扱っているサーバの正式な ServerName | ||||||
%V | UseCanonicalName の設定によるサーバ名 | ||||||
%X | 応答が完了したときの接続ステータス:
| ||||||
%I | リクエストとヘッダを含む、受け取ったバイト数。 0 にはならない。 これを使用するためには mod_logio が必要 | ||||||
%O | ヘッダを含む、送信したバイト数。0 にはならない。 これを使用するためには mod_logio が必要 |
スポンサーリンク
関連記事
- VirtualBox Interfaceが起動していてシャットダウンができないとき
- HPのパソコンでVirtualBoxが起動しない(HP ProtectTools Security Manager)
- phpMyAdminでログイン画面を出さずにデータベースに接続する方法
- PHPでMySQLなどにPDO接続をすると、could not find driverのエラーが出る場合
- ホスト名(ドメイン)をローカルIPに名前解決させる方法(ローカルDNS不要)
- SONYのnasneをLinuxにマウントする方法
- 数日おきに設定したcronの実行が1日ずれる理由
- LinuxでNTFS(Windows形式)のフォーマットをする方法
- target is busyやdevice is busyをumountする方法
- /dev/random と /dev/urandom の違い
- 2TBを超えるHDDを増設する方法(パーティション・フォーマット)
- 破損したストレージからのデータ復旧
- HDDやSSDなどのストレージをリスト形式で表示する方法
- blkidコマンドでUUIDが表示されない場合
- HDDやSSDなどのストレージのUUIDを調べる方法
- glibcを更新するとdateコマンドが新元号の令和に対応します
- ata1.00: SRST failed(errno=-16) と出る場合
- cron設定ファイルの実体の保存先
- Fail2ban ログを集計して不正アクセスを防ぐ
- CD-RやDVD-Rを使わずUSBメモリでLinuxをインストールする方法(ISO boot)
- VBoxGuestAdditions.iso の場所
- 『Table is marked as crashed and should be repaired』の修復方法
- PostfixサーバからGmailサーバへメールを送信できない場合の対処法
- Apacheをコマンドプロンプトから起動・停止・再起動する方法
- wgetが遅い場合の対処法
- WgetがFTPでダウンロードできない場合
- WgetがSSLでダウンロードできない場合
- Wgetの基本的な使い方など(ユーザーエージェントの設定・POSTデータの送信)
- lsコマンドで秒を表示する方法(タイムスタンプの書式指定)
- PDO_MYSQLをインストールする方法
- PEAR・PECLをインストールする方法
- シェルスクリプトを実行すると『そのようなファイルやディレクトリはありません』や『コマンドが見つかりません』と出る場合
- 画面のバックライトを消す方法(モニタ電源を消す) vbetool
- telnetの反応がなくなった時に接続を強制的に切断する方法
- サーバの負荷や使用率などを見るコマンドの一覧
- PHPでロードアベレージを表示させる方法
- ログをリアルタイムに表示させて監視する方法
- 起動時にネットワークを有効にする方法(eth0を起動する方法)
- IPアドレスを変更する方法
- cron実行時の標準出力のメールを飛ばさない方法(cron実行時に毎回メールを飛ばさない)
- cron実行時のPATHなどの環境変数を確認する方法
- cronのメール送信先を指定する方法(cronごとに送信先のメールアドレスを指定する方法)
- cron実行時に『/bin/sh: 〜〜: command not found』と出てcronが実行されない場合
- 『crontab -r』でcronの設定を間違って消してしまった場合の対処法
- cronを実行すると『TERM environment variable not set.』というエラーメールが飛ぶ
- Apacheから2GB以上のファイルをダウンロードしようとすると403エラーが出ます
- [warn] _default_ VirtualHost overlap on port 80, the first has precedence エラー
- Zend Serverとは
- 特定のディレクトリのみベーシック認証を外す方法
- Cactiのインストール RRDToolを利用したサーバ監視ツール
- svn: '/home' does not appear to be a URL 同サーバ内にあるリポジトリの指定
- SVNリポジトリを別のサーバに移行する方法
- svn: Repository moved temporarily; please relocate PROPFIND request failed
- PEARを更新する方法
- locateデータベースの更新
- JP106キーボードを使用する設定
- VirtualBoxでホストOSと同じネットワークにする方法
- VMware Serverのファイル・サービス
- VirtualBox、仮想OSのインストール
- IPアドレス制限とベーシック認証を併用する方法
- memcachedの仕組み(オンメモリストレージ・Slab Allocator)
- 会員専用ページを作る方法 (ベーシック認証 / Basic認証 / 基本認証)
- CGI(Perl)をApacheで使用するときの設定
- NTPサーバで時計を調節する (the NTP socket is in use, exiting とは)
- CVSについて
- Oracle Berkeley DBのインストール
- VMware Serverの使い方
- VMWare Serverのインストール
- webサーバーのレスポンスコード
スポンサーリンク