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.
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 |
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.
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 |
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:
%h
: la dirección IP del host que accede a EZproxy%l
: el nombre de usuario remoto obtenido por identd, si se utiliza identd; Si no se utiliza identd, verá un -%u
: el nombre de usuario o el identificador de sesión, basado en otras opciones config.txt; Si no se incluyen directivas relacionadas en el archivo config.txt , verá un -%t
: la fecha y hora en que se realizó la solicitud"%r"
: la solicitud HTTP completa enviada al servidor remoto; Este campo está contenido entre comillas, por lo que se analiza como un dato aunque contenga espacios, ya que los espacios son generalmente una señal de que está comenzando un nuevo campo de datos%s
: el estado numérico HTTP de la solicitud%b
: el número de bytes transferidosEste 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
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. |
|
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. |
|
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. |
|
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. |
DbVar, LogFile, LogFilter, LogSPU, Option LogSession, Option LogUser, UsrVar