Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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.)

share|improve this question
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. –  Alexander Janssen Oct 20 '12 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. –  Dave Forgac Oct 20 '12 at 15:00
add comment

6 Answers

up vote 1 down vote accepted
+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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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: http://serverfault.com/questions/136114/munin-to-monitor-apache-hits-on-particular-urls

share|improve this answer
add comment

mod_logio might be what you are looking for.

Hope this helps.

share|improve this answer
add comment

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

share|improve this answer
add comment

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.

I haven't used this particular tutorial before, but it looks similar to my own setup (although AISTR, I also installed the Worker MPM) so you might want to check it out http://davejamesmiller.com/blog/web-development/how-to-set-up-php-fastcgi-with-suexec-on-debian

share|improve this answer
    
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. –  Dave Forgac Oct 18 '12 at 19:40
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.