5

I'm looking for a way to monitor and record Apache traffic, separated by virtual host. I am currently using Munin to capture this and other data for the entire server however I can't seem to find a way to do this by vhost.

This link describes using a module called mod_watch which is apparently no longer in development:

http://www.freshnet.org/wordpress/2007/03/08/monitoring-apaches-virtualhost-with-munin/

The file that is listed as being compatible with Apache 2.x is reported to have problems with missing vhosts an reporting data correctly.

Does anyone know of a reliable way to determine real-time traffic per vhost? If I can find this it should be easy enough to write a new Munin plugin.

Edit:

What I'd really like to see is something similar to the Apache server-status scoreboard page with the number of connections / requests as that point in time separated by virtual host. This would give me the ability to check which vhost may be experiencing a spike in traffic in real time and would also provide the data needed for a Munin module (or some alternative performance monitoring / analysis system.)

2
  • 1
    So similar to what can be seen on the apache.org server-status page? It shows vhosts, too. It's probably already there, you maybe just have to enable ExtendedStatus. Oct 20, 2012 at 10:15
  • Wow, I can't believe I overlooked that! @AlexanderJanssen, if you turn that into an answer I'll give you the bounty. Oct 20, 2012 at 15:00

6 Answers 6

1
+50

mod_status already does that for you. You just have to make sure to use ExtendedStatus. To see an example how it'd look like, refer to apache.org's server-status page.

3

what about having each vhost log to its own files, and then running log analysis against that?

i realize that's not fully real-time, but i don't see why you couldn't have something analyze your files more frequently than every day.

you could even use something or write something to monitor the logs, in real time, and generate graphs and other statistical data, if you were so inclined.

3

Individual virtual host logging does seem to be a way to solve this.

What is your use case for this? What data do you need to monitor or track about each virtual host?

Looks like there is a similar question here: munin to monitor apache hits on particular URLs

3

You can create custom log file format with virtualhost name in it and then parse it realtime with GoAccess analyzer.

1

mod_logio might be what you are looking for.

Hope this helps.

0

If you want to see how much memory/CPU resource PHP is using on each vhost you can do this with Apache suEXEC.

SuExec allows each CGI or SSI application to run under a different user. Use that alongside something like mod-fastcgi, and a PHP CGI interpreter, and you'll then be able to see each vhost's PHP usage separately in top or htop.

2
  • This does look interesting but not all sites run PHP and what I'm really looking for is the number of open requests at a point in time. Oct 18, 2012 at 19:40
  • The content of the linked page or even page title is not related to this question. Also those commands are danger for new linux users. Jul 9, 2021 at 8:42

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .