Puede configurar el analizador Apache de formato de registro común (Common Log Format, CLF)FileLog y WinLoglos recopiladores.

Analizador de formato de registro común (Apache)

El analizador CLF predeterminado define el siguiente orden y nombres de campos.

host ident authuser datetime request statuscode bytes

Nombre de analizador: clf

La opción específica al analizador CLF es format.

Opción formato

La opción format especifica el formato con el que se generan los registros de Apache. La opción no es obligatoria.

Si no se especifica un formato, se usa el siguiente formato de registro común predeterminado.

%h %l %u %t \"%r\" %s %b

La cadena de formato del analizador CLF no acepta expresiones regex. Por ejemplo, especifique un espacio en lugar de la expresión \s+.

Para analizar otros formatos de registro, especifique el formato en la configuración del agente. Los campos analizados aparecen en el lado del servidor con los siguientes nombres.

Nota: En los casos que requieren de una variable, si {VARNAME} no se proporciona en la configuración, los campos se ignoran.
Campos Valor
'%a': "remote_ip"
'%A': "local_ip"
'%B', '%b': "response_size"
'%C': Depende del nombre de la variable especificada en el formato
'%c': Depende del nombre de la variable especificada en el formato
'%D': "request_time_mcs"
'%E': "error_status"
'%e': Depende del nombre de la variable especificada en el formato
'%F', '%f': "file_name"
'%h': "remote_host"
'%H': "request_protocol"
'%i': Depende del nombre de la variable especificada en el formato
'%k': "keepalive_request_count"
'%l': "remote_log_name"
'%L' "request_log_id"
'%M': "log_message" (el analizador detiene el análisis del registro de entradas después de alcanzar este especificador)
'%m': "request_method"
'%n': depende del nombre de la variable especificada en el formato
'%o': depende del nombre de la variable especificada en el formato
'%p': "server_port"

Se pueden usar formatos adicionales con este especificador: %{format}p. Los formatos compatibles son "canonical", "local" o "remote". Si se usa el formato "canonical", el nombre del campo sigue siendo "server_port". En caso de usar el formato "local", el nombre del campo cambiará a "local_server_port" y cuando se usa el formato "remote", el nombre del campo será "remote_server_port".

'%P': "process_id"

Se pueden usar formatos adicionales con este especificador: %{format}P. Los formatos compatibles son "pid", "tid" y "hextid". Si se usa "pid" como formato, el nombre del campo será "process_id", mientras que los formatos "tid" y "hextid" generan campos con el nombre "thread_id".

'%q': "query_string"
'%r': "request"
'%R': "response_handler"
'%s': "status_code", que genera el estado final de la solicitud.
'%t':

"timestamp", que funciona como una marca de tiempo de evento en el consumo y usa el analizador de marca de tiempo. Para anular la detección automática de la marca de tiempo, el formato de fecha y hora puede especificarse entre llaves: %{%Y-%m-%d %H:%M:%S}t. Consulte Analizador de marca de tiempo para obtener más información.

El formato de la marca de tiempo del analizador CLF puede comenzar con los prefijos "begin:" o "end:". Si el formato empieza con begin: (predeterminado), la hora se obtiene al comienzo del proceso de la solicitud. Si comienza con end:, se corresponde con la hora en que se escribió la entrada del registro, cerca del final del proceso de solicitud. Por ejemplo, el analizador CLF es compatible con formatos como los que se especifican a continuación: %h %l %u [%{begin:%d/%b/%Y %T}t.%{msec_frac}t] \"%r\" %>s %b

Los siguientes tokens de formato también son compatibles con el especificador de formato de marca de tiempo del analizador CLF:
sec
número de segundos a partir de época. Es equivalente al especificador %s del analizador de la marca de tiempo.
msec
número de milisegundos a partir de época
usec
número de microsegundos a partir de época
msec_frac
fracción de milisegundo (es equivalente al especificador %f del analizador de la marca de tiempo)
musec
fracción de microsegundo (es equivalente al especificador %f del analizador de la marca de tiempo)
Para analizar los registros donde la marca de tiempo se representa con tokens de formato, se pueden utilizar los siguientes formatos en la configuración:
format=%h %l %u %{sec}t \"%r\" %s %b
format=%h %l %u %{msec}t \"%r\" %s %b
format=%h %l %u %{usec}t \"%r\" %s %b

