Skip to main content

Apache Log live replicator

Project description

Apache Replay is a command line tool that reads Apache log files and replays it on a remote server in real time. It’s goal it’s to load test HTTP/HTTPS servers with the same traffic that is received on another server.

This tool is written in Python and it uses apache-log-parser, requests and gevent libraries.

Main Features

  • Real time replay load testing

  • Accept any Apache log format

  • Support Basic Authentication

  • URL match and ignore filters

Installation

On Linux, first install python development and libevent packages using system package manager:

# Debian-based distributions (eg Ubuntu, ...):
$ sudo apt-get install python-dev libevent-dev

# RPM-based distributions:
$ yum install python-devel libevent-*

Then it can be installed from PyPi using pip :

$ pip install areplay

Basic usage

$ areplay http://test.example.com /var/log/apache2/access.log

Synopsis:

$ areplay --help


usage: areplay [-h] [-v] [-a AUTH] [-w WORKERS] [-m MATCH] [-i IGNORE]
               [-d] [-f FORMAT] [-sv] [-iu IGNORE_URL]
               server log_file

 positional arguments:

  server                      Remote Server
  log_file                    Apache log file path

 optional arguments:

   -h, --help                           Show this help message and exit
   -v, --version                        Show program's version number and exit
   -a AUTH, --auth AUTH                 Basic authentication user:password
   -w NUM, --workers NUM                Workers pool size
   -d, --dry-run                        Only prints URLs
   -f FORMAT, --format FORMAT           Apache log format
   -i IGNORE, --ignore IGNORE           Ignore matching requests
   -iu URL, --ignore-url URL            URL to hit when URL from log is ignored
   -m MATCH, --match MATCH              Only process matching requests
   -sv, --skip-verify                   Skip SSL certificate verify

Examples

Basic auth:

$ areplay -a username:password http://test.example.com access.log

URL filtering - ignore js and css - use | (pipe) to separate keywords:

$ areplay -i '.css|.js' http://test.example.com access.log

URL filtering - process only js and css - use | (pipe) to separate keywords:

$ areplay -m '.css|.js' http://test.example.com access.log

Custom Apache Log format - get LogFormat for Apache configuration file:

$ cat /etc/apache2/apache2.conf | grep LogFormat | grep combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

$ areplay -f "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" http://test.example.com access.log

Change Log

Please see CHANGELOG.

Licence

Please see LICENSE.

Acknowledgments

Thank you to the people from Boom! for inspiration and Dinko Korunic for snippet (GeventTail).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

areplay-0.6.tar.gz (5.0 kB view details)

Uploaded Source

File details

Details for the file areplay-0.6.tar.gz.

File metadata

  • Download URL: areplay-0.6.tar.gz
  • Upload date:
  • Size: 5.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for areplay-0.6.tar.gz
Algorithm Hash digest
SHA256 fbaa0ea0e4540848bd6de2c0c280fb3fc48bbc5fb2d1ae7aec5ef3e09a378822
MD5 51b22bb8791bb00294d4698c9dd6aaba
BLAKE2b-256 b7174524c6da58f98736f5a7564da47a67a5a34a89e95e105eec5674c4af08d2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page