mirror of
				https://github.com/apache/httpd.git
				synced 2025-10-31 19:10:37 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1421821 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			149 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0"?>
 | |
| <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 | |
| <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
 | |
| <!-- $LastChangedRevision$ -->
 | |
| 
 | |
| <!--
 | |
|  Licensed to the Apache Software Foundation (ASF) under one or more
 | |
|  contributor license agreements.  See the NOTICE file distributed with
 | |
|  this work for additional information regarding copyright ownership.
 | |
|  The ASF licenses this file to You under the Apache License, Version 2.0
 | |
|  (the "License"); you may not use this file except in compliance with
 | |
|  the License.  You may obtain a copy of the License at
 | |
| 
 | |
|      http://www.apache.org/licenses/LICENSE-2.0
 | |
| 
 | |
|  Unless required by applicable law or agreed to in writing, software
 | |
|  distributed under the License is distributed on an "AS IS" BASIS,
 | |
|  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
|  See the License for the specific language governing permissions and
 | |
|  limitations under the License.
 | |
| -->
 | |
| 
 | |
| <modulesynopsis metafile="mod_log_forensic.xml.meta">
 | |
| 
 | |
| <name>mod_log_forensic</name>
 | |
| <description>Forensic Logging of the requests made to the server</description>
 | |
| <status>Extension</status>
 | |
| <sourcefile>mod_log_forensic.c</sourcefile>
 | |
| <identifier>log_forensic_module</identifier>
 | |
| 
 | |
| <summary>
 | |
|     <p>This module provides for forensic logging of client
 | |
|     requests. Logging is done before and after processing a request, so the
 | |
|     forensic log contains two log lines for each request.
 | |
|     The forensic logger is very strict, which means:</p>
 | |
| 
 | |
|     <ul>
 | |
|     <li>The format is fixed. You cannot modify the logging format at
 | |
|     runtime.</li>
 | |
|     <li>If it cannot write its data, the child process
 | |
|     exits immediately and may dump core (depending on your
 | |
|     <directive module="mpm_common">CoreDumpDirectory</directive>
 | |
|     configuration).</li>
 | |
|     </ul>
 | |
| 
 | |
|     <p>The <code>check_forensic</code> script, which can be found in the
 | |
|     distribution's support directory, may be helpful in evaluating the
 | |
|     forensic log output.</p>
 | |
| </summary>
 | |
| <seealso><a href="../logs.html">Apache Log Files</a></seealso>
 | |
| <seealso><module>mod_log_config</module></seealso>
 | |
| 
 | |
| <section id="formats"><title>Forensic Log Format</title>
 | |
|     <p>Each request is logged two times. The first time is <em>before</em> it's
 | |
|     processed further (that is, after receiving the headers). The second log
 | |
|     entry is written <em>after</em> the request processing at the same time
 | |
|     where normal logging occurs.</p>
 | |
| 
 | |
|     <p>In order to identify each request, a unique request ID is assigned.
 | |
|     This forensic ID can be cross logged in the normal transfer log using the
 | |
|     <code>%{forensic-id}n</code> format string. If you're using
 | |
|     <module>mod_unique_id</module>, its generated ID will be used.</p>
 | |
| 
 | |
|     <p>The first line logs the forensic ID, the request line and all received
 | |
|     headers, separated by pipe characters (<code>|</code>). A sample line
 | |
|     looks like the following (all on one line):</p>
 | |
| 
 | |
|     <example>
 | |
|         +yQtJf8CoAB4AAFNXBIEAAAAA|GET /manual/de/images/down.gif
 | |
|         HTTP/1.1|Host:localhost%3a8080|User-Agent:Mozilla/5.0 (X11;
 | |
|         U; Linux i686; en-US; rv%3a1.6) Gecko/20040216
 | |
|         Firefox/0.8|Accept:image/png, <var>etc...</var>
 | |
|     </example>
 | |
| 
 | |
|     <p>The plus character at the beginning indicates that this is the first log
 | |
|     line of this request. The second line just contains a minus character and
 | |
|     the ID again:</p>
 | |
| 
 | |
|     <example>
 | |
|       -yQtJf8CoAB4AAFNXBIEAAAAA
 | |
|     </example>
 | |
| 
 | |
|     <p>The <code>check_forensic</code> script takes as its argument the name
 | |
|     of the logfile. It looks for those <code>+</code>/<code>-</code> ID pairs
 | |
|     and complains if a request was not completed.</p>
 | |
| </section>
 | |
| 
 | |
| <section id="security"><title>Security Considerations</title>
 | |
|     <p>See the <a
 | |
|     href="../misc/security_tips.html#serverroot">security tips</a>
 | |
|     document for details on why your security could be compromised
 | |
|     if the directory where logfiles are stored is writable by
 | |
|     anyone other than the user that starts the server.</p>
 | |
|     <p>The log files may contain sensitive data such as the contents of 
 | |
|     <code>Authorization:</code> headers (which can contain passwords), so
 | |
|     they should not be readable by anyone except the user that starts the
 | |
|     server.</p>
 | |
| </section>
 | |
| 
 | |
| <directivesynopsis>
 | |
| <name>ForensicLog</name>
 | |
| <description>Sets filename of the forensic log</description>
 | |
| <syntax>ForensicLog <var>filename</var>|<var>pipe</var></syntax>
 | |
| <contextlist><context>server config</context><context>virtual host</context>
 | |
| </contextlist>
 | |
| 
 | |
| <usage>
 | |
|     <p>The <directive>ForensicLog</directive> directive is used to
 | |
|     log requests to the server for forensic analysis. Each log entry
 | |
|     is assigned a unique ID which can be associated with the request
 | |
|     using the normal <directive module="mod_log_config">CustomLog</directive>
 | |
|     directive. <module>mod_log_forensic</module> creates a token called
 | |
|     <code>forensic-id</code>, which can be added to the transfer log
 | |
|     using the <code>%{forensic-id}n</code> format string.</p>
 | |
| 
 | |
|     <p>The argument, which specifies the location to which
 | |
|     the logs will be written, can take one of the following two
 | |
|     types of values:</p>
 | |
| 
 | |
|     <dl>
 | |
|       <dt><var>filename</var></dt>
 | |
|       <dd>A filename, relative to the <directive module="core"
 | |
|       >ServerRoot</directive>.</dd>
 | |
| 
 | |
|       <dt><var>pipe</var></dt>
 | |
|       <dd>The pipe character "<code>|</code>", followed by the path
 | |
|       to a program to receive the log information on its standard
 | |
|       input. The program name can be specified relative to the <directive
 | |
|       module="core">ServerRoot</directive> directive.
 | |
| 
 | |
|       <note type="warning"><title>Security:</title>
 | |
|       <p>If a program is used, then it will be run as the user who
 | |
|       started <program>httpd</program>. This will be root if the server was
 | |
|       started by root; be sure that the program is secure or switches to a
 | |
|       less privileged user.</p>
 | |
|       </note>
 | |
| 
 | |
|       <note><title>Note</title>
 | |
|         <p>When entering a file path on non-Unix platforms, care should be taken
 | |
|         to make sure that only forward slashes are used even though the platform
 | |
|         may allow the use of back slashes. In general it is a good idea to always
 | |
|         use forward slashes throughout the configuration files.</p>
 | |
|       </note></dd>
 | |
|     </dl>
 | |
| </usage>
 | |
| </directivesynopsis>
 | |
| 
 | |
| </modulesynopsis>
 |