LogFormat

Learn how to use the LogFormat config.txt directive to customize the data recorded by EZproxy in the ezproxy.log.

EZproxy has the capability of recording large amounts and varied types of data about your remote patrons' use of EZproxy. This data can be used in a number of ways to assess remote users' access to EZproxy, to identify security issues, and troubleshoot problems that may arise with your instance of EZproxy.

The LogFormat directive and its fields provide you with the opportunity to customize what data you want EZproxy to record in ezproxy.log. The same fields used to refine the ezproxy.log data are also compatible with the LogSPU directive and can be used to customize the information contained in spu.log as well.

LogFormat is a position-independent config.txt/ezproxy.cfg directive that specifies the format and information that EZproxy should use when recording EZproxy user activity. These requests are logged to the file ezproxy.log or to the filename specified by LogFile. By default, EZproxy records this information using common log format which is recognized by many web server log file analysis packages.

LogFormat fields to customize log data

The following table describes the special fields that are available to customize the log format. When logging URL information, EZproxy records only the remote database URL (e.g. http://www.somedb.com/) and not the corresponding EZproxy URL that the user sees (e.g http://ezproxy.yourlib.org:2050/ or http://www.somedb.com.ezproxy.yourlib.org/). Not all fields are available in older versions of EZproxy, so if a specific field returns -, you may need to update to the current release if you want to use that field.

Campo Value
%a IP address of the host accessing EZproxy
%b Number of bytes transferred
%{expression}e Evaluate expression as an EZproxy Expression
%h La dirección IP del host que accede a EZproxy
%{header}i Specified header from the browser request; any HTTP header field can be substituted for header; the following rows (until %l) are EZproxy specific and commonly used headers within EZproxy logs
%{ezproxy-dbvar #}i Replace # with a digit 0 through 9 to have the DbVar associated with this database inserted
%{ezproxy-groups}i Plus-sign-delimited list of groups to which the user has access (e.g. General+Restricted)
%{ezproxy-protocol}i Protocol of the remote server accessed (i.e. http, https, or ftp)
%{ezproxy-session}i EZproxy identifier for the user's current session
%{ezproxy-spuaccess}i When used with LogSPU, insert "proxy" if the remote user's access to the URL will be proxied; "local" if being redirected due to ExcludeIP; or "unknown" if the URL is not know to EZproxy and Option RedirectUnknown appears in the config.txt.
%{ezproxy-url #}i Specific portion of the destination URL; # is a number that specifies which portion to insert. For example, in the URL http://www.somedb.com/abc/def, %{ezproxy-url1}i would return abc, %{exproxy-url2}i def, and %{ezproxy-url}i a blank string.
%{ezproxy-usrvar #}i Replace # with a digit 0 through 9 to have the corresponding UsrVar associated with this user inserted
%{referer}i The URL of the website the user was on prior to accessing EZproxy, if that website has sent a referring URL header (you might want to log this so you can see how your users are arriving at EZproxy)
%{user-agent}i The browser the user is using
%l Remote username obtained by identd (if identd is not used, a - will be inserted)
%m Method of request (e.g. GET, POST)
%r Complete request (e.g. GET http://www.somedb.com HTTP/1.0)
%s HTTP numeric status of request
%t Date/time of request; may also appear as %{format}t to specify a strftime time format.
%T Time in seconds to process the request
%u Username used to log into EZproxy if Option LogUser appears in config.txt; session identifier if Option LogSession appears in config.txt; - otherwise. To log both username and session, add only Option LogUser to config.txt, then use %u for the username and %{ezproxy-session}i for the session identifier.
%U URL requested (e.g. http://www.somedb.com/)
%v Virtual web server's hostname (e.g. www.somedb.com)
%% Signo de porcentaje único (%)
\n Carácter de nueva línea
\t Carácter de tabulación

Privacy considerations

Al considerar el uso de Option LogUser, Option LogSession y %{ezproxy-session}i, considere cuidadosamente el equilibrio entre las posibilidades de recopilación de datos frente a los posibles problemas de privacidad de poder agrupar el historial de navegación de sus clientes.

Códigos de estado específicos de EZproxy

The LogFormat field %s records the HTTP numeric status of the request. This field can return standard HTTP status codes, but may also record special status codes under the circumstances specified in the table below.

Code Significado
597 Recorded on access attempts after the IntruderReject threshold has been exceeded.
598 Intento de acceso a una función de administración de EZproxy no autorizada
599 La URL del punto de partida hacía referencia a un host para el que EZproxy no está configurado
900-905 & 907 Se ha producido un error al recibir la solicitud desde el navegador del usuario remoto
906 Se ha producido un error al reenviar la solicitud desde el navegador del usuario al servidor remoto
950 Se ha producido un error al interpretar una solicitud de administración del usuario remoto
997 Shibboleth Fallo de inicio de sesión Shibboleth debido a una configuración incorrecta de los metadatos (registrado como 999 en las primeras versiones beta de soporte Shibboleth)
998 Acceso denegado basado en una directiva de DenyIfRequestHeader en config.txt
999 Se intenta acceder desde una dirección IP que se encuentra en un intervalo de direcciones RejectIP

Sintaxis

De forma predeterminada, EZproxy utiliza este comando LogFormat:

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

Y le proporcionará la siguiente información en este orden:

Este valor predeterminado le proporcionará la siguiente línea de datos:


132.174.1.1 - - [14 /Mar/2014:09:39:18 -0700] “GET http://www.somedb.com:80/index.html HTTP/1.0” 200 1234

Si desea recopilar información diferente en su archivo ezproxy.log , puede editar config.txt especificar la información y el formato que desea que contengan sus archivos de registro agregando diferentes valores de campo después de la directiva LogFormat . Para obtener una lista completa de los campos disponibles para la personalización, consulte la siguiente tabla

Example

En la tabla siguiente se proporcionan escenarios en los que los datos recopilados de los registros de EZproxy podrían ser útiles, la instrucción de directiva config.txt que registraría información útil en respuesta a ese escenario y una explicación de por qué esta instrucción de directiva le proporcionaría la información necesaria.

Lo que quiere saber config.txt Directiva ¿Por qué funciona esto?

Datos de usuario y uso

Quieres saber más sobre tus usuarios remotos. Se pregunta por detalles como su ubicación, cuántos datos están transfiriendo en una sesión proxy típica, cuándo están más activos y qué recursos están utilizando.

 

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

La configuración predeterminada especificada por la directiva LogFormat le proporciona una selección de información general para evaluar la actividad de sus usuarios remotos en EZproxy.

%h le proporcionará su dirección IP, que puede vincular a una ubicación geográfica

%t revelará las fechas y horas de sus solicitudes, para que pueda determinar cuándo están más activas

%r le mostrará qué recursos solicitan, para que pueda evaluar sus colecciones de recursos electrónicos

%b le mostrará cuántos bytes se transfieren en sus sesiones, revelando exactamente a cuánta información están accediendo cuando utilizan sus recursos de forma remota.

Grupos de usuarios más activos

Desea saber qué grupos dentro de su comunidad de usuarios acceden a los recursos de forma remota con la mayor frecuencia (por ejemplo, a qué grupo/s pertenecen, p. ej. estudiante, estudiante de posgrado, profesorado) Le gustaría utilizar estos datos para comercializar el acceso remoto a la base de datos a grupos que están infrautilizando este servicio.

 

LogFormat %h %l %u %t "%r" %s %b %{ezproxy-groups}i

OR

LogFormat %h %l %u %t "%r" %s %b %{ezproxy-usrvar #}i

La configuración predeterminada se conserva para que EZproxy continúe registrando información básica de uso en su registro. Existen dos opciones para recopilar información del grupo de usuarios en función de la configuración y los ajustes de autenticación.

Si tienes Groups definido en el archivo config.txt , puede agregar la primera instrucción config.txt para agregar una lista de grupos de recursos a los que un usuario individual puede acceder a cualquier línea de datos en su registro de EZproxy.

Si tienes UsrVar definido en el archivo user.txt , puede agregar la segunda instrucción config, sustituyendo la variable de usuario, del 0 al 9, que ha incluido en el archivo user.txt para asignar una etiqueta determinada a una selección de usuarios.

Las páginas Groups y uservar proporcionan más detalles sobre cada una de estas opciones de configuración.

Seguridad

Le preocupa la seguridad y desea determinar si se ha producido algún uso sospechoso desde ubicaciones en las que es probable que no estén los usuarios. Desea confirmar que nadie está intentando piratear las cuentas de sus usuarios o descargar cantidades inusualmente grandes de datos.

 

Option LogUser
LogFormat %h %l %u %t "%r" %s %b

El formato predeterminado más la directiva Option LogSession le proporcionará información que puede comparar con los datos proporcionados en los registros de auditoría, según las directivas Audit Most y Location , para evaluar la seguridad.

%u combinado con la directiva Option LogSession, le proporcionan un número de sesión para cada inicio de sesión de usuario.

Audit Most más la directiva Location registrará la dirección IP y la ubicación correspondiente tal como se define en el archivo GeoLiteCity junto con el ID de sesión para cada evento de auditoría registrado.

Puede comparar cualquier sesión sospechosa en el registro de EZproxy buscando el ID de sesión de la sesión identificada en los registros de auditoría de la página de administración. A continuación, puede determinar si la sesión se originó en una ubicación en la que probablemente no estarían los usuarios.

Directivas relacionadas

DbVar, LogFile, LogFilter, LogSPU, Option LogSession, Option LogUser, UsrVar