第 4 章 運用・保守
4.2 ログ
・ 複数Webサーバ運用のWebサーバの場合
ps -fp `cat <Webサーバ資源の格納ディレクトリ>/logs/httpd.pid 2>/dev/null` 2> /dev/nul
例
psコマンドの出力例
UID PID PPID C STIME TTY TIME CMD
root 4690 920 0 15:56:49 ? 0:00 /opt/FJSVahs/bin/httpd -k start -f /opt/FJSVahs/conf/httpd.conf
Interstage HTTP Server 2.2が出力するそれぞれのログについて説明します。
4.2.1 アクセスログ
Interstage HTTP Server 2.2では、Webブラウザからのアクセス状況をログ(アクセスログ)として出力します。
アクセスログの出力先や出力内容を変更する場合は、環境定義ファイル(httpd.conf)を使用して設定します。設定方法 については、「3.4 アクセスログの設定」を参照してください。
■出力先
インストール直後の初期設定では、アクセスログは以下のファイルに出力されます。
(インストールパスはデフォルト)
C:\Interstage\F3FMahs\logs\accesslog (インストールパスはデフォルト)
/var/opt/FJSVahs/logs/accesslog
ポイント
ログファイルのローテーションが行われる場合、アクセスログは以下のファイル(初期値)に変名されます。
accesslog.N
Nは通番で、0から始まる連続の番号です。新しいファイルの順に、1番目のファイルの通番は「.0」、N番目のファイルの
通番は「.(N-1)」となります。
■出力タイミング
アクセスログは、Webサーバがクライアントからリクエストを受信し、受信したリクエストのレスポンスをクライアントへ送信す るときに出力されます。
■出力形式
アクセスログの初期値のフォーマット(ahs-analysis)で出力されるログの形式を以下に示します。アクセス時に指定されな い項目は、ハイフン「-」で出力されます。
ホスト名 ユーザ名識別 ユーザ名 日時 "リクエスト" ステータスコード データ転送量 WebサーバのIPアドレス:
ポート番号 Hostヘッダ プロセスID 処理時間 リクエストID
■出力項目
出力形式に対応する各出力項目を以下に示します。
出力項目 出力内容
ホスト名 クライアントまたはプロキシサーバなどのIPアドレス/ホスト名 ユーザ名識別 クライアントから返信されるユーザ個人情報
ユーザ名 クライアントから送信されたユーザ名
出力項目 出力内容 日時 クライアントからのリクエストを受け付けた日時
「[日/月/西暦:時:分:秒 GMTとの時差]」の形式で出力されます。
リクエスト クライアントが要求したリクエスト内容 ステータスコード クライアントに返信するコード
ステータスコードの詳細については、「メッセージ集」の「Webサーバから通知されるス テータスコード」を参照してください。
データ転送量 クライアントに転送したデータ量 WebサーバのIPアドレス:
ポート番号
リクエストを受け付けたWebサーバのIPアドレスおよびポート番号
Hostヘッダ クライアントから送られてきたHostヘッダの内容
プロセスID リクエストを処理したプロセスのプロセスID
処理時間 リクエストを受け付けてから処理が完了するまでの時間(マイクロ秒)
リクエストID リクエストごとに付与される一意なID
■出力例
西暦年が「yyyy」の場合の出力例を以下に示します。
192.168.0.1 - - [16/Jan/yyyy:12:59:02 +0900] "GET / HTTP/1.1" 200 44 192.168.0.2:80 ahs.fujitsu.com 19726 3194
-4.2.2 エラーログ
Webサーバでエラーが発生したときのエラー状況をログ(エラーログ)として出力します。
エラーログの出力先や出力内容を変更する場合は、環境定義ファイル(httpd.conf)を使用して設定します。設定方法に ついては、「3.5 エラーログの設定」を参照してください。
■出力先
インストール直後の初期設定では、エラーログは以下のファイルに出力されます。
(インストールパスはデフォルト)
C:\Interstage\F3FMahs\logs\errorlog (インストールパスはデフォルト)
/var/opt/FJSVahs/logs/errorlog
ポイント
ログファイルのローテーションが行われる場合、エラーログは以下のファイル(初期値)に変名されます。
errorlog.N
Nは通番で、0から始まる連続の番号です。新しいファイルの順に、1番目のファイルの通番は「.0」、N番目のファイルの 通番は「.(N-1)」となります。
■出力タイミング
エラーログは、Webサーバでエラーが発生した際に出力されます。
■出力形式
エラーログとして出力されるログの形式を以下に示します。
[日時] [ログレベル] [client IPアドレス] (エラー番号)エラー説明: メッセージ本文
■出力項目
出力形式に対応する各出力項目を以下に示します。
日時
エラー発生日時
「[曜日月日時:分:秒西暦]」の形式で出力されます。
ログレベル
ログレベル エラーログの重度 初期設定時の出力
emerg 緊急事態発生のエラー ○
alert 修正しなければ動作不可のエラー ○
crit 直ちに処理すべきエラー ○
error あまり重要ではなく、無視してもよいエラー ○
warn 警告であり、無視してもよいエラー ○
notice 通常起こりうる特筆すべき通知情報 ○
info notice以外の通知情報
環境定義を編集した場合に出力されます。
×
debug モジュールの開発/デバッグ中のログ
環境定義を編集した場合に出力されます。
×
client IPアドレス
クライアントまたはプロキシサーバなどのIPアドレス
クライアントからのWebサーバアクセス時にエラーが発生した場合、出力されます。
本項目は、省略される場合があります。
エラー番号
オペレーティングシステムのエラー番号 本項目は、省略される場合があります。
エラー説明
エラー番号の説明
本項目は、省略される場合があります。
メッセージ本文 メッセージの本文
エラーログのメッセージの内容については、「8.10 エラーログ」を参照してください。
■出力例
バージョンが「x.x」、西暦年が「yyyy」の場合の出力例を以下に示します。
[Thu Mar 7 15:44:11 yyyy] [notice] Interstage HTTP Server 2.2/x.x (Unix) configured -- resuming normal operations
[Thu Mar 7 15:51:01 yyyy] [error] [client 192.168.0.1] File does not exist: /opt/FJSVahs/htdocs/abc
4.2.3 トレースログ
Webクライアントとの入出力情報、およびプラグインモジュールとの入出力情報をログ(トレースログ)として出力します。
トレースログの出力先や出力内容を変更する場合は、環境定義ファイル(httpd.conf)を使用して設定します。設定方法 については、「3.6 トレースログの設定」を参照してください。
■出力先
インストール直後の初期設定では、トレースログは以下のファイルに出力されます。
(インストールパスはデフォルト)
C:\Interstage\F3FMahs\logs\tracelog (インストールパスはデフォルト)
/var/opt/FJSVahs/logs/tracelog
ポイント
ログファイルのローテーションが行われる場合、トレースログは以下のファイル(初期値)に変名されます。
tracelog.N
Nは通番で、0から始まる連続の番号です。新しいファイルの順に、1番目のファイルの通番は「.0」、N番目のファイルの 通番は「.(N-1)」となります。
■出力タイミング
トレースログは、各トレース情報に対して、以下のタイミングで出力されます。
・ Webクライアントとの入出力情報
- TCPコネクション接続時
- TCPコネクション切断時
- HTTPリクエスト受信時
- HTTPレスポンス送信時
・ プラグインモジュールとの入出力情報
- プラグインモジュールの応答処理関数の呼出し時
- プラグインモジュールの応答処理関数の復帰時
■出力形式
トレースログとして出力されるログの形式を以下に示します。
[日時][プロセスID][スレッドID]イベント 詳細情報
■出力項目
出力形式に対応する各出力項目を以下に示します。
日時
トレース情報の出力日時
「[日/月/西暦:時:分:秒.ミリ秒]」の形式で出力されます。
プロセスID
デーモンプロセスのプロセスID
通信プロセスのプロセスID スレッドID
通信スレッドのスレッドID イベント 詳細情報
各出力契機におけるトレース内容のフォーマットを以下に示します。
出力契機 イベント 詳細情報
TCPコネクション接続時 conn WebクライアントまたはプロキシサーバなどのIPアドレス:ポー ト番号=>
着信したWebサーバのIPアドレス:ポート番号
TCPコネクション切断時 disc
HTTPリクエスト受信時 recv "リクエスト行"
エスケープした文字列に変換して出力されます。
HTTPレスポンス送信時 send ステータスコード プラグインモジュール応
答処理関数の呼出し時
(注1)
call モジュールソース名(注2)
プラグインモジュール応 答処理関数の復帰時
(注1)
rtn モジュールソース名(復帰コード) (注2)
復帰コードには、以下が出力されます。
・ 本モジュールで応答処理を実行していない場合:-1
・ 本モジュールで応答処理を実行した場合:-1以外
注1)出力対象のプラグインモジュールは、Interstage HTTP Server 2.2の提供モジュール以外のモジュールです。
注2)プラグインモジュールのコンパイル時のソースファイル名です。Interstage Servletサービスが提供するWebサー バコネクタのモジュールソース名は、「mod_jk2.c」と出力されます。
参考
トレースログにより、HTTP Keep-Alive機能の接続保持時間を確認できます。出力されたトレースログにおいて、disc(TCP コネクション切断時のイベント)およびsend(HTTPレスポンス送信時のイベント)の日時を確認し、以下の計算式で算出し ます。
HTTP Keep-Alive機能の接続保持時間 = discの日時 - sendの日時
注)タイムアウト発生時、WebサーバからクライアントへのTCPコネクション切断要求に対して、クライアントからの切断通知 を2秒以内に受信できなかった場合、接続保持時間は、KeepAliveTimeoutディレクティブの設定より2秒長くなることがあ ります。
■出力例
西暦年が「yyyy」の場合の出力例を以下に示します。
[04/Mar/yyyy:18:14:12.449][2700][1624]conn 192.168.0.1:2044=>192.168.0.2:80 [04/Mar/yyyy:18:14:12.449][2700][1624]recv "GET / HTTP/1.1"
[04/Mar/yyyy:18:14:12.489][2700][1624]call mod_jk2.c [04/Mar/yyyy:18:14:12.489][2700][1624]rtn mod_jk2.c(-1) [04/Mar/yyyy:18:14:12.489][2700][1624]send 200
[04/Mar/yyyy:18:14:12.549][2700][1624]recv "GET /fjlogo.gif HTTP/1.1"
[04/Mar/yyyy:18:14:12.549][2700][1624]call mod_jk2.c [04/Mar/yyyy:18:14:12.549][2700][1624]rtn mod_jk2.c(-1)
[04/Mar/yyyy:18:14:12.559][2700][1588]conn 192.168.0.1:2045=>192.168.0.2:80 [04/Mar/yyyy:18:14:12.559][2700][1588]recv "GET /interstage.jpg HTTP/1.1"
[04/Mar/yyyy:18:14:12.559][2700][1588]call mod_jk2.c [04/Mar/yyyy:18:14:12.559][2700][1588]rtn mod_jk2.c(-1) [04/Mar/yyyy:18:14:12.579][2700][1624]send 200
[04/Mar/yyyy:18:14:12.939][2700][1588]send 200
[04/Mar/yyyy:18:14:12.969][2700][1624]recv "GET /istage_j.gif HTTP/1.1"
[04/Mar/yyyy:18:14:12.969][2700][1624]call mod_jk2.c [04/Mar/yyyy:18:14:12.969][2700][1624]rtn mod_jk2.c(-1) [04/Mar/yyyy:18:14:13.120][2700][1624]send 200
[04/Mar/yyyy:18:14:30.973][2700][1588]disc [04/Mar/yyyy:18:14:31.214][2700][1624]disc