Archivo de registro predeterminado de Apache
Acerca del archivo de registro predeterminado de Apache
Apache proporciona muchas herramientas de detección y registro para rastrear el funcionamiento correcto del servidor. La configuración predeterminada de Apache proporciona dos archivos de registro, ubicados en el directorio de registro debajo del directorio de instalación. El archivo access_log (correspondiente al archivo access.log en Windows) contiene información sobre las solicitudes procesadas por el servidor, como la URL solicitada, la dirección IP del cliente, si la solicitud se completó con éxito, etc. error_log Este archivo (correspondiente al archivo error.log en Windows) contiene información relacionada con condiciones de error, así como diferentes eventos importantes en el ciclo de vida del servidor.
Crear formato de registro
LogFormat "h l u t "r" gt;s b" common
LogFormat "h l u t "r" gt;s b"
"{Referer}i" "{User-agent}i"" combinado
La directiva LogFormat le permite indicarle a Apache qué aspectos de la solicitud desea registrar. Aún necesita directivas adicionales para indicarle Apache Dónde registrar esa información se explica en el siguiente capítulo. El siguiente ejemplo muestra la configuración de los dos formatos más populares: formato de registro normal y formato de registro integrado. Cuando Apache recibe una solicitud, utilizará el formato de solicitud correspondiente. para cada dominio con el prefijo [12/Jun/2005:08:33:34
0500] "GET /example.png HTTP/1.0" 200 1234
Si está utilizando el formato de registro consolidado, cada entrada en el archivo de registro se verá así:
192.168.200.4 - someuser [12/Jun/2005:08:33:34
0500] " GET /example.png HTTP/1.0" 200 1234
/ "Mozilla/5.0
(Windows; U; Windows NT 5.1; en-US; rv: 1.7.7) " Aunque hay un archivo adjunto que proporciona un índice exhaustivo en formato de registro, la siguiente tabla describe algunos de los campos más importantes:
# h: la dirección IP del cliente (por ejemplo, el navegador) cuando realizó una solicitud de conexión al servidor. Dirección o nombre de dominio (HostNameLookups debe estar activado)
# u: el número del usuario registrado al usar HTTP para autenticar al usuario. La hora en que el servidor aceptó la solicitud de conexión.
# r: la información de texto en la solicitud de conexión original enviada por el cliente, incluido el método HTTP utilizado. s: el estado de devolución después de que el servidor responde al navegador. Código, 200 significa que la solicitud se realizó correctamente.
# b: el tamaño del contenido (en bytes) del objeto devuelto por el servidor en respuesta. a una única solicitud emitida por el navegador y los bytes del encabezado del paquete no se cuentan.
El formato de registro integrado amplía dos campos adicionales basados en el formato de registro normal. Definido como:
# {Referer}i: encabezado del paquete de solicitud de conexión, que contiene información de asociación del documento que apunta a la página actual.
# {User-agent}i: encabezado del paquete de solicitud de conexión del agente de usuario, incluida la información del navegador del cliente.
Cree un archivo de registro personalizado
CustomLog logs/access_log common
TransferLog logs/sample.log Es posible que desee crear uno nuevo que no sea el que viene con el archivo de registro de Apache. El siguiente ejemplo utilizará CustomLog para crear un nuevo archivo de registro y guardar la información definida por un formato de registro previamente definido, es decir, el común mencionado en el capítulo anterior. También puedes reemplazar el apodo con la definición del propio formato. Una directiva adicional más simple es Transferlog, que solo acepta la definición proporcionada por la última directiva LogFormat.
Lectura adicional:
Redirigir registros a un programa externo
TransferLog "|bin/rotatelogs /var/logs/ apachelog
86400"También puede utilizar CustomLog o TransferLog para redirigir (enviar) la salida del registro a un programa externo en lugar de a un archivo. Para hacer esto, primero debe comenzar con el carácter de salida "|", seguido de la ruta del programa que recibe la información de entrada estándar del registro. Este ejemplo utiliza el programa turnlogs que viene con Apache, que se presentará en un capítulo posterior.
Cuando se utiliza un programa externo, se utilizará como mon env=!image de inicio
SetEnvIf Remote_Addr 192.168.200.5 máquina especial
CustomLog logs/special_access_log common env =specialmachine le permite decidir si desea registrar una solicitud en función de las circunstancias cambiantes. Esta variabilidad se puede configurar de antemano en función de una serie de parámetros, como la dirección IP del cliente o la presencia de un determinado encabezado en la solicitud. Como se muestra en este ejemplo, la directiva CustomLog puede aceptar un entorno variable como tercer parámetro. Si hay un entorno mutable, se registrará; de lo contrario, no. Si el entorno mutable se niega con un "!" inicial, no se registrará ningún entorno mutable. Este ejemplo le mostrará cómo evitar registrar imágenes en formatos GIF y JPEG en el registro, y cómo registrar solicitudes de una dirección IP específica en un archivo de registro separado. Consulte la siguiente sección para ver otro ejemplo.
Quién se conecta a su sitio web
SetEnvIfNoCase Refererinternalreferral
LogFormat "{Referer}i -gt; U" referer p>
p>
CustomLog logs/referer.log referer env=!internalreferral puede detectar quién se ha conectado a su sitio web registrando el valor de Referer. La variable Referer se encuentra en el encabezado del paquete de datos enviado por. El usuario envía una solicitud de conexión. El encabezado del paquete de datos también contiene la dirección URL del sitio web de destino visitado por el usuario. Este método puede registrar la gran mayoría de los visitantes del sitio web. Los visitantes de rangos de direcciones de sitios web específicos () también se pueden excluir del archivo de registro.
Utilice los parámetros del módulo (mod_status) para monitorear el servidor Apache
SetHandler server-status
Orden Denegar, Permitir
Denegar de todos
Permitir desde 192.168.0
Hay muchos módulos funcionales que se pueden utilizar en el servidor Apache, incluidos servidores integrados y complementos. El estado de funcionamiento y el rendimiento de estos. Los módulos se registran a través del parámetro mod_status, el contenido grabado incluye "qué módulos participan en el servicio de respuesta del sitio web, qué módulos están en estado inactivo y la hora de apertura/cierre del servidor. La cantidad de solicitudes de conexión que se procesan y la cantidad de visitantes. (Es necesario especificar la marca ExtendedStatus): este módulo registra la respuesta a una carga alta y el rendimiento del servidor web tiene un gran impacto." Las estadísticas de estado del módulo registradas en el ejemplo se pueden ver accediendo a la página /server-status mediante un navegador.
Monitorear el servidor Apache a través del protocolo SNMP
SNMP es un protocolo de administración de red simple. Los servidores o dispositivos de red que admiten SNMP se pueden unificar mediante software de administración de red. como OpenView y Tivoli Management, actualmente existen muchos módulos SNMP de código abierto que se pueden instalar en el servidor del sitio web de Apache. Para la versión 1.3 de Apache, el módulo mod_snmp puede admitir las versiones 1 y 2 del protocolo SNMP. El módulo mod_apache_snmp puede compilarse mediante DSO en Apache y admite directamente las versiones 1, 2 y 3 del protocolo SNMP. Con el módulo SNMP, el software de administración de red externo puede ver varios parámetros de rendimiento en tiempo real del servidor del sitio web Apache. Estos parámetros incluyen "tiempo en línea continuo del servidor, carga promedio, cantidad de errores dentro de un período de tiempo y cantidad de bytes utilizados". para proporcionar servicios del sitio web." y número de solicitudes de conexión". El módulo SNMP alertará a la consola cuando encuentre un aumento repentino en la cantidad de solicitudes de conexión simultáneas. El software de herramienta de código abierto para administrar recursos SNMP incluye: "net-snmp, OpenNMS, Najios, etc."
Utilice herramientas de código abierto para analizar registros
Existen muchas versiones comerciales y de código abierto de herramientas de software que pueden analizar y procesar los archivos de registro de Apache generados. Los pasos habituales son Sí:
1. Seleccione un archivo de registro.
2. Analice el contenido del archivo de registro.
3. Generar información estadística en la salida de una página web que contenga diferentes categorías de contenido. Webalizer(/software/ para descargar estas herramientas.
Registrar registros de solicitudes de conexión en la base de datos
Apache en sí no tiene la función de reenviar registros a la base de datos Debe ser compatible con scripts y módulos de terceros. A continuación se muestran algunos: el módulo mod_log_sql permite que la solicitud de conexión se registre directamente en la base de datos MySQL y luego se puede utilizar la herramienta Apache LogView SQL para ver los registros. en la biblioteca; la herramienta pglogd puede iniciar sesión en la base de datos PostgreSQL
Volcar y archivar archivos de registro
CustomLog "|bin/rotatelogs /var/logs. /apachelog
86400" commonif Con un alto tráfico en el sitio web, los archivos de registro pueden volverse grandes fácilmente y requerir volcados y archivados.
Al transferir archivos de registro, debe comprimirlos y guardarlos. Este trabajo se puede realizar en línea utilizando los rotates proporcionados por Apache. También se pueden encontrar herramientas similares en la página web .au/logtools/ y algunas otras herramientas de registro. Por ejemplo, la herramienta vlogger puede reemplazar los cronologs para procesar registros de sitios web virtuales en un único servidor por separado. La herramienta está disponible en
CustomLog logs/vhost1.example.com_log combinado
ErrorLog logs. /vhost2 .example.com_log
.....
Utilice la sección de indicador CustomLog para implementar el procesamiento independiente de archivos de registro de sitios web virtuales dentro de un bloque del archivo de configuración de Apache.
LogFormat "v h l u t "r" gt; s b" common_virtualhost
Método de configuración CustomLog logs/access_log common_virtualhost en la configuración global de Apache, donde v es responsable de registrar el sitio web virtual que proporciona servicios. Esta configuración es buena para un único servidor configurado con muchos sitios web virtuales. Si no desea registrar registros del servidor virtual, simplemente agregue "CustomLog /dev/null" al archivo de configuración.
Entradas comunes en archivos de registro
Falta el archivo favicon.ico, que puede mostrar el patrón personalizado del sitio web en la barra de título del navegador
<; p> p>Falta el archivo robots.txt, lo cual es conveniente para las herramientas de replicación de sitios y los motores de búsqueda
Sobrescribiendo el archivo httpd.pid, el archivo de registro PID que queda después de que se cierra el servidor del sitio web; anormalmente
Registro largo y extraño,
"SEARCH /x90x02xb1x02xb1x02xb1x02..."
"GET /scripts/..252f../winnt/system32/ cmd.exe? /
c dir HTTP/1.0..."
"GET /default.ida?NNNNNNNN NNNNNNNNNNNNNNNN..." Registros similares indican que el visitante solicitó una solicitud que no está disponible en el sitio web cmd.exe, root.exe o archivos dir.
Algunas entradas en los archivos de registro suelen reflejar acciones que detectan automáticamente vulnerabilidades del servidor web, la mayoría de las cuales se originan en gusanos y programas maliciosos dirigidos a servidores web IIS. A veces se descubren algunas vulnerabilidades de Apache, por lo que para garantizar el funcionamiento normal de Apache, los usuarios deben seguir actualizando el software de Apache con frecuencia.