← Tools Home100% Client-Side

Nginx & Apache Access Log Parser (Metrics, Status Codes & Geo IP)

Analyze raw Nginx and Apache access logs locally with status code distributions, top requested URLs, unique client IPs, bandwidth metrics, and custom regex pattern matching.

HTTP Status Code Distribution

No data to display. Paste logs above or click 'Load Sample'.

Top 10 Most Requested URLs

No requests found matching criteria.

Lookup Client IP Locations

No IP data recorded.

Total Requests Processed
0 B

Aggregated payload transfer volume

Unique Client IPs
0

Distinct client host addresses

Total Bandwidth Transferred
0.0%

Client and server error ratio

Technical Reference & Architecture Guide

Nginx & Apache Access Log Parser (Metrics, Status Codes & Geo IP) — Reference Guide

Analyze raw Nginx and Apache access logs locally with status code distributions, top requested URLs, unique client IPs, bandwidth metrics, and custom regex pattern matching.

Key Parameters & Controls

logFormatstring

The expected log structure format, such as Nginx 'combined', Apache 'common', or a custom log_format directive with named capture groups.

customRegexstring

Optional custom regular expression with named capture groups (?P<ip>, ?P<status>, ?P<request>, ?P<bytes_sent>, ?P<request_time>) for non-standard log lines.

filterStatusCodestring

Filter pattern to isolate specific HTTP response codes or classes, such as '5xx', '404', or comma-delimited values (e.g., '401,403,500').

topLimitinteger

The maximum number of top items to aggregate for unique IP addresses, slow endpoints, and most requested URIs (default is 10).

enableGeoIpboolean

When enabled, resolves client IP addresses to country and ASN information using an embedded or locally provided MaxMind GeoLite2 database.

Pro Tips & Best Practices

Common Gotchas & Troubleshooting

Parser fails on all rows or yields zero matched entries

Verify if the logs were generated using a custom log_format that alters the default combined format (e.g., added referrer, virtual host prefix, or altered timestamp format like ISO8601). Switch the format selector to custom regex and align named capture groups to your server configuration.

Upstream response times display as '-' or cause numerical parse errors

Configure the parsing schema to treat upstream response time as an optional nullable float; Nginx logs a hyphen ('-') when a request does not hit an upstream server (e.g., served from cache, redirects, or static file lookups).

GeoIP lookup returns 'Unknown' or private address ranges for all entries

Ensure your web server has the 'real_ip' module (or mod_remoteip in Apache) enabled to restore true client IPs, and verify that the input does not contain internal RFC 1918 addresses from health checks or local load balancers.

Frequently Asked Questions

▼

▼

▼

▼

Related Tools & Utilities

All Tools →