Estos tokens no se pueden combinar unos con otros o con el analizador de la marca de tiempo que se encuentren en la misma cadena de formato. En su lugar, puede usar varios tokens %{format}t. Por ejemplo, para usar la marca de tiempo que incluye milisegundos, excepto al usar el especificador %f del analizador de la marca de tiempo, se pueden usar las siguientes marcas de tiempo combinadas: %{%d/%b/%Y %T}t.%{msec_frac}t .

'%T': "request_time_sec"
'%u': "remote_auth_user"
'%U': "requested_url"
'%v': "server_name"
'%V': "self_referential_server_name"
'%X': "connection_status", que depende del nombre de la variable especificada en el formato
'%x': Depende del nombre de la variable especificada en el formato
'%I': "received_bytes"
'%O': "sent_bytes"
'%S': "transferred_size"

Por ejemplo, para analizar registros desde orígenes winlog o filelog con el analizador CLF, especifique la siguiente configuración:

[filelog|clflogs]
directory=D:\Logs
include=*.txt
parser=myclf

[parser|myclf]
debug=yes ;Note: use this option only while debugging and set it to ‘no’ when used in production.
base_parser=clf
format=%h %l %u %b %t \"%r\" %s

Mediante esta configuración, los registros que se recopilan desde el origen clflogs, por ejemplo desde el directorio directory=D:\Logs, son analizados sintácticamente por myclf. El analizador myclf analiza únicamente aquellos registros que se generaron con el formato que se describe en la configuración.

El valor predeterminado para la depuración es debug=no para analizadores.

Analizar registros generados mediante CLF

Para analizar sintácticamente los registros que se generaron mediante CLF, deberá definir el formato correspondiente en la configuración. Por ejemplo,

format=%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User_Agent}i\"

Los campos que no están vacíos y que utilizan los especificadores %{Referer}i y %{User_Agent}i aparecen en el servidor VMware Aria Operations for Logs con los nombres referer y user_agent, respectivamente.

Integrar el analizador de marca de tiempo con el analizador de CLF

Puede analizar sintácticamente los registros Apache con un formato de hora personalizado.

Acceda a los registro con formato de hora personalizado de la siguiente manera.

format = %h %l %u %{%a, %d %b %Y %H:%M:%S}t \"%r\" %>s %b

Si no se especifica una hora personalizada, el analizador de CLF intenta deducir automáticamente el formato de hora ejecutando el analizador de marca de tiempo; de lo contrario, se utiliza el formato de hora personalizado.

Los formatos de hora personalizados compatibles que se admiten para registros de error son:

Formato de hora personalizado Descripción Formato de configuración
%{u}t Hora actual incluidos microsegundos format=[%{u}t] [%l] [pid %P] [client %a] %M
%{cu}t Hora actual en formato ISO 8601 compacto, incluidos microsegundos format=[%{cu}t] [%l] [pid %P] [client %a] %M

Para obtener una lista completa de los especificadores de marca de tiempo compatibles, consulte analizador de marca de tiempo.

Configuración de registros de acceso predeterminados Apache para Windows

Este ejemplo muestra el modo en que se pueden formatear las configuraciones de los registros de acceso Apache v2.4 para Windows.

;ACCESS LOG
;127.0.0.1 - - [13/May/2015:14:44:05 +0400] "GET /xampp/navi.php HTTP/1.1" 200 4023 "http://localhost/xampp/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0"
;format=%h %l %u %{%d/%b/%Y:%H:%M:%S %z}t \"%r\" %>s %b \"%{Referer}i\" \"%{User_agent}i\"
 
; Section to collect Apache ACCESS logs
[filelog|clflogs-access]
    directory=C:\xampp\apache\logs
    include=acc*
    parser=clfparser_apache_access
    enabled=yes

;Parser to parse Apache ACCESS logs
[parser|clfparser_apache_access]
    debug=yes
    base_parser=clf
    format=%h %l %u %{%d/%b/%Y:%H:%M:%S %z}t \"%r\" %>s %b \"%{Referer}i\" \"%{User_agent}i\"
Defina el formato de registro de acceso:
  1. Configure Apache para el formato de registro de acceso (httpd.conf):
     LogFormat "%h %l %u %{%d-%b-%Y:%H:%M:%S}t \"%r\" %a %A %e %k %l %L %m %n %T %v %V %>s %b \"%{Referer}i\" \"%{User_Agent}i\"" combined
    
  2. Defina la configuración del analizador de CLF:
;ACCESS LOG
;127.0.0.1 unknown - 21-May-2015:13:59:35 "GET /xampp/navi.php HTTP/1.1" 127.0.0.1 127.0.0.1 - 0 unknown - GET - 1 localhost localhost 200 4023 "http://localhost/xampp/" "-"
[filelog|clflogs-access]
    directory=C:\xampp\apache\logs
    include=acc*;_myAcc*
    parser=clfparser_apache_access
    enabled=yes
; Parser to parse Apache ACCESS logs
[parser|clfparser_apache_access]
   debug=yes
   base_parser=clf
   format=%h %l %u %{%d-%b-%Y:%H:%M:%S}t \"%r\" %a %A %e %k %l %L %m %n %T %v %V %>s %b \"%{Referer}i\" \"%{User_Agent}i\"
El analizador de CLF devuelve lo siguiente:
remote_host=127.0.0.1
timestamp=2015-05-13T10:44:05
request=GET /xampp/navi.php HTTP/1.1
status_code=200
response_size=4023
referer=http://localhost/xampp/
user_agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0

Este ejemplo muestra el modo en que se pueden formatear las configuraciones de los registros de error Apache v2.4 para Windows.

;ERROR LOG
;[Wed May 13 14:37:17.042371 2015] [mpm_winnt:notice] [pid 4488:tid 272] AH00354: Child: Starting 150 worker threads.
;[Wed May 13 14:37:27.042371 2015] [mpm_winnt:notice] [pid 5288] AH00418: Parent: Created child process 3480
;format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P:tid %{thread_id}i] %E: %M
;format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P] %E: %M 
 
; Section to collect Apache ERROR logs
[filelog|clflogs-error]
    directory=C:\xampp\apache\logs
    include=err*
    parser=clfparser_apache_error
    enabled=yes
 
;Parser to parse Apache ERROR logs
[parser|clfparser_apache_error]
    debug=yes
    base_parser=clf
    format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P:tid %{thread_id}i] %E: %M
    next_parser=clfparser_apache_error2
 
;Parser to parse Apache ERROR logs
[parser|clfparser_apache_error2]
    debug=yes
    base_parser=clf
    format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P] %E: %M
Nota: Los nombres proporcionados corresponden al formato de registro combinado. Los registros de error Apache también se describen usando las claves de formateo anteriores, no el formato de registro de error Apache.
Defina el formato de registro de error:
  1. Configure Apache para el formato de registro de error (httpd.conf):
     LogFormat "%h %l %u %{%d-%b-%Y:%H:%M:%S}t \"%r\" %a %A %e %k %l %L %m %n %T %v %V %>s %b \"%{Referer}i\" \"%{User_Agent}i\"" combined
    
  2. Defina la configuración del analizador de CLF:
;Parser to parse Apache ERROR logs
[parser|clfparser_apache_error]
   debug=yes
   base_parser=clf
   format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P] %E: %M
   next_parser=clfparser_apache_error2

;Parser to parse Apache ERROR logs
[parser|clfparser_apache_error2]
   debug=yes
   base_parser=clf
   format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P:tid %{thread_id}i] %E: %M

Entrada de registro:

[Wed May 13 14:37:17.042371 2015] [mpm_winnt:notice] [pid 4488:tid 272] AH00354: Child: Starting 150 worker threads.
El analizador de CLF devuelve los siguientes campos para la entrada de registro (si utiliza un analizador en una zona horaria +0400):
timestamp=2015-05-13T10:37:17.042371
request_method=mpm_winnt
severity=notice
process_id=4488
thread_id=272
error_status=AH00354
log_message=Child: Starting 150 worker threads.

Entrada de registro:

[Wed May 13 14:37:27.042371 2015] [mpm_winnt:notice] [pid 5288] AH00418: Parent: Created child process 3480
El analizador de CLF devuelve los siguientes campos para la entrada de registro (si utiliza un analizador en una zona horaria +0400):
timestamp=2015-05-13T10:37:27.042371
request_method=mpm_winnt
severity=notice
process_id=5288
error_status=AH00418
log_message=Parent: Created child process 3480