mod_qos, qslog

 

qslog is a support utility of mod_qos. It may be used to gather request statistics from Apache's access log data.

Usage: qslog -f <format_string> -o <out_file> [-p [-v]] [-x] [-u <name>] [-m]

Summary
qslog is a real time access log analyzer. It collects
the data from stdin. The output is written to the specified
file every minute. The output includes the following entries:
  - requests per second (r/s)
  - bytes sent to the client per second (b/s)
  - bytes received from the client per second (ib/s)
  - repsonse status codes within the last minute (1xx,2xx,3xx,4xx,5xx)
  - average response duration (av)
  - distribution of response durations within the last minute
    (<1s,1s,2s,3s,4s,5s,>5)
  - average system load (sl)
  - free memory (m) (not available for all platforms)
  - number of client ip addresses seen withn the last 600 seconds (ip)
  - number of different users seen withn the last 600 seconds (usr)
  - number of mod_qos events within the last minute (qV=create session,
    qS=session pass, qD=access denied, qK=connection closed, qT=dynamic
    keep-alive, qL=request/response slow down, qs=serialized request)

Options
  -f <format_string>
     Defines the log data format and the positions of data
     elements processed by this utility.
     See to the 'LogFormat' directive of the httpd.conf file
     to see the format defintions of the servers access log
     data. qslog knows the following elements:
     I defines the client ip address (%h)
     R defines the request line (%r)
     S defines HTTP response status code (%s)
     B defines the transferred bytes (%b or %O)
     i defines the received bytes (%I)
     T defines the request duration (%T)
     t defines the request duration in milliseconds (optionally used instead of T)
     D defines the request duration in microseconds (optionally used instead of T)
     U defines the user tracking id (%{mod_qos_user_id}e)
     Q defines the mod_qos_ev event message (%{mod_qos_ev}e)
     . defines an element to ignore (unknown string)
  -o <out_file>
     Specifies the file to store the output to.
  -p
     Used when reading the log data from a file (cat/pipe). qslog is
     started using it's offline mode in order to process existing log
     files (post processing).
  -v
     Verbose mode.
  -x
     Rotates the output file once a day (move).
  -u <name>
     Become another user, e.g. www-data.
  -m
     Calculates free system memory every minute.

Example configuration using pipped logging:
  LogFormat "%t %h \"%r\" %>s %b \"%{User-Agent}i\" %T"
  TransferLog "|./bin/qslog -f ..IRSB.T -x -o ./logs/stat_log"

Example configuration using the CustomLog directive:
  CustomLog "|./bin/qslog -f ISBTQ -x -o ./logs/stat_log" "%h %>s %b %T %{mod_qos_ev}e"

Example for post processing:
  cat access_log | ./bin/qslog -f ..IRSB.T -o ./logs/stat_log -p



Nevis © 2007-2011, Pascal Buchbinder