Sep. 30, 2012

Monitor Apache / Nginx Log File

Count the number of hits in a Apache/Nginx

This small script will count the number of hits in a Apache/Nginx log file. 

How it works

This script can easily be adapted to any other log file. 

The script starts with making an empty dictionary for storing the IP addresses andcount how many times they exist. 

Then we open the file (in this example the Nginx access.log file) and read the
content line by line. 

The for loop go through the file and splits the strings to get the IP address. 

The len() function is used to ensure the length of IP address. 

If the IP already exists , increase by 1.
ips = {}

fh = open("/var/log/nginx/access.log", "r").readlines()
for line in fh:
    ip = line.split(" ")[0]
    if 6 < len(ip) <=15:
        ips[ip] = ips.get(ip, 0) + 1
print ips

Test it out

If you now browse to your website, and run the python script, you should see your IP address + the counts. 

Share this article

Recommended Python Training – DataCamp

For Python training, our top recommendation is DataCamp.

Datacamp provides online interactive courses that combine interactive coding challenges with videos from top instructors in the field.

Datacamp has beginner to advanced Python training that programmers of all levels benefit from.


Download Our Free Guide To Learning Python

* indicates required

Read more about:
Disclosure of Material Connection: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, only recommend products or services that we try personally and believe will add value to our readers.