How to Monitor Apache Performance Using mod_status in Ubuntu

While you can always have a peek at Apache log files to get information about your webserver such as active connections, you can get a very detailed overview of your web server’s performance by enabling the mod_status module.

What is the mod_status module?

The mod_status module is an Apache module that allows users to access highly detailed information about Apache’s performance on a plain HTML page. In fact, Apache maintains its own server status page for general public viewing.

You can view status for Apache (Ubuntu) by heading over to the address below:

Check Apache Performance Status
Check Apache Performance Status

The Apache mod_status makes it possible to serve a plain HTML page containing information such as:

  • Server version
  • Current day and time in UTC
  • Server Uptime
  • Server load
  • Total traffic
  • Total number of incoming requests
  • The webserver’s CPU usage
  • PIDs with the respective clients and so much more.

Let’s now shift gears and see how you can get up-to-date statistics about Apache web server.

Testing Environment

Operating System: 	Ubuntu 20.04
Application:            Apache HTTP server
Version:                2.4.41
IP address:             34.123.9.111
Document root:          /var/www/html

Enable mod_status in Apache Ubuntu

By default, Apache ships with the mod_status module already enabled. You can verify this by checking the mods_enabled directory by running ls command as shown:

$ ls /etc/apache2/mods-enabled
Check mod_status Module in Apache Ubuntu
Check mod_status Module in Apache Ubuntu

Ensure that the status.conf and status.load files are present. If not, you need to enable mod_status module by invoking the command:

$ sudo /usr/sbin/a2enmod status

Configure mod_status in Apache Ubuntu

As stated earlier, the mod_status is already enabled. However, additional tweaks are required for you to access the server-status page. To do so, you need to modify the status.conf file.

$ sudo vim /etc/apache2/mods-enabled/status.conf 

Set the Require ip directive to reflect the IP address of the machine that you will be accessing the server from.

Configure mod_status Module in Apache Ubuntu
Configure mod_status Module in Apache Ubuntu

Save the changes and restart Apache for the changes to take effect to confirm the status as shown:

$ sudo systemctl restart apache2

Then verify the status of Apache and ensure it up and running.

$ sudo systemctl status apache2
Check Apache Status in Ubuntu
Check Apache Status in Ubuntu

Thereafter, browse the web server’s URL as shown.

http://server-ip/server-status

You will get a status HTML page displaying a host of Apache’s information and an array of statistics as shown.

Monitor Apache Ubuntu Performance
Monitor Apache Ubuntu Performance

NOTE: To have the page refresh after every a given time interval, for example, 5 seconds, append the “?refresh=5” at the end of the URL.

http://server-ip/server-status?refresh=5

This provides a better monitoring capacity of your server’s performance than the plain static HTML page earlier on.

That’s all for now about the mod_status module. Stay Tuned to Tecmint for so much more.

Hey TecMint readers,

Exciting news! Every month, our top blog commenters will have the chance to win fantastic rewards, like free Linux eBooks such as RHCE, RHCSA, LFCS, Learn Linux, and Awk, each worth $20!

Learn more about the contest and stand a chance to win by sharing your thoughts below!

James Kiarie
This is James, a certified Linux administrator and a tech enthusiast who loves keeping in touch with emerging trends in the tech world. When I'm not running commands on the terminal, I'm taking listening to some cool music. taking a casual stroll or watching a nice movie.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

8 Comments

Leave a Reply
    • @James,

      First confirm that the mod_status module is enabled in your Apache configuration by running:

      sudo a2enmod status
      

      Next, add your IP address in Apache configuration file as shown.

      <Location /server-status>
          SetHandler server-status
          Require ip your_ip_address
      </Location>
      

      Replace your_ip_address with the IP address from which you want to access the server status page. You can also use Require all granted to allow access from all IP addresses, but this is less secure.

      Restart the Apache service to apply the changes and access the page again.

      Reply
  1. Thank you for the tutorial.

    I followed your steps and got the 403 error, I try many things but 403 is not resolved can you please help me?

    Reply
  2. Thank you for the tutorial.

    I followed your steps and got the status page in text mode, like the last picture of the article.

    What is the graphical interface like the one in the first picture?

    Reply
    • Text on the bottom.

      I managed to get the graphical display following instructions on https://github.com/Humbedooh/server-status

      For Ubuntu:

      First, you need to enable Lua module.

      $ sudo a2enmod lua
      

      Download server-status.lua from the Github link above and save it somewhere.

      Then edit /etc/apache2/mods-enabled/status.conf and add somewhere (I added it just below “require local“)

      LuaMapHandler ^/server-status$ /path/to/server-status.lua
      

      Finally restart Apache.

      Reply
    • Hey Luis, The first screenshot is the status page for Apache’s site -apache.org. For the guide, I was using a Ubuntu VM whose server status is illustrated in the last image.

      Reply

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